// ==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 "; } } 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); });*/