// ==UserScript== // @name 梦幻西游藏宝阁助手 // @namespace https://github.com/ipez/xyqCBGhelper // @author ipez // @description 人物技能修炼花费计算 // @match *://xyq.cbg.163.com/cgi-bin/query.py?* // @require http://cdn.bootcss.com/jquery/1.8.3/jquery.min.js // @version 0.3 // @run-at document-idle // @license MIT // @downloadURL https://update.greasyfork.icu/scripts/401646/%E6%A2%A6%E5%B9%BB%E8%A5%BF%E6%B8%B8%E8%97%8F%E5%AE%9D%E9%98%81%E5%8A%A9%E6%89%8B.user.js // @updateURL https://update.greasyfork.icu/scripts/401646/%E6%A2%A6%E5%B9%BB%E8%A5%BF%E6%B8%B8%E8%97%8F%E5%AE%9D%E9%98%81%E5%8A%A9%E6%89%8B.meta.js // ==/UserScript== (function() { 'use strict'; // Your code here... //输入参数的初始化 var gold2money = localStorage.TM_gold2money; var money2rmb = localStorage.TM_money2rmb; var xlgmoney = localStorage.TM_xlgmoney; console.log(xlgmoney); if(!gold2money){ gold2money = 0.8; localStorage.TM_gold2money = gold2money; console.log("初始化转换比:"+gold2money); } if(!money2rmb){ money2rmb = 285.0; localStorage.TM_money2rmb = money2rmb; console.log("初始化金价:"+money2rmb); } if(!xlgmoney){ xlgmoney = 64.0; localStorage.TM_xlgmoney = xlgmoney; console.log("初始化修炼果单价:"+xlgmoney); } var getMenpaiStr = document.getElementsByClassName('searchForm')[0].getElementsByTagName('th')[0].textContent; if(getMenpaiStr == "门派:"){ //根据搜索框中的门派字样判断是否为人物页面 $(document).ready(function(){ var newElement = ""; newElement += " 转换比(现金/储备金):"; newElement += ""; newElement += "  金价(RMB/三千万MHB):"; newElement += ""; newElement += "  修炼果(万MHB):"; newElement += ""; newElement += "     "; newElement += ""; $("tbody")[0].lastChild.after($(newElement)[0]); addBtnEvent("helperBtn"); }); } var objPrev = {'gold2money':null,'money2rmb':null,'xlgmoney':null}; //全局,保存上次计算参数 function addBtnEvent(id){ $("#"+id).bind("click",function(){ if(isFinish(objPrev) === true){ alert("计算已经完成"); } else{ var obj = getInput(); newPriceList(obj.gold2money,obj.money2rmb,obj.xlgmoney); objPrev = obj; } }); } //判断是否完成计算 function isFinish(obj){ var temp1 = parseFloat($("input:text[id='txt_gold2money']").val()); var temp2 = parseFloat($("input:text[id='txt_money2rmb']").val()); var temp3 = parseFloat($("input:text[id='txt_xlgmoney']").val()); if(temp1==obj.gold2money && temp2==obj.money2rmb && temp3==obj.xlgmoney) return true; else return false; } function getInput(){ var gold2money = null; var money2rmb = null; var xlgmoney = null; var reg = /(^\d+(\.\d+)?$)|(^[0-9]*$)/; //正浮点数和正整数 let temp = $("input:text[id='txt_gold2money']").val(); if(temp=="") { gold2money = localStorage.TM_gold2money; //没有输入时的默认值 } else { if(reg.test(temp)==true){ gold2money = parseFloat(temp); localStorage.TM_gold2money = gold2money; //变更本地存储 if(gold2money>1){ alert("转换比请取值 0~1 之间"); return false; } } else{ alert("请输入数字"); return false; } } temp = $("input:text[id='txt_money2rmb']").val(); //每三千万¥285 if(temp=="") { money2rmb = localStorage.TM_money2rmb; //没有输入时的默认值 } else { if(reg.test(temp)==true){ money2rmb = parseFloat(temp); localStorage.TM_money2rmb = money2rmb; if(money2rmb>1000){ alert("金价过高请取 1000 以内"); return false; } } else{ alert("请输入数字"); return false; } } temp = $("input:text[id='txt_xlgmoney']").val(); if(temp=="") { xlgmoney = localStorage.TM_xlgmoney; //没有输入时的默认值 } else { if(reg.test(temp)==true){ xlgmoney = parseFloat(temp); localStorage.TM_xlgmoney = xlgmoney; if(xlgmoney>100){ alert("修炼果取值过大>100"); return false; } if(xlgmoney<10){ alert("修炼果取值过小<10"); return false; } } else{ alert("请输入数字"); return false; } } return { 'gold2money': gold2money, 'money2rmb': money2rmb, 'xlgmoney': xlgmoney } } // 刷新计算价格列表 function newPriceList(gold2money,money2rmb,xlgmoney){ var list = document.getElementById('soldList').getElementsByTagName('tr'); for (var i=0;i 0 ){ if(oldPrice[0].parentNode.children[1].nodeName != "SPAN"){ //判断是否存在计算价格 let newElement = document.createElement('span'); newElement.innerHTML = "【"+price.toFixed(2)+"】"; for(let j=4;j>-1;j--){ if(price-1;j--){ if(price40?lifeSki[i]:0); lifeSkiGoldSum += qiangShenGold.sum(lifeSki[0]>40?lifeSki[0]:0); lifeSkiGoldSum += daZaoGold.sum(lifeSki[1]>40?lifeSki[1]:0); lifeSkiGoldSum += lingShiGold.sum(lifeSki[lifeSki.length-3]>40?lifeSki[lifeSki.length-3]:0); lifeSkiGoldSum += qiangZhuangGold.sum(lifeSki[lifeSki.length-2]); lifeSkiGoldSum += qiangZhuangGold.sum(lifeSki[lifeSki.length-1]); var lifeBG = []; for(i=0;i<160;i++) lifeBG.push(i+1); var lifeSkiBGSum = 0; for(i=0;i40?lifeSki[i]:0); //返回金钱总消耗 var rmbPrice = ((exptSkiGoldSum+schoolSkiGoldSum+exptSkiMaxGoldSum+lifeSkiGoldSum)*gold2money+beastSkiMoney)*money2rmb/3000e4+lifeSkiBGSum/50.0; return rmbPrice; } //数组前 n 项合 Array.prototype.sum = function(n){ for(var sum=0,i=0;i