// ==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