您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Adds the routine-bonus on skills in the "compare players" page. You can also select the routine from which to calculate the bonus (e.g. when the player gains routine through the sharing system) and change the player's position. It also shows RatingR5 infos (by CHU-CHI).
当前为
// ==UserScript== // @name TM COMPARE PLAYERS R6 // @version 0.2 // @description Adds the routine-bonus on skills in the "compare players" page. You can also select the routine from which to calculate the bonus (e.g. when the player gains routine through the sharing system) and change the player's position. It also shows RatingR5 infos (by CHU-CHI). // @author Metalist Dominia by Domenico Federico // @include http://trophymanager.com/players/compare/* // @exclude http://trophymanager.com/players // @exclude http://trophymanager.com/players/compare // @exclude http://trophymanager.com/players/compare/ // @include https://trophymanager.com/players/compare/* // @exclude https://trophymanager.com/players // @exclude https://trophymanager.com/players/compare // @exclude https://trophymanager.com/players/compare/ // @license MIT // @namespace https://gf.qytechs.cn/users/1353541 // ==/UserScript== // R6 weights Str Sta Pac Mar Tac Wor Pos Pas Cro Tec Hea Fin Lon Set var weightR5 = [ [0.5375, 0.00, 0.5925, 0.9500, 0.9206, 0.5274, 0.5825, 0.1313, 0.0656, 0.0937, 0.5282, 0.0491, 0.0216, 0.00], // DC [0.5140, 0.00, 0.6825, 0.8280, 0.8063, 0.5026, 0.5825, 0.1313, 0.2337, 0.1752, 0.4762, 0.0491, 0.0216, 0.00], // DL/R [0.4520, 0.00, 0.5683, 0.6864, 0.6727, 0.5780, 0.5720, 0.5105, 0.1095, 0.3504, 0.2850, 0.1050, 0.1102, 0.00], // DMC [0.4523, 0.00, 0.6666, 0.5765, 0.5499, 0.5327, 0.5120, 0.3255, 0.2949, 0.3226, 0.4547, 0.2230, 0.0893, 0.00], // DML/R [0.3291, 0.00, 0.4548, 0.3515, 0.3236, 0.5648, 0.5907, 0.6467, 0.0952, 0.6042, 0.2850, 0.5001, 0.2543, 0.00], // MC [0.2958, 0.00, 0.6709, 0.2840, 0.3039, 0.5042, 0.5420, 0.4126, 0.4244, 0.6020, 0.2580, 0.4501, 0.2521, 0.00], // ML/R [0.3363, 0.00, 0.4932, 0.2035, 0.1910, 0.5619, 0.5719, 0.6670, 0.0675, 0.6016, 0.4225, 0.6053, 0.2783, 0.00], // OMC [0.3585, 0.00, 0.6621, 0.1105, 0.1025, 0.5359, 0.5192, 0.3313, 0.4250, 0.6258, 0.4212, 0.6000, 0.3080, 0.00], // OML/R [0.4225, 0.00, 0.4500, 0.0003, 0.0002, 0.3845, 0.5015, 0.4050, 0.0010, 0.5825, 0.7000, 0.9500, 0.6025, 0.00], // F [0.35, 0.00, 0.35, 1.0, 0.6, 1.0, 0.5, 0.6, 0.3, 0.0, 0.3]]; // GK // RECb weights Str Sta Pac Mar Tac Wor Pos Pas Cro Tec Hea Fin Lon Set var weightRb = [[ 0.10493615 , 0.05208547 , 0.07934211 , 0.14448971 , 0.13159554 , 0.06553072 , 0.07778375 , 0.06669303 , 0.05158306 , 0.02753168 , 0.12055170 , 0.01350989 , 0.02549169 , 0.03887550 ], // DC [ 0.07715535 , 0.04943315 , 0.11627229 , 0.11638685 , 0.12893778 , 0.07747251 , 0.06370799 , 0.03830611 , 0.10361093 , 0.06253997 , 0.09128094 , 0.01314110 , 0.02449199 , 0.03726305 ], // DL/R [ 0.08219824 , 0.08668831 , 0.07434242 , 0.09661001 , 0.08894242 , 0.08998026 , 0.09281287 , 0.08868309 , 0.04753574 , 0.06042619 , 0.05396986 , 0.05059984 , 0.05660203 , 0.03060871 ], // DMC [ 0.06744248 , 0.06641401 , 0.09977251 , 0.08253749 , 0.09709316 , 0.09241026 , 0.08513703 , 0.06127851 , 0.10275520 , 0.07985941 , 0.04618960 , 0.03927270 , 0.05285911 , 0.02697852 ], // DML/R [ 0.07304213 , 0.08174111 , 0.07248656 , 0.08482334 , 0.07078726 , 0.09568392 , 0.09464529 , 0.09580381 , 0.04746231 , 0.07093008 , 0.04595281 , 0.05955544 , 0.07161249 , 0.03547345 ], // MC [ 0.06527363 , 0.06410270 , 0.09701305 , 0.07406706 , 0.08563595 , 0.09648566 , 0.08651209 , 0.06357183 , 0.10819222 , 0.07386495 , 0.03245554 , 0.05430668 , 0.06572005 , 0.03279859 ], // ML/R [ 0.07842736 , 0.07744888 , 0.07201150 , 0.06734457 , 0.05002348 , 0.08350204 , 0.08207655 , 0.11181914 , 0.03756112 , 0.07486004 , 0.06533972 , 0.07457344 , 0.09781475 , 0.02719742 ], // OMC [ 0.06545375 , 0.06145378 , 0.10503536 , 0.06421508 , 0.07627526 , 0.09232981 , 0.07763931 , 0.07001035 , 0.11307331 , 0.07298351 , 0.04248486 , 0.06462713 , 0.07038293 , 0.02403557 ], // OML/R [ 0.07738289 , 0.05022488 , 0.07790481 , 0.01356516 , 0.01038191 , 0.06495444 , 0.07721954 , 0.07701905 , 0.02680715 , 0.07759692 , 0.12701687 , 0.15378395 , 0.12808992 , 0.03805251 ], // F [ 0.07466384 , 0.07466384 , 0.07466384 , 0.14932769 , 0.10452938 , 0.14932769 , 0.10452938 , 0.10344411 , 0.07512610 , 0.04492581 , 0.04479831 ]]; // GK function funFix1 (i) { i = (Math.round(i*10)/10).toFixed(1); return i; } function funFix2 (i) { i = (Math.round(i*100)/100).toFixed(2); return i; } function funFix3 (i) { i = (Math.round(i*1000)/1000).toFixed(3); return i; } function addCommas(nStr) { nStr += ''; var x = nStr.split('.'); var x1 = x[0]; var x2 = x.length > 1 ? '.' + x[1] : ''; var rgx = /(\d+)(\d{3})/; while (rgx.test(x1)) { x1 = x1.replace(rgx, '$1' + ',' + '$2'); } return x1 + x2; } $(".column2_a").css("width","657px"); var routineDiv = document.getElementsByClassName("odd align_center")[0]; var dSpans = routineDiv.getElementsByTagName("span"); var routinePl1 = dSpans[1].innerHTML; var routinePl2 = dSpans[2].innerHTML; var skillTbl = document.getElementsByClassName("skill_table zebra")[0]; $("table.skill_table").css("padding","5px 0 5px 0"); // save default document object content to variable: var defaultSkillTbl = document.getElementsByClassName("skill_table zebra")[0].innerHTML; // add routine toggle button: routineDiv.innerHTML = "<label for='role1_select'>Role: </label><select id='role1_select' autocomplete='off' aria-disabled='false' style='display: none;'><option value='0' selected='true'> </option><option value='1'>DC</option><option value='2'>DLR</option><option value='3'>DMC</option><option value='4'>DMLR</option><option value='5'>MC</option><option value='6'>MLR</option><option value='7'>OMC</option><option value='8'>OMLR</option><option value='9'>F</option></select>"+ " | Rou: <input name='rou1' class='embossed' value='"+routinePl1+"' size='2' maxlength='4' style='text-align: center;'><span id='bonus1'></span> | <span id='routineToggle' class='button'><span class='button_border' style='width: 90px; text-transform: none;'>Add routine</span></span>"+ "<label for='role2_select'> | Role: </label><select id='role2_select' autocomplete='off' aria-disabled='false' style='display: none;'><option value='0' selected='true'> </option><option value='1'>DC</option><option value='2'>DLR</option><option value='3'>DMC</option><option value='4'>DMLR</option><option value='5'>MC</option><option value='6'>MLR</option><option value='7'>OMC</option><option value='8'>OMLR</option><option value='9'>F</option></select>"+ " | Rou: <input name='rou2' class='embossed' value='"+routinePl2+"' size='2' maxlength='4' style='text-align: center;'><span id='bonus2'></span>"; // add event to routine toggle button: document.getElementById("routineToggle").addEventListener("click", toggleRoutine, false); $("#role1_select").selectmenu({ style: "popup", width: 30 }); $("#role1_select").on('change', function() { RECandRating() }); $("#role2_select").selectmenu({ style: "popup", width: 30 }); $("#role2_select").on('change', function() { RECandRating() }); $(".ui-selectmenu").css("font-size","9px"); $("ul.ui-widget").css({"width":"50px","font-size":"9px"}); // create REC and RatingR5 div: var RECdiv = document.createElement("div"); RECdiv.className="odd align_center"; RECdiv.innerHTML="<table cellspacing='0' cellpadding='0' border='1' bordercolor='#6C9922' style='text-align:center;'><tbody><tr style='color:black;'><td colspan='5' id='rec1'></td><th>REC</th><td colspan='5' id='rec2'></td></tr><tr style='color:black;'><td colspan='5' id='rating1'></td><th>RatingR6</th><td colspan='5' id='rating2'></td></tr>"+ "<tr id='Hbon' style='font-size:10px;'><th style='width:50px;'>Direct</th><th style='width:50px;'>Wings</th><th style='width:50px;'>Short</th><th style='width:50px;'>Long</th><th style='width:50px;'>Through</th><th></th><th style='width:50px;'>Direct</th><th style='width:50px;'>Wings</th><th style='width:50px;'>Short</th><th style='width:50px;'>Long</th><th style='width:50px;'>Through</th></tr>"+ "<tr id='Dbon' style='color:blue;'><td id='Ddir1'></td><td id='Dwin1'></td><td id='Dsho1'></td><td id='Dlon1'></td><td id='Dthr1'></td><td>Defense</td><td id='Ddir2'></td><td id='Dwin2'></td><td id='Dsho2'></td><td id='Dlon2'></td><td id='Dthr2'></td></tr>"+ "<tr id='Abon' style='color:orange;'><td id='Adir1'></td><td id='Awin1'></td><td id='Asho1'></td><td id='Alon1'></td><td id='Athr1'></td><td>Assist</td><td id='Adir2'></td><td id='Awin2'></td><td id='Asho2'></td><td id='Alon2'></td><td id='Athr2'></td></tr>"+ "<tr id='Fbon' style='color:red;'><td id='Fdir1'></td><td id='Fwin1'></td><td id='Fsho1'></td><td id='Flon1'></td><td id='Fthr1'></td><td>Finish</td><td id='Fdir2'></td><td id='Fwin2'></td><td id='Fsho2'></td><td id='Flon2'></td><td id='Fthr2'></td></tr></tbody></table>"; $(skillTbl).before(RECdiv); RECandRating(); function RECandRating(){ // get player link: $("td.large").find("a").each(function(index){ var playerID = Number($(this).attr("href").match(/\d+/)); // get each player's info: $.post("/ajax/tooltip.ajax.php",{async:false,"player_id":playerID},function(data){ data = JSON.parse(data); var ASI = data.player.skill_index; var Age = data.player.age; var Months = data.player.months; var FP = data.player.favposition; var ROLE = data.player.fp; var STR = String(data.player.skills[0].value); var STA = String(data.player.skills[2].value); var PAC = String(data.player.skills[4].value); if (ROLE == "GK") { var HAN = String(data.player.skills[1].value); var ONE = String(data.player.skills[3].value); var REF = String(data.player.skills[5].value); var AER = String(data.player.skills[7].value); var JUM = String(data.player.skills[9].value); var COM = String(data.player.skills[11].value); var KIC = String(data.player.skills[13].value); var THR = String(data.player.skills[15].value); var skills = [STR,STA,PAC,HAN,ONE,REF,AER,JUM,COM,KIC,THR]; } else { var MAR = String(data.player.skills[6].value); var TAC = String(data.player.skills[8].value); var WOR = String(data.player.skills[10].value); var POS = String(data.player.skills[12].value); var PAS = String(data.player.skills[1].value); var CRO = String(data.player.skills[3].value); var TEC = String(data.player.skills[5].value); var HEA = String(data.player.skills[7].value); var FIN = String(data.player.skills[9].value); var LON = String(data.player.skills[11].value); var SET = String(data.player.skills[13].value); skills = [STR,STA,PAC,MAR,TAC,WOR,POS,PAS,CRO,TEC,HEA,FIN,LON,SET]; } for (var i = 0; i<skills.length; i++) { if (skills[i].indexOf("<img") != -1) { skills[i] = skills[i].match(/\d+/); } } if (ROLE.indexOf("/") != -1) { // "M/DM C" ROLE = ROLE.split(/\//); var ROLE1 = ROLE[0]; // "M" var ROLE2 = ROLE[1]; // "DM C" var SIDE = ROLE[1].match(/\D$/); // "C" ROLE2 = ROLE2.replace(/\s/g,""); // "DMC" ROLE1 = ROLE[0]+SIDE; // "MC" } else if (ROLE.indexOf(",") != -1) { // "F, OM C" || "M C, F" ROLE = ROLE.split(/,/); ROLE1 = ROLE[0].replace(/\s/g,""); // "F" || "MC" ROLE2 = ROLE[1].replace(/\s/g,""); // " OMC" || "F" } else if (ROLE.indexOf(" ") != -1) { // "DM LC" || "D R" if (ROLE.substring(ROLE.indexOf(" ")+1).length > 1) { // "DM LC" ROLE = ROLE.split(/\s/); // "DM" || "LC" ROLE1 = ROLE[0]; // "DM" SIDE = ROLE[1]; // "LC" ROLE2 = ROLE1+SIDE.substring(1); // "DMC" ROLE1 = ROLE1+SIDE.substring(0,1); // "DML" } else { // D R ROLE1 = ROLE.replace(" ",""); ROLE2 = -1; } } else if (ROLE == "GK") { ROLE1 = "GK"; ROLE2 = -1; } else if (ROLE == "F") { ROLE1 = "F"; ROLE2 = -1; } var posNames = ["DC","DL","DR","DMC","DML","DMR","MC","ML","MR","OMC","OML","OMR","F","GK"]; var pos = [0,1,1,2,3,3,4,5,5,6,7,7,8,9]; for (i = 0; i<posNames.length; i++) { if (posNames[i] == ROLE1) var fp = pos[i]; if (ROLE2 != -1) { if (posNames[i] == ROLE2) var fp2 = pos[i]; } else fp2 = -1; } var posFullNames = [global_content[455],global_content[455],global_content[456],global_content[456],global_content[457],global_content[457],global_content[458],global_content[458],global_content[460],global_content[459]]; var newFP = $('#role'+ (index+1) +'_select').val()-1; if (fp!=9 && newFP>=0) { fp = newFP; fp2 = -1; var newPosFull = posFullNames[fp]; if (fp!=8) { if (fp%2==0) newPosFull += " "+global_content[462]; else newPosFull += " "+global_content[461]+"/"+global_content[463]; } if($(RECdiv).find('table tr#newPos').length==0) { $(RECdiv).find('table').prepend('<tr id="newPos"><td id="newPos1" colspan="5"></td><th>New role</th><td id="newPos2" colspan="5"></td></tr>'); } $(RECdiv).find('td#newPos'+ (index+1) +'').text(newPosFull); } if($(RECdiv).find('table tr#newPos').length=1 && newFP<0) $(RECdiv).find('td#newPos'+ (index+1) +'').text(''); if (fp==9) { $(RECdiv).find('tr#Hbon').remove(); $(RECdiv).find('tr#Dbon').remove(); $(RECdiv).find('tr#Abon').remove(); $(RECdiv).find('tr#Fbon').remove(); $(RECdiv).find('td#rec1').css("width","48%"); $(RECdiv).find('td#rec2').css("width","48%"); } var ROU = $('input[name=rou'+ (index+1) +']').val(); var rou2 = (3/100) * (100-(100) * Math.pow(Math.E, -ROU*0.035)); if (ROLE == "GK") { var weight = 48717927500; } else { weight = 263533760000; } var skillSum = 0; for (i = 0; i < skills.length; i++) { skillSum += parseInt(skills[i]); } var asi = ASI.replace(",",""); var remainder = Math.round((Math.pow(2,Math.log(weight*asi)/Math.log(Math.pow(2,7))) - skillSum)*10)/10; // RatingR5 remainder var goldstar = 0; var skillsB = []; for (var j = 0; j < 2; j++) { for (i = 0; i < 14; i++) { if (j == 0 && skills[i] == 20) goldstar++; if (j == 1) { if (skills[i] != 20) skillsB[i] = skills[i] * 1 + remainder / (14 - goldstar); else skillsB[i] = skills[i]; } } } var strRou = skillsB[0]*1+rou2; var staRou = skillsB[1]*1; var pacRou = skillsB[2]*1+rou2; var marRou = skillsB[3]*1+rou2; var tacRou = skillsB[4]*1+rou2; var worRou = skillsB[5]*1+rou2; var posRou = skillsB[6]*1+rou2; var pasRou = skillsB[7]*1+rou2; var croRou = skillsB[8]*1+rou2; var tecRou = skillsB[9]*1+rou2; var heaRou = skillsB[10]*1+rou2; var finRou = skillsB[11]*1+rou2; var lonRou = skillsB[12]*1+rou2; var setRou = skillsB[13]*1+rou2; if (heaRou > 12) var headerBonus = funFix2((Math.pow(Math.E, (heaRou-10)**3/1584.77)-1)*0.8 + Math.pow(Math.E, (strRou*strRou*0.007)/8.73021)*0.15 + Math.pow(Math.E, (posRou*posRou*0.007)/8.73021)*0.05); else headerBonus = 0; var fkBonus = funFix2(Math.pow(Math.E, Math.pow(setRou+lonRou+tecRou*0.5, 2)*0.002)/327.92526); var ckBonus = funFix2(Math.pow(Math.E, Math.pow(setRou+croRou+tecRou*0.5, 2)*0.002)/983.65770); var pkBonus = funFix2(Math.pow(Math.E, Math.pow(setRou+finRou+tecRou*0.5, 2)*0.002)/1967.31409); var gainBase = funFix2((strRou**2+staRou**2*0.5+pacRou**2*0.5+marRou**2+tacRou**2+worRou**2+posRou**2)/6/22.9**2); var keepBase = funFix2((strRou**2*0.5+staRou**2*0.5+pacRou**2+marRou**2+tacRou**2+worRou**2+posRou**2)/6/22.9**2); // 0:DC 1:DL/R 2:DMC 3:DML/R 4:MC 5:ML/R 6:OMC 7:OML/R 8:F var posGain = [ gainBase*0.3, gainBase*0.3, gainBase*0.9, gainBase*0.6, gainBase*1.5, gainBase*0.9, gainBase*0.9, gainBase*0.6, gainBase*0.3]; var posKeep = [ keepBase*0.3, keepBase*0.3, keepBase*0.9, keepBase*0.6, keepBase*1.5, keepBase*0.9, keepBase*0.9, keepBase*0.6, keepBase*0.3]; if (skills.length == 11) var allBonus = 0; else allBonus = headerBonus*1 + fkBonus*1 + ckBonus*1 + pkBonus*1; // R5 Assist 0:Str 1:Sta 2:Pac 3:Mar 4:Tac 5:Wor 6:Pos 7:Pas 8:Cro 9:Tec var weightADir = [[ 0.00000000 , 0.02032826 , 0.04743261 , 0.00000000 , 0.00000000 , 0.01355217 , 0.01355217 , 0.04065652 , 0.00000000 , 0.02710435 ], //DC [ 0.00000000 , 0.03709181 , 0.08654755 , 0.00000000 , 0.00000000 , 0.02472787 , 0.02472787 , 0.07418362 , 0.00000000 , 0.04945574 ], //DLR [ 0.00000000 , 0.04099186 , 0.09564768 , 0.00000000 , 0.00000000 , 0.02732791 , 0.02732791 , 0.08198373 , 0.00000000 , 0.05465582 ], //DMC [ 0.00000000 , 0.05537191 , 0.12920113 , 0.00000000 , 0.00000000 , 0.03691461 , 0.03691461 , 0.11074383 , 0.00000000 , 0.07382922 ], //DMLR [ 0.00000000 , 0.12500000 , 0.29166667 , 0.00000000 , 0.00000000 , 0.08333333 , 0.08333333 , 0.25000000 , 0.00000000 , 0.16666667 ], //MC [ 0.00000000 , 0.01565766 , 0.03653455 , 0.00000000 , 0.00000000 , 0.01043844 , 0.01043844 , 0.03131533 , 0.00000000 , 0.02087689 ], //MLR [ 0.00000000 , 0.04289270 , 0.10008296 , 0.00000000 , 0.00000000 , 0.02859513 , 0.02859513 , 0.08578540 , 0.00000000 , 0.05719026 ], //OMC [ 0.00000000 , 0.08686786 , 0.20269168 , 0.00000000 , 0.00000000 , 0.05791191 , 0.05791191 , 0.17373573 , 0.00000000 , 0.11582382 ], //OMLR [ 0.00000000 , 0.02105888 , 0.04913738 , 0.00000000 , 0.00000000 , 0.01403925 , 0.01403925 , 0.04211775 , 0.00000000 , 0.02807850 ]]; //F var weightAWin = [[ 0.00000000 , 0.00000000 , 0.00000000 , 0.00000000 , 0.00000000 , 0.00000000 , 0.00000000 , 0.00000000 , 0.00000000 , 0.00000000 ], //DC [ 0.01258035 , 0.02516069 , 0.07548208 , 0.00000000 , 0.00000000 , 0.02516069 , 0.00000000 , 0.00000000 , 0.10064277 , 0.05032138 ], //DLR [ 0.00000000 , 0.00000000 , 0.00000000 , 0.00000000 , 0.00000000 , 0.00000000 , 0.00000000 , 0.00000000 , 0.00000000 , 0.00000000 ], //DMC [ 0.00805548 , 0.01611096 , 0.04833289 , 0.00000000 , 0.00000000 , 0.01611096 , 0.00000000 , 0.00000000 , 0.06444385 , 0.03222193 ], //DMLR [ 0.00000000 , 0.00000000 , 0.00000000 , 0.00000000 , 0.00000000 , 0.00000000 , 0.00000000 , 0.00000000 , 0.00000000 , 0.00000000 ], //MC [ 0.01571086 , 0.03142171 , 0.09426514 , 0.00000000 , 0.00000000 , 0.03142171 , 0.00000000 , 0.00000000 , 0.12568685 , 0.06284342 ], //MLR [ 0.00000000 , 0.00000000 , 0.00000000 , 0.00000000 , 0.00000000 , 0.00000000 , 0.00000000 , 0.00000000 , 0.00000000 , 0.00000000 ], //OMC [ 0.04347826 , 0.08695652 , 0.26086957 , 0.00000000 , 0.00000000 , 0.08695652 , 0.00000000 , 0.00000000 , 0.34782609 , 0.17391304 ], //OMLR [ 0.00000000 , 0.00000000 , 0.00000000 , 0.00000000 , 0.00000000 , 0.00000000 , 0.00000000 , 0.00000000 , 0.00000000 , 0.00000000 ]]; //F var weightASho = [[ 0.00000000 , 0.01087937 , 0.01087937 , 0.00000000 , 0.00000000 , 0.01087937 , 0.01087937 , 0.03807781 , 0.00000000 , 0.03263812 ], //DC [ 0.00000000 , 0.00000000 , 0.00000000 , 0.00000000 , 0.00000000 , 0.00000000 , 0.00000000 , 0.00000000 , 0.00000000 , 0.00000000 ], //DLR [ 0.00000000 , 0.02620518 , 0.02620518 , 0.00000000 , 0.00000000 , 0.02620518 , 0.02620518 , 0.09171812 , 0.00000000 , 0.07861553 ], //DMC [ 0.00000000 , 0.01720760 , 0.01720760 , 0.00000000 , 0.00000000 , 0.01720760 , 0.01720760 , 0.06022661 , 0.00000000 , 0.05162281 ], //DMLR [ 0.00000000 , 0.06519303 , 0.06519303 , 0.00000000 , 0.00000000 , 0.06519303 , 0.06519303 , 0.22817562 , 0.00000000 , 0.19557910 ], //MC [ 0.00000000 , 0.02776433 , 0.02776433 , 0.00000000 , 0.00000000 , 0.02776433 , 0.02776433 , 0.09717515 , 0.00000000 , 0.08329299 ], //MLR [ 0.00000000 , 0.09523810 , 0.09523810 , 0.00000000 , 0.00000000 , 0.09523810 , 0.09523810 , 0.33333333 , 0.00000000 , 0.28571429 ], //OMC [ 0.00000000 , 0.04793546 , 0.04793546 , 0.00000000 , 0.00000000 , 0.04793546 , 0.04793546 , 0.16777412 , 0.00000000 , 0.14380639 ], //OMLR [ 0.00000000 , 0.05306295 , 0.05306295 , 0.00000000 , 0.00000000 , 0.05306295 , 0.05306295 , 0.18572031 , 0.00000000 , 0.15918884 ]]; //F var weightALon = [[ 0.00000000 , 0.06111197 , 0.00000000 , 0.00000000 , 0.00000000 , 0.06111197 , 0.06111197 , 0.24444789 , 0.18333592 , 0.12222395 ], //DC [ 0.00000000 , 0.06073556 , 0.00000000 , 0.00000000 , 0.00000000 , 0.06073556 , 0.06073556 , 0.24294223 , 0.18220667 , 0.12147111 ], //DLR [ 0.00000000 , 0.08279697 , 0.00000000 , 0.00000000 , 0.00000000 , 0.08279697 , 0.08279697 , 0.33118787 , 0.24839090 , 0.16559393 ], //DMC [ 0.00000000 , 0.08333333 , 0.00000000 , 0.00000000 , 0.00000000 , 0.08333333 , 0.08333333 , 0.33333333 , 0.25000000 , 0.16666667 ], //DMLR [ 0.00000000 , 0.02461107 , 0.00000000 , 0.00000000 , 0.00000000 , 0.02461107 , 0.02461107 , 0.09844428 , 0.07383321 , 0.04922214 ], //MC [ 0.00000000 , 0.04562034 , 0.00000000 , 0.00000000 , 0.00000000 , 0.04562034 , 0.04562034 , 0.18248134 , 0.13686101 , 0.09124067 ], //MLR [ 0.00000000 , 0.00000000 , 0.00000000 , 0.00000000 , 0.00000000 , 0.00000000 , 0.00000000 , 0.00000000 , 0.00000000 , 0.00000000 ], //OMC [ 0.00000000 , 0.00000000 , 0.00000000 , 0.00000000 , 0.00000000 , 0.00000000 , 0.00000000 , 0.00000000 , 0.00000000 , 0.00000000 ], //OMLR [ 0.00000000 , 0.00000000 , 0.00000000 , 0.00000000 , 0.00000000 , 0.00000000 , 0.00000000 , 0.00000000 , 0.00000000 , 0.00000000 ]]; //F var weightAThr = [[ 0.00000000 , 0.01101727 , 0.02754316 , 0.00000000 , 0.00000000 , 0.01101727 , 0.01101727 , 0.02754316 , 0.01101727 , 0.01101727 ], //DC [ 0.00000000 , 0.02257878 , 0.05644695 , 0.00000000 , 0.00000000 , 0.02257878 , 0.02257878 , 0.05644695 , 0.02257878 , 0.02257878 ], //DLR [ 0.00000000 , 0.01456869 , 0.03642173 , 0.00000000 , 0.00000000 , 0.01456869 , 0.01456869 , 0.03642173 , 0.01456869 , 0.01456869 ], //DMC [ 0.00000000 , 0.01499281 , 0.03748203 , 0.00000000 , 0.00000000 , 0.01499281 , 0.01499281 , 0.03748203 , 0.01499281 , 0.01499281 ], //DMLR [ 0.00000000 , 0.03120800 , 0.07801999 , 0.00000000 , 0.00000000 , 0.03120800 , 0.03120800 , 0.07801999 , 0.03120800 , 0.03120800 ], //MC [ 0.00000000 , 0.01788146 , 0.04470366 , 0.00000000 , 0.00000000 , 0.01788146 , 0.01788146 , 0.04470366 , 0.01788146 , 0.01788146 ], //MLR [ 0.00000000 , 0.10000000 , 0.25000000 , 0.00000000 , 0.00000000 , 0.10000000 , 0.10000000 , 0.25000000 , 0.10000000 , 0.10000000 ], //OMC [ 0.00000000 , 0.00741912 , 0.01854781 , 0.00000000 , 0.00000000 , 0.00741912 , 0.00741912 , 0.01854781 , 0.00741912 , 0.00741912 ], //OMLR [ 0.00000000 , 0.02761910 , 0.06904776 , 0.00000000 , 0.00000000 , 0.02761910 , 0.02761910 , 0.06904776 , 0.02761910 , 0.02761910 ]]; //F // R5 Defence 0:Str 1:Sta 2:Pac 3:Mar 4:Tac 5:Wor 6:Pos 7:Pas 8:Cro 9:Tec 10:Hea var weightDSho = [[ 0.00000000 , 0.04953226 , 0.04953226 , 0.24766129 , 0.39625806 , 0.09906452 , 0.14859677 , 0.00000000 , 0.00000000 , 0.00000000 , 0.00000000 ], //DC [ 0.00000000 , 0.04838710 , 0.04838710 , 0.24193548 , 0.38709677 , 0.09677419 , 0.14516129 , 0.00000000 , 0.00000000 , 0.00000000 , 0.00000000 ], //DLR [ 0.00000000 , 0.04608295 , 0.04608295 , 0.23041475 , 0.36866359 , 0.09216590 , 0.13824885 , 0.00000000 , 0.00000000 , 0.00000000 , 0.00000000 ], //DMC [ 0.00000000 , 0.03870968 , 0.03870968 , 0.19354839 , 0.30967742 , 0.07741935 , 0.11612903 , 0.00000000 , 0.00000000 , 0.00000000 , 0.00000000 ], //DMLR [ 0.00000000 , 0.05000000 , 0.05000000 , 0.25000000 , 0.40000000 , 0.10000000 , 0.15000000 , 0.00000000 , 0.00000000 , 0.00000000 , 0.00000000 ], //MC [ 0.00000000 , 0.04032258 , 0.04032258 , 0.20161290 , 0.32258065 , 0.08064516 , 0.12096774 , 0.00000000 , 0.00000000 , 0.00000000 , 0.00000000 ], //MLR [ 0.00000000 , 0.02258065 , 0.02258065 , 0.11290323 , 0.18064516 , 0.04516129 , 0.06774194 , 0.00000000 , 0.00000000 , 0.00000000 , 0.00000000 ], //OMC [ 0.00000000 , 0.01935484 , 0.01935484 , 0.09677419 , 0.15483871 , 0.03870968 , 0.05806452 , 0.00000000 , 0.00000000 , 0.00000000 , 0.00000000 ], //OMLR [ 0.00000000 , 0.00000000 , 0.00000000 , 0.00000000 , 0.00000000 , 0.00000000 , 0.00000000 , 0.00000000 , 0.00000000 , 0.00000000 , 0.00000000 ]]; //F var weightDThr = [[ 0.00000000 , 0.07142857 , 0.35714286 , 0.21428571 , 0.21428571 , 0.07142857 , 0.07142857 , 0.00000000 , 0.00000000 , 0.00000000 , 0.00000000 ], //DC [ 0.00000000 , 0.06773578 , 0.33867889 , 0.20320734 , 0.20320734 , 0.06773578 , 0.06773578 , 0.00000000 , 0.00000000 , 0.00000000 , 0.00000000 ], //DLR [ 0.00000000 , 0.05827311 , 0.29136554 , 0.17481932 , 0.17481932 , 0.05827311 , 0.05827311 , 0.00000000 , 0.00000000 , 0.00000000 , 0.00000000 ], //DMC [ 0.00000000 , 0.05393967 , 0.26969835 , 0.16181901 , 0.16181901 , 0.05393967 , 0.05393967 , 0.00000000 , 0.00000000 , 0.00000000 , 0.00000000 ], //DMLR [ 0.00000000 , 0.06236157 , 0.31180785 , 0.18708471 , 0.18708471 , 0.06236157 , 0.06236157 , 0.00000000 , 0.00000000 , 0.00000000 , 0.00000000 ], //MC [ 0.00000000 , 0.05666119 , 0.28330596 , 0.16998358 , 0.16998358 , 0.05666119 , 0.05666119 , 0.00000000 , 0.00000000 , 0.00000000 , 0.00000000 ], //MLR [ 0.00000000 , 0.03526825 , 0.17634123 , 0.10580474 , 0.10580474 , 0.03526825 , 0.03526825 , 0.00000000 , 0.00000000 , 0.00000000 , 0.00000000 ], //OMC [ 0.00000000 , 0.02282063 , 0.11410315 , 0.06846189 , 0.06846189 , 0.02282063 , 0.02282063 , 0.00000000 , 0.00000000 , 0.00000000 , 0.00000000 ], //OMLR [ 0.00000000 , 0.02696984 , 0.13484918 , 0.08090951 , 0.08090951 , 0.02696984 , 0.02696984 , 0.00000000 , 0.00000000 , 0.00000000 , 0.00000000 ]]; //F var weightDWin = [[ 0.03872217 , 0.03872217 , 0.19361084 , 0.19361084 , 0.30977735 , 0.03872217 , 0.03872217 , 0.00000000 , 0.00000000 , 0.00000000 , 0.00000000 ], //DC [ 0.04545455 , 0.04545455 , 0.22727273 , 0.22727273 , 0.36363636 , 0.04545455 , 0.04545455 , 0.00000000 , 0.00000000 , 0.00000000 , 0.00000000 ], //DLR [ 0.01444096 , 0.01444096 , 0.07220482 , 0.07220482 , 0.11552771 , 0.01444096 , 0.01444096 , 0.00000000 , 0.00000000 , 0.00000000 , 0.00000000 ], //DMC [ 0.04360171 , 0.04360171 , 0.21800857 , 0.21800857 , 0.34881370 , 0.04360171 , 0.04360171 , 0.00000000 , 0.00000000 , 0.00000000 , 0.00000000 ], //DMLR [ 0.01187368 , 0.01187368 , 0.05936840 , 0.05936840 , 0.09498945 , 0.01187368 , 0.01187368 , 0.00000000 , 0.00000000 , 0.00000000 , 0.00000000 ], //MC [ 0.03872217 , 0.03872217 , 0.19361084 , 0.19361084 , 0.30977735 , 0.03872217 , 0.03872217 , 0.00000000 , 0.00000000 , 0.00000000 , 0.00000000 ], //MLR [ 0.00704039 , 0.00704039 , 0.03520197 , 0.03520197 , 0.05632315 , 0.00704039 , 0.00704039 , 0.00000000 , 0.00000000 , 0.00000000 , 0.00000000 ], //OMC [ 0.02715581 , 0.02715581 , 0.13577903 , 0.13577903 , 0.21724645 , 0.02715581 , 0.02715581 , 0.00000000 , 0.00000000 , 0.00000000 , 0.00000000 ], //OMLR [ 0.00352020 , 0.00352020 , 0.01760099 , 0.01760099 , 0.02816158 , 0.00352020 , 0.00352020 , 0.00000000 , 0.00000000 , 0.00000000 , 0.00000000 ]]; //F var weightDDir = [[ 0.00000000 , 0.05263158 , 0.10526316 , 0.42105263 , 0.15789474 , 0.15789474 , 0.10526316 , 0.00000000 , 0.00000000 , 0.00000000 , 0.00000000 ], //DC [ 0.00000000 , 0.05232603 , 0.10465205 , 0.41860820 , 0.15697808 , 0.15697808 , 0.10465205 , 0.00000000 , 0.00000000 , 0.00000000 , 0.00000000 ], //DLR [ 0.00000000 , 0.04938021 , 0.09876041 , 0.39504166 , 0.14814062 , 0.14814062 , 0.09876041 , 0.00000000 , 0.00000000 , 0.00000000 , 0.00000000 ], //DMC [ 0.00000000 , 0.03182820 , 0.06365641 , 0.25462564 , 0.09548461 , 0.09548461 , 0.06365641 , 0.00000000 , 0.00000000 , 0.00000000 , 0.00000000 ], //DMLR [ 0.00000000 , 0.04928989 , 0.09857978 , 0.39431913 , 0.14786967 , 0.14786967 , 0.09857978 , 0.00000000 , 0.00000000 , 0.00000000 , 0.00000000 ], //MC [ 0.00000000 , 0.04000000 , 0.08000000 , 0.32000000 , 0.12000000 , 0.12000000 , 0.08000000 , 0.00000000 , 0.00000000 , 0.00000000 , 0.00000000 ], //MLR [ 0.00000000 , 0.02105263 , 0.04210526 , 0.16842105 , 0.06315789 , 0.06315789 , 0.04210526 , 0.00000000 , 0.00000000 , 0.00000000 , 0.00000000 ], //OMC [ 0.00000000 , 0.01684211 , 0.03368421 , 0.13473684 , 0.05052632 , 0.05052632 , 0.03368421 , 0.00000000 , 0.00000000 , 0.00000000 , 0.00000000 ], //OMLR [ 0.00000000 , 0.01263158 , 0.02526316 , 0.10105263 , 0.03789474 , 0.03789474 , 0.02526316 , 0.00000000 , 0.00000000 , 0.00000000 , 0.00000000 ]]; //F var weightDLon = [[ 0.20000000 , 0.04000000 , 0.08000000 , 0.20000000 , 0.12000000 , 0.08000000 , 0.08000000 , 0.00000000 , 0.00000000 , 0.00000000 , 0.20000000 ], //DC [ 0.15450127 , 0.03090025 , 0.06180051 , 0.15450127 , 0.09270076 , 0.06180051 , 0.06180051 , 0.00000000 , 0.00000000 , 0.00000000 , 0.15450127 ], //DLR [ 0.16404575 , 0.03280915 , 0.06561830 , 0.16404575 , 0.09842745 , 0.06561830 , 0.06561830 , 0.00000000 , 0.00000000 , 0.00000000 , 0.16404575 ], //DMC [ 0.14045570 , 0.02809114 , 0.05618228 , 0.14045570 , 0.08427342 , 0.05618228 , 0.05618228 , 0.00000000 , 0.00000000 , 0.00000000 , 0.14045570 ], //DMLR [ 0.12641013 , 0.02528203 , 0.05056405 , 0.12641013 , 0.07584608 , 0.05056405 , 0.05056405 , 0.00000000 , 0.00000000 , 0.00000000 , 0.12641013 ], //MC [ 0.09831899 , 0.01966380 , 0.03932759 , 0.09831899 , 0.05899139 , 0.03932759 , 0.03932759 , 0.00000000 , 0.00000000 , 0.00000000 , 0.09831899 ], //MLR [ 0.07022785 , 0.01404557 , 0.02809114 , 0.07022785 , 0.04213671 , 0.02809114 , 0.02809114 , 0.00000000 , 0.00000000 , 0.00000000 , 0.07022785 ], //OMC [ 0.05618228 , 0.01123646 , 0.02247291 , 0.05618228 , 0.03370937 , 0.02247291 , 0.02247291 , 0.00000000 , 0.00000000 , 0.00000000 , 0.05618228 ], //OMLR [ 0.00000000 , 0.00000000 , 0.00000000 , 0.00000000 , 0.00000000 , 0.00000000 , 0.00000000 , 0.00000000 , 0.00000000 , 0.00000000 , 0.00000000 ]]; //F if (fp != 9) { var Ddir = (staRou*0.052631579+(pacRou+posRou)*0.105263158+marRou*0.421052632+(tacRou+worRou)*0.157894737)*5; var Dwin = ((strRou+staRou+worRou+posRou)*0.045454545+(pacRou+marRou)*0.227272727+tacRou*0.363636364)*5; var Dsho = ((staRou+pacRou)*0.05+marRou*0.25+tacRou*0.4+worRou*0.1+posRou*0.15)*5; var Dlon = ((strRou+marRou+heaRou)*0.2+staRou*0.04+(pacRou+worRou+posRou)*0.08+tacRou*0.12)*5; var Dthr = ((staRou+worRou+posRou)*0.071428571+pacRou*0.357142857+(marRou+tacRou)*0.214285714)*5; var Dbal = (Ddir+Dwin+Dsho+Dlon+Dthr)/5; var Adir = (staRou*0.125+pacRou*0.29166666+(worRou+posRou)*0.08333333+pasRou*0.25+tecRou*0.16666666)*5; var Awin = (strRou*0.04347826+(staRou+worRou)*0.08695652+pacRou*0.26086956+croRou*0.34782608+tecRou*0.17391304)*5; var Asho = ((staRou+pacRou+worRou+posRou)*0.09523809+pasRou*0.33333333+tecRou*0.28571428)*5; var Alon = ((staRou+worRou+posRou)*0.08333333+pasRou*0.33333333+croRou*0.25+tecRou*0.16666666)*5; var Athr = ((staRou+worRou+posRou+croRou+tecRou)*0.1+(pacRou+pasRou)*0.25)*5; var Abal = (Adir+Awin+Asho+Alon+Athr)/5; var shotregular = funFix2(skillsB[11]*0.5+(skillsB[9]*1+skillsB[6]*1+skillsB[2]*1)/3*0.4+(skillsB[0]*1+skillsB[5]*1)/2*0.1+rou2); var shotlong = funFix2(skillsB[12]*0.5+(skillsB[9]*1+skillsB[11]*1+skillsB[6]*1)/3*0.4+(skillsB[0]*1+skillsB[5]*1)/2*0.1+rou2); var shothead = funFix2(skillsB[10]*0.5+(skillsB[0]*2+skillsB[6]*1)/3*0.4+(skillsB[2]*1+skillsB[5]*1)/2*0.1+rou2); var Fdir = (shotregular*0.339+shotlong*0.342+shothead*0.319)*5; var Fwin = (shotregular*0.252+shotlong*0.035+shothead*0.713)*5; var Fsho = (shotregular*0.534+shotlong*0.339+shothead*0.127)*5; var Flon = (shotregular*0.271+shotlong*0.037+shothead*0.692)*5; var Fthr = (shotregular*0.703+shotlong*0.151+shothead*0.146)*5; var Fbal = (Fdir+Fwin+Fsho+Flon+Fthr)/5; } else { Dbal=Ddir=Dwin=Dsho=Dlon=Dthr=Abal=Adir=Awin=Asho=Alon=Athr=Fbal=Fdir=Fwin=Fsho=Flon=Fthr=0; } var rec = 0; // RERECb var ratingR = 0; // RatingR5 var ratingR5 = 0; // RatingR5 + routine var remainderWeight = 0; // REREC remainder weight sum var remainderWeight2 = 0; // RatingR5 remainder weight sum var not20 = 0; // 20以外のスキル数 for (i = 0; i < weightRb[fp].length; i++) { // weightR[fp].length = n.pesi[pos] cioè le skill: 14 o 11 rec += skills[i] * weightRb[fp][i]; ratingR += skills[i] * weightR5[fp][i]; if (skills[i] != 20) { remainderWeight += weightRb[fp][i]; remainderWeight2 += weightR5[fp][i]; not20++; } } if (remainder/not20 > 0.9 || not20 == 0) { if (fp == 9) not20 = 11; else not20 = 14; remainderWeight = 1; remainderWeight2 = 5; } rec = funFix3((rec + remainder * remainderWeight / not20 - 2) / 3); ratingR += remainder * remainderWeight2 / not20; ratingR5 = funFix2(ratingR*1 + rou2 * 5); ratingR = funFix2(ratingR); var bestREC = rec; if (fp2 != -1 && fp2 != fp) { var rec2 = 0; var ratingR2 = 0; var ratingR52 = 0; remainderWeight = 0; // REREC remainder weight sum remainderWeight2 = 0; // RatingR5 remainder weight sum not20 = 0; // 20以外のスキル数 for (i = 0; i < weightRb[fp2].length; i++) { // weightR[fp].length = n.pesi[pos] cioè le skill: 14 o 11 rec2 += skills[i] * weightRb[fp2][i]; ratingR2 += skills[i] * weightR5[fp2][i]; if (skills[i] != 20) { remainderWeight += weightRb[fp2][i]; remainderWeight2 += weightR5[fp2][i]; not20++; } } if (remainder/not20 > 0.9 || not20 == 0) { if (fp2 == 9) not20 = 11; else not20 = 14; remainderWeight = 1; remainderWeight2 = 5; } rec2 = funFix3((rec2 + remainder * remainderWeight / not20 - 2) / 3); ratingR2 += remainder * remainderWeight2 / not20; ratingR52 = funFix2(ratingR2 + rou2 * 5); ratingR2 = funFix2(ratingR2); rec = rec+"/"+rec2; ratingR = ratingR+"/"+ratingR2; if (rec2 > rec) bestREC = rec2; } if (skills.length == 11) { var R5FP = funFix2(ratingR5*1 + allBonus*1); } else { R5FP = funFix2(ratingR5*1 + allBonus*1 + posGain[fp]*1 + posKeep[fp]*1); } var bestRR5 = R5FP; if (fp2 != -1 && fp2 != fp) { if (skills.length == 11) { var R5FP2 = funFix2(ratingR52*1 + allBonus*1); } else { R5FP2 = funFix2(ratingR52*1 + allBonus*1 + posGain[fp2]*1 + posKeep[fp2]*1); } R5FP = R5FP+"/"+R5FP2; if (R5FP2 > R5FP) bestRR5 = R5FP2; } $(RECdiv).find('#rec'+ (index+1) +'').text(rec); $(RECdiv).find('#rating'+ (index+1) +'').text(R5FP); $(RECdiv).find('#Ddir'+ (index+1) +'').text(funFix2(Ddir)); $(RECdiv).find('#Dwin'+ (index+1) +'').text(funFix2(Dwin)); $(RECdiv).find('#Dsho'+ (index+1) +'').text(funFix2(Dsho)); $(RECdiv).find('#Dlon'+ (index+1) +'').text(funFix2(Dlon)); $(RECdiv).find('#Dthr'+ (index+1) +'').text(funFix2(Dthr)); $(RECdiv).find('#Adir'+ (index+1) +'').text(funFix2(Adir)); $(RECdiv).find('#Awin'+ (index+1) +'').text(funFix2(Awin)); $(RECdiv).find('#Asho'+ (index+1) +'').text(funFix2(Asho)); $(RECdiv).find('#Alon'+ (index+1) +'').text(funFix2(Alon)); $(RECdiv).find('#Athr'+ (index+1) +'').text(funFix2(Athr)); $(RECdiv).find('#Fdir'+ (index+1) +'').text(funFix2(Fdir)); $(RECdiv).find('#Fwin'+ (index+1) +'').text(funFix2(Fwin)); $(RECdiv).find('#Fsho'+ (index+1) +'').text(funFix2(Fsho)); $(RECdiv).find('#Flon'+ (index+1) +'').text(funFix2(Flon)); $(RECdiv).find('#Fthr'+ (index+1) +'').text(funFix2(Fthr)); }); }); } function applyRoutine() { // remove span tags with "subtle" class: var Rou1 = document.getElementsByName("rou1")[0].value; var Rou2 = document.getElementsByName("rou2")[0].value; var skBonus1 = (3/100) * (100-(100) * Math.pow(Math.E, -Rou1*0.035)); var skBonus2 = (3/100) * (100-(100) * Math.pow(Math.E, -Rou2*0.035)); var newSkBns1 = document.getElementById("bonus1"); var newSkBns2 = document.getElementById("bonus2"); newSkBns1.textContent = " +"+skBonus1.toFixed(2); newSkBns2.textContent = " +"+skBonus2.toFixed(2); var subtleSpans = skillTbl.getElementsByClassName('subtle'); var subtleSpanContent, subtleSpanParent, newSubtleSpanContent; while (subtleSpans.length) { subtleSpanContent = subtleSpans[0].innerHTML; subtleSpanParent = subtleSpans[0].parentNode; newSubtleSpanContent = document.createTextNode(subtleSpanContent); subtleSpanParent.insertBefore(newSubtleSpanContent, subtleSpans[0]); subtleSpanParent.removeChild(subtleSpans[0]); } // calculate routine to skills: var tSkillSpans = skillTbl.getElementsByTagName("span"); var tSkillSpan; //var skill1 = []; for (var p1 = 0; p1 < tSkillSpans.length; p1 += 2) { tSkillSpan = tSkillSpans[p1]; // omit tSkillSpans[4] which stands for stamina and is not affected by routine: if (p1 === 4) { if (0 < parseFloat(tSkillSpan.innerHTML) && parseFloat(tSkillSpan.innerHTML) < 19) { tSkillSpan.innerHTML = parseFloat(tSkillSpan.innerHTML); } else { tSkillSpan.innerHTML = parseFloat(tSkillSpan.innerHTML.replace(/(^.+\D)(\d+)(\D.+$)/i, '$2')); } //skill1 = skill1.concat(tSkillSpan.innerHTML); dyeStamina(tSkillSpan); } else { if (0 < parseFloat(tSkillSpan.innerHTML) && parseFloat(tSkillSpan.innerHTML) < 19) { //skill1 = skill1.concat(parseFloat(tSkillSpan.innerHTML)); tSkillSpan.innerHTML = Math.round((parseFloat(tSkillSpan.innerHTML) + (3 / 100) * (100 - (100) * Math.exp(-Rou1* 0.035))) * 100) / 100; } else { //skill1 = skill1.concat(tSkillSpan.innerHTML.replace(/(^.+\D)(\d+)(\D.+$)/i, '$2')); tSkillSpan.innerHTML = Math.round((parseFloat(tSkillSpan.innerHTML.replace(/(^.+\D)(\d+)(\D.+$)/i, '$2')) + (3 / 100) * (100 - (100) * Math.exp(-Rou1 * 0.035))) * 100) / 100; } dyeSkills(tSkillSpan); } } //var skill2 = []; for (var p2 = 1; p2 < tSkillSpans.length; p2 += 2) { tSkillSpan = tSkillSpans[p2]; // omit tSkillSpans[5] which stands for stamina and is not affected by routine: if (p2 === 5) { if (0 < parseFloat(tSkillSpan.innerHTML) && parseFloat(tSkillSpan.innerHTML) < 19) { tSkillSpan.innerHTML = parseFloat(tSkillSpan.innerHTML); } else { tSkillSpan.innerHTML = parseFloat(tSkillSpan.innerHTML.replace(/(^.+\D)(\d+)(\D.+$)/i, '$2')); } //skill2 = skill2.concat(tSkillSpan.innerHTML); dyeStamina(tSkillSpan); } else { if (0 < parseFloat(tSkillSpan.innerHTML) && parseFloat(tSkillSpan.innerHTML) < 19) { //skill2 = skill2.concat(parseFloat(tSkillSpan.innerHTML)); tSkillSpan.innerHTML = Math.round((parseFloat(tSkillSpan.innerHTML) + (3 / 100) * (100 - (100) * Math.exp(-Rou2 * 0.035))) * 100) / 100; } else { //skill2 = skill2.concat(tSkillSpan.innerHTML.replace(/(^.+\D)(\d+)(\D.+$)/i, '$2')); tSkillSpan.innerHTML = Math.round((parseFloat(tSkillSpan.innerHTML.replace(/(^.+\D)(\d+)(\D.+$)/i, '$2')) + (3 / 100) * (100 - (100) * Math.exp(-Rou2 * 0.035))) * 100) / 100; } dyeSkills(tSkillSpan); } } // add new cells with +/- skills comparison: var tSkillRow, pl1Skill, pl2Skill, compareSkill1, compareSkill2; for (var tr = 0; tr < skillTbl.getElementsByTagName("tr").length; tr++) { tSkillRow = skillTbl.getElementsByTagName("tr")[tr]; if (tSkillRow.getElementsByTagName("span")[2] && tSkillRow.getElementsByTagName("span")[3]) { var pl1Skill1 = tSkillRow.getElementsByTagName("span")[0].innerHTML; var pl2SKill1 = tSkillRow.getElementsByTagName("span")[1].innerHTML; var pl1Skill2 = tSkillRow.getElementsByTagName("span")[2].innerHTML; var pl2SKill2 = tSkillRow.getElementsByTagName("span")[3].innerHTML; compareSkill1 = Math.round((parseFloat(pl1Skill1) - parseFloat(pl2SKill1)) * 100) / 100; compareSkill2 = Math.round((parseFloat(pl1Skill2) - parseFloat(pl2SKill2)) * 100) / 100; var compareCell1 = tSkillRow.insertCell(2); compareCell1.innerHTML = (compareSkill1 === 0 ? "= " : compareSkill1 < 0 ? "‒" : "+") + (compareSkill1 === 0 ? "" : Math.abs(compareSkill1)); compareCell1.style.textAlign = "left"; compareSkill1 === 0 ? compareCell1.style.color = "yellow" : compareSkill1 > 0 ? compareCell1.style.color = "lime" : compareCell1.style.color = "orangered"; var compareCell2 = tSkillRow.insertCell(5); compareCell2.innerHTML = (compareSkill2 === 0 ? "= " : compareSkill2 < 0 ? "‒" : "+") + (compareSkill2 === 0 ? "" : Math.abs(compareSkill2)); compareCell2.style.textAlign = "left"; compareSkill2 === 0 ? compareCell2.style.color = "yellow" : compareSkill2 > 0 ? compareCell2.style.color = "lime" : compareCell2.style.color = "orangered"; } else { pl1Skill1 = tSkillRow.getElementsByTagName("span")[0].innerHTML; pl2SKill1 = tSkillRow.getElementsByTagName("span")[1].innerHTML; compareSkill1 = Math.round((parseFloat(pl1Skill1) - parseFloat(pl2SKill1)) * 100) / 100; compareCell2 = tSkillRow.insertCell(2); compareCell1 = tSkillRow.insertCell(5); compareCell1.innerHTML = (compareSkill1 === 0 ? "= " : compareSkill1 < 0 ? "‒" : "+") + (compareSkill1 === 0 ? "" : Math.abs(compareSkill1)); compareCell1.style.textAlign = "left"; compareSkill1 === 0 ? compareCell1.style.color = "yellow" : compareSkill1 > 0 ? compareCell1.style.color = "lime" : compareCell1.style.color = "orangered"; } } // get rid of "class" in span tags for (var i = 0; i < skillTbl.getElementsByTagName("span").length; i++) { skillTbl.getElementsByTagName("span")[i].removeAttribute("class"); } } // colour skills depending on their value: function dyeStamina(tSkillSpan) { if (20 <= parseInt(tSkillSpan.innerHTML)) tSkillSpan.style.color = "#FF4500"; if (19 <= parseInt(tSkillSpan.innerHTML) && parseInt(tSkillSpan.innerHTML) < 20) tSkillSpan.style.color = "#FFA500"; if (17 <= parseInt(tSkillSpan.innerHTML) && parseInt(tSkillSpan.innerHTML) < 19) tSkillSpan.style.color = "#FFD700"; if (15 <= parseInt(tSkillSpan.innerHTML) && parseInt(tSkillSpan.innerHTML) < 17) tSkillSpan.style.color = "#FFFF00"; if (5 <= parseInt(tSkillSpan.innerHTML) && parseInt(tSkillSpan.innerHTML) < 10) tSkillSpan.style.opacity = "0.75"; if (1 <= parseInt(tSkillSpan.innerHTML) && parseInt(tSkillSpan.innerHTML) < 5) tSkillSpan.style.opacity = "0.5"; } function dyeSkills(tSkillSpan) { if (22 <= parseInt(tSkillSpan.innerHTML)) tSkillSpan.style.color = "#FF4500"; if (21 <= parseInt(tSkillSpan.innerHTML) && parseInt(tSkillSpan.innerHTML) < 22) tSkillSpan.style.color = "#FFA500"; if (19 <= parseInt(tSkillSpan.innerHTML) && parseInt(tSkillSpan.innerHTML) < 21) tSkillSpan.style.color = "#FFD700"; if (15 <= parseInt(tSkillSpan.innerHTML) && parseInt(tSkillSpan.innerHTML) < 19) tSkillSpan.style.color = "#FFFF00"; if (5 <= parseInt(tSkillSpan.innerHTML) && parseInt(tSkillSpan.innerHTML) < 10) tSkillSpan.style.opacity = "0.75"; if (1 <= parseInt(tSkillSpan.innerHTML) && parseInt(tSkillSpan.innerHTML) < 5) tSkillSpan.style.opacity = "0.5"; } // add/remove routine & comparison to/from skills: function toggleRoutine() { if (document.getElementById("routineToggle").innerHTML.includes("Add")) { applyRoutine(); RECandRating(); document.getElementById("routineToggle").innerHTML = "<span class='button_border' style='width: 90px; text-transform: none;'>Remove bonus</span>"; } else if (document.getElementById("routineToggle").innerHTML.includes("Remove")) { skillTbl.innerHTML = defaultSkillTbl; document.getElementById("routineToggle").innerHTML = "<span class='button_border' style='width: 90px; text-transform: none;'>Add routine</span>"; } else { alert("CAUTION: The script may not work properly!"); } }
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址