咕咕镇战斗样式优化

注意更新后设置会重置,添加了过渡效果

目前为 2023-01-14 提交的版本。查看 最新版本

// ==UserScript==
// @name         咕咕镇战斗样式优化
// @namespace    http://tampermonkey.net/
// @version      3.1.6
// @description  注意更新后设置会重置,添加了过渡效果
// @author       aotmd
// @match        https://www.guguzhen.com/*
// @icon         https://www.guguzhen.com/ys/icon/z4.gif
// @match        https://www.momozhen.com/*
// @grant        none
// ==/UserScript==
var setting = {
    /*───开启为true,关闭为false────*/
    等级换算: false,/*是否开启等级换算*/
    保留小数位: 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+="<span class='fyg_f18'>("+nowRank2+"</span> 级)";
                    otherCard[j].getElementsByClassName("fyg_tl")[1].childNodes[0].data=array2[1]+" ( "+maxRank2+" ) 最大等级";
                }else {
                    otherCard[j].getElementsByClassName("col-xs-5 fyg_tl")[0].innerHTML="<span class='fyg_f18'>"+nowRank2+"</span> 级";
                    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 <talent.length ; i++) {
                    console.log(talent[i].class);
                    talent[i].setAttribute('class','col-md-12');
                }
                if (talent.length!==0){
                    clearInterval(flag);
                }
            },1);
        });
    }
    if(setting.战斗页样式更改样式1){
        addStyle(`
            /*去除间隔*/
            .row .row:nth-of-type(3n+4) {
                margin-bottom: 0px!important;
            }
            /*护盾条*/
            .row .row:nth-of-type(3n+4) .col-md-6:nth-of-type(1) .bg-blue {
                background-image: linear-gradient(-90deg, #03A9F4 25%, #d0f8ff 75%)!important;
            }
            .row .row:nth-of-type(3n+4) .col-md-6:nth-of-type(2) .bg-blue {
                background-image: linear-gradient(90deg, #03A9F4 25%, #d0f8ff 75%)!important;
            }
            /*血条*/
            .row .row:nth-of-type(3n+4) .col-md-6:nth-of-type(3) .bg-red {
                background-image: linear-gradient(90deg, #f3b3b3 5%, #FF5722 50%)!important;
            }
            .row .row:nth-of-type(3n+4) .col-md-6:nth-of-type(4) .bg-red {
                background-image: linear-gradient(-90deg, #f3b3b3 5%, #FF5722 50%)!important;
            }
            /*战斗参数*/
            p.fyg_mp0.fyg_nw.fyg_lh30 {
                position: absolute;
                top: 6px;
                z-index: 999;
                WIDTH: 97%;
            }
            p.fyg_mp0.fyg_nw.fyg_lh30.fyg_tr {
                width: 97%;
            }
            /*血量护盾文字排版*/
            .col-md-2.fyg_tc {
                position: relative;
                top: 18px;
                z-index: 999;
            }
            /*护盾字体颜色*/
            .text-blue, .text-info {
                color: #375ef1!important
            }
            /*进攻方技能颜色*/
            .bg-purple, .bg-special {
                background-color: #8caaffa3!important;
            }
        `);
    }else if(setting.战斗页样式更改样式2){
        addStyle(`
            /*去除间隔*/
            .row .row:nth-of-type(3n+4) {
                margin-bottom: 0px!important;
            }
            /*护盾条 3.1.5 修正*/
            .row .row:nth-of-type(3n+4) .col-md-6:nth-of-type(1) .bg-blue {
                position: absolute;
                max-width: 99%!important;
                top: -14px;
                right: 2px;
                height: 15px!important;
                background-image: linear-gradient(-90deg, #03A9F4 25%, #d0f8ff 75%)!important;
            }
            .row .row:nth-of-type(3n+4) .col-md-6:nth-of-type(2) .bg-blue {
                position: absolute;
                top: -14px;
                height: 15px!important;
                max-width: 99%!important;
                background-image: linear-gradient(90deg, #03A9F4 25%, #d0f8ff 75%)!important;
            }
            /*血条*/
            .row .row:nth-of-type(3n+4) .col-md-6:nth-of-type(3) .bg-red {
                background-image: linear-gradient(90deg, #f3b3b3 5%, #FF5722 50%)!important;
            }
            .row .row:nth-of-type(3n+4) .col-md-6:nth-of-type(4) .bg-red {
                background-image: linear-gradient(-90deg, #f3b3b3 5%, #FF5722 50%)!important;
            }
            /*战斗参数*/
            p.fyg_mp0.fyg_nw.fyg_lh30 {
                position: relative;
                top: 7px;
                z-index: 999;
                /* WIDTH: 97%; */
            }
            p.fyg_mp0.fyg_nw.fyg_lh30.fyg_tr {
            /* width: 97%; */
            }
            /*血量护盾文字排版*/
            .col-md-2.fyg_tc {
                position: relative;
                top: 5px;
                z-index: 999;
            }
            /*护盾字体颜色*/
            .text-blue, .text-info {
                color: #375ef1!important
            }
            /*进攻方技能颜色*/
            .bg-purple, .bg-special {
                background-color: #8caaffa3!important;
            }
        `);
    }
}


/*下为历史数据,不生效*/
/*addStyle(`
#pkcall,#closeresult {
    border: none;
    color: white;
    text-align: center;
    text-decoration: none;
    display: inline-block;
    font-size: 10px;
    margin: 4px 10px;
    width: 100px;
    border-radius: 15px;
    -webkit-transition-duration: 0.4s;
    transition-duration: 0.4s;
    cursor: pointer;
    background-color: white;
    color: black;
    border: 2px solid #4CAF50;
}
#pkcall:hover,#closeresult:hover {
    background-color: #4CAF50;
    color: white;
}
div#result {
    line-height: 1;
    padding: 10px;
    padding-bottom: 50px;
    border: 2px solid transparent;
    border-color: #9d15f3;
    width: 100px;
    text-align: center;
    margin: 10px;
    border-radius: 10px;
    transition-duration: 1s;
}
div#result:hover {
    background-color: #2ae23894;
    border-color: #ffffff00;
}
    `);*/
/*var b= document.getElementsByClassName("panel panel-primary")[0];
b.innerHTML = "<button id='pkcall'>导出怪兽数据</button>" + b.innerHTML;
var jsjfunction=function () {
        var pk = document.getElementsByClassName("btn dropdown-toggle fyg_lh40");
        var s = "<div id='result'>";
        for (var i = 0; i < 10; ++i) {
            var temp = pk[i].innerText.trim();
            var name = temp.slice(-1);
            var lv = temp.slice(temp.indexOf("Lv") + 2, temp.lastIndexOf(" "));
            switch (name) {
                case "人": name = "MU"; break;
                case "蛛": name = "ZHU"; break;
                case "灵": name = "DENG"; break;
                case "兽": name = "SHOU"; break;
                default : alert("erreo");
            }
            var parameter=name+" "+lv;
            for (var j = 0; j <= 3; j++) {
                s += "<div>" + parameter +" "+j+ "</div>";
            }
        }
        s += "</div>";
        b.innerHTML = s+"<button id='closeresult'>清除怪兽数据</button>" + b.innerHTML;
        $("#pkcall").remove();
        $("#closeresult").click(function(){
            b.innerHTML = "<button id='pkcall'>导出怪兽数据</button>" + b.innerHTML;
            $("#pkcall").click(jsjfunction);
            $("#result").remove();
            $("#closeresult").remove();
        });
    };
$(document).ready(function() {
    $("#pkcall").click(jsjfunction);
});*/

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址