// ==UserScript==
// @name 咕咕镇样式优化,等级换算
// @namespace http://tampermonkey.net/
// @version 3.1.5
// @description 注意更新后设置会重置,添加了过渡效果
// @author aotmd
// @match https://www.guguzhen.com/*
// @icon https://www.guguzhen.com/ys/icon/z4.gif
// @grant none
// @downloadURL none
// ==/UserScript==
var setting = {
/*───开启为true,关闭为false────*/
等级换算: true ,/*是否开启等级换算*/
保留小数位: 0 ,/*转换后的等级显示的小数位*/
实际属性点计算: true ,/*根据实际属性点计算等级,通过转换计算产生的属性点带有小数,实际属性点会不带小数直接舍去*/
保留原等级: false ,/*保留转换前的等级*/
/*────────────────────────────*/
响应式布局: false ,/*是否开启按照浏览器宽度改变布局*/
相对宽度: 70 ,/*网页内容宽度占浏览器的百分比,单位:%*/
/*────────────────────────────*/
样式更改: true ,/*是否更改css样式*/
血条护盾高度: 14 ,/*单位:px*/
字体上下间距: 16 ,/*单位:px*/
天赋页排版: true ,/*更改天赋页的样式*/
战斗页样式更改样式1: false ,/*更改那让人头大的战斗显示*/
战斗页样式更改样式2: true ,/*两个样式只能生效一个,即只能设置一个为true,当两个都设置为true时只生效样式1*/
};
/**
* 等级转换
* @param o 原等级
* @param q 品质
* @return {string}
*/
function ConversionLevel(o, q) {
const BIT = setting.保留小数位;
const ACTUAL = setting.实际属性点计算;
var point = (6 + o * 3) * (1 + q / 100);
if (ACTUAL) {
point = Math.floor(point);
}
return ((point - 6) / 3).toFixed(BIT);
}
setInterval(() => {
const ORIGINAL = setting.保留原等级;
var str = /fyg_equip\.php/i;
if (str.test(window.location.href) && setting.等级换算) {
var cardInformation = document.getElementsByClassName("text-info fyg_f24")[0]
.getElementsByClassName("pull-right")[0];
if (cardInformation.getAttribute("flag") == null) {
var url = document.getElementsByClassName("text-info fyg_tr")[0];
var array = url.innerText.match(/\d+/g);
var maxRank = ConversionLevel(array[1], array[0]);
url.innerText += " 相当于" + maxRank + "级";
var nowRank = ConversionLevel(cardInformation.innerText.match(/\d+/g)[0], array[0]);
if (ORIGINAL) {
cardInformation.innerText += "(" + nowRank + " 级)";
} else {
cardInformation.innerText = nowRank + " 级";
}
cardInformation.setAttribute("flag","true");
}
var otherCard = document.getElementsByClassName("btn btn-primary btn-group dropup");
if (otherCard.length !== 0 && otherCard[0].getElementsByClassName("row")[0].getAttribute("flag") == null) {
for (var j = 0; j < otherCard.length; j++) {
var temp = otherCard[j].innerText;
var array2 = temp.match(/\d+/g);
var nowRank2=ConversionLevel(array2[0],array2[3]);
var maxRank2=ConversionLevel(array2[1],array2[3]);
deleteRedundantEmptyTextNodes(otherCard[j].getElementsByClassName("fyg_tl")[1]);
if (ORIGINAL){
otherCard[j].getElementsByClassName("col-xs-5 fyg_tl")[0].innerHTML+="("+nowRank2+" 级)";
otherCard[j].getElementsByClassName("fyg_tl")[1].childNodes[0].data=array2[1]+" ( "+maxRank2+" ) 最大等级";
}else {
otherCard[j].getElementsByClassName("col-xs-5 fyg_tl")[0].innerHTML=""+nowRank2+" 级";
otherCard[j].getElementsByClassName("fyg_tl")[1].childNodes[0].data=+maxRank2+" 最大等级";
otherCard[j].getElementsByClassName("fyg_tl")[1].childNodes[4].data+=",已换算为等级";
}
otherCard[j].getElementsByClassName("row")[0].setAttribute("flag","true");
}
}
}
}, 1000);
/**
* 删除多余的空文本节点,为nextSibling,等节点操作一致性做准备
* @param elem 要优化的父节点
*/
function deleteRedundantEmptyTextNodes(elem) {
let elemList = elem.childNodes;
for (let i = 0; i < elemList.length; i++) {
/*当为文本节点并且为不可见字符时删除节点*/
if (elemList[i].nodeName === "#text" && /^\s+$/.test(elemList[i].nodeValue)) {
elem.removeChild(elemList[i])
}
}
}
/**
* 添加样式
* @param rules css样式
*/
function addStyle(rules) {
var styleElement = document.createElement('style');
styleElement.type = 'text/css';
document.getElementsByTagName('head')[0].appendChild(styleElement);
styleElement.appendChild(document.createTextNode(rules));
}
if (setting.响应式布局) {
addStyle(`
div[style='width:1200px;margin: 0 auto;'] {
width: ` + setting.相对宽度 + `%!important;transition:0.5s;
}
`);
}
if (setting.样式更改) {
addStyle(`
/*调整脚本:咕咕镇数据采集)*/
/*调整装备详情的对齐方式*/
button.btn.btn-light {
vertical-align: sub;
}
/*调整装备神秘属性文字的最大宽度*/
.bg-danger[style="max-width: 250px; white-space: pre-line; word-break: break-all;"]{
max-width: 200px!important;
}
/*改变战斗页面血条护盾的高度*/
.fyg_pvedt{
height: ` + setting.血条护盾高度 + `px!important;
}
/*改变战斗页面的间距*/
p.fyg_mp0.fyg_nw.fyg_lh30,p.fyg_mp0.fyg_nw.fyg_lh30.fyg_tr{
line-height: ` + setting.字体上下间距 + `px;
}
/*3.1.4 将战斗文本信息完全显示*/
p.fyg_mp0.fyg_nw.fyg_lh30.fyg_tr {
overflow: unset;
}
/*3.1.5 将其他脚本的0-100按钮进行缩短间距*/
button.btn.btn-secondary {
padding: 5px 10px;
}
`);
if(setting.天赋页排版){
$("#eqli3").click(()=>{
var flag=setInterval(()=>{
if ($('#tf101').length===0)return;
var talent=$("#backpacks .row .col-md-3");
for (var i = 0; i " + parameter +" "+j+ "";
}
}
s += "";
b.innerHTML = s+"" + b.innerHTML;
$("#pkcall").remove();
$("#closeresult").click(function(){
b.innerHTML = "" + b.innerHTML;
$("#pkcall").click(jsjfunction);
$("#result").remove();
$("#closeresult").remove();
});
};
$(document).ready(function() {
$("#pkcall").click(jsjfunction);
});*/