【茹西教王的理想鄉】NP计算增强

【茹西教王的理想鄉】NP计算页面增加暴击和鞭尸的NP数值

  1. // ==UserScript==
  2. // @name 【茹西教王的理想鄉】NP计算增强
  3. // @namespace https://gf.qytechs.cn/zh-CN/scripts/34566-%E8%8C%B9%E8%A5%BF%E6%95%99%E7%8E%8B%E7%9A%84%E7%90%86%E6%83%B3%E9%84%89-np%E8%AE%A1%E7%AE%97%E5%A2%9E%E5%BC%BA
  4. // @version 0.2.2.20171101
  5. // @icon http://kazemai.github.io/fgo-vz/favicon.ico
  6. // @description 【茹西教王的理想鄉】NP计算页面增加暴击和鞭尸的NP数值
  7. // @author AgLandy
  8. // @match http://kazemai.github.io/fgo-vz/np_get.html
  9. // @grant none
  10. // ==/UserScript==
  11.  
  12. /*
  13. 如有问题请到这里 “ http://bbs.ngacn.cc/read.php?tid=12715990 ” 反馈
  14. */
  15.  
  16. $('#svtNpCal').ready(function(){
  17.  
  18. var s = '\
  19. function svtCal(){\
  20. var a = getBaseNP(svtid.value);\
  21. npUp = rateLimit(10*in_np.value,5E3);\
  22. a.artUp = rateLimit(10*in_art.value,5E3);\
  23. a.quickUp = rateLimit(10*in_quick.value,5E3);\
  24. var d = $("#svtNpCal td[name]").slice(0, 23);\
  25. $.each(d, function(i, d){\
  26. var p = $(d).attr("name").split(",");\
  27. npCalE(p, a, d);\
  28. });\
  29. var b = 1 == a.npType ? npCal2(0,30,a.artUp,a.npHit,a.npbase) : 2 == a.npType ? npCal2(0,0,a.busterUp,a.npHit,a.npbase) : 3 == a.npType && npCal2(0,10,a.quickUp,a.npHit,a.npbase);\
  30. $("#svtNpCal td:eq(23)").html(b);\
  31. }\
  32. function npCalE(p, a, d){\
  33. if(p.length > 4){\
  34. var h = eval(p[4])*(1E4*parseInt(p[0])+parseInt(p[1])*(1E3+parseInt(eval(p[2]))))*(1E3+parseInt(npUp))/1E7,\
  35. cr = Math.floor(h*2)*eval(p[3])/100,\
  36. ok = Math.floor(Math.floor(h)*1.5)*eval(p[3])/100,\
  37. bo = Math.floor(Math.floor(h*2)*1.5)*eval(p[3])/100;\
  38. $(d).html(Math.floor(h)*eval(p[3])/100);\
  39. $(d).parent().parent().find("tr:eq(2) td[name=\'" + $(d).index() + "\']").html(cr);\
  40. $(d).parent().parent().find("tr:eq(3) td[name=\'" + $(d).index() + "\']").html(ok);\
  41. $(d).parent().parent().find("tr:eq(4) td[name=\'" + $(d).index() + "\']").html(bo);\
  42. if($(d).index() == 16 || $(d).index() == 17){\
  43. $(d).parent().parent().find("tr:eq(2) td[name=\'" + $(d).index() + "\']").html("-");\
  44. $(d).parent().parent().find("tr:eq(4) td[name=\'" + $(d).index() + "\']").html("-");\
  45. }\
  46. }\
  47. else if(/100/.test(p[0]))\
  48. $(d).html(eval(p[0]) + "%");\
  49. else\
  50. $(d).html(eval(p[0]));\
  51. }\
  52. function npCal2(firstCard, Magn, cardMod, hits, npbase){\
  53. return Math.floor(npbase*(1E4*firstCard+parseInt(Magn)*(1E3+parseInt(cardMod)))*(1E3+parseInt(npUp))/1E7)*hits/100;\
  54. }\
  55. function svtClick(c){$("#classid").val(0);classidChange();$("#svtid").val(c).trigger("change");}';
  56. $('<script type="text/javascript" />').html(s).appendTo('head');
  57.  
  58. var d = $('#svtNpCal').parent();
  59. d.css('float', '');
  60. d.prev().css('float', '');
  61.  
  62. var c = "<tbody><tr><th class='blue'>A%</th><th class='blue'>AH</th><th class='blue'>A1+</th><th class='blue'>A2</th><th class='blue'>A2+</th><th class='blue'>A3</th><th class='blue'>A3+</th><th class='green'>Q%</th><th class='green'>QH</th><th class='green'>Q1</th><th class='green'>Q2</th><th class='green'>Q2+</th><th class='green'>Q3</th><th class='green'>Q3+</th><th>Ex%</th><th>ExH</th><th>Ex</th><th>Ex+</th><th class='red'>B%</th><th class='red'>BH</th><th class='red'>B+</th><th>NP%</th><th>NPH</th><th>NP</th></tr></tbody>";
  63. $('#svtNpCal').html(c);
  64. $('#svtNpCal th').attr('width', '40');
  65. for(let i = 0; 4 > i; i++){
  66. let r = $('<tr align="center" />').appendTo(d.find('tbody'));
  67. for(let j = 0; d.find('th').length > j; j++){
  68. $('<td />').appendTo(r);
  69. }
  70. }
  71. var data = [
  72. 'a.npbaseA/100',
  73. 'a.artHit',
  74. '1,30,a.artUp,a.artHit,a.npbaseA',
  75. '0,45,a.artUp,a.artHit,a.npbaseA',
  76. '1,45,a.artUp,a.artHit,a.npbaseA',
  77. '0,60,a.artUp,a.artHit,a.npbaseA',
  78. '1,60,a.artUp,a.artHit,a.npbaseA',
  79. 'a.npbaseQ/100',
  80. 'a.quickHit',
  81. '0,10,a.quickUp,a.quickHit,a.npbaseQ',
  82. '0,15,a.quickUp,a.quickHit,a.npbaseQ',
  83. '1,15,a.quickUp,a.quickHit,a.npbaseQ',
  84. '0,20,a.quickUp,a.quickHit,a.npbaseQ',
  85. '1,20,a.quickUp,a.quickHit,a.npbaseQ',
  86. 'a.npbaseEx/100',
  87. 'a.exHit',
  88. '0,10,0,a.exHit,a.npbaseEx',
  89. '1,10,0,a.exHit,a.npbaseEx',
  90. 'a.npbaseB/100',
  91. 'a.busterHit',
  92. '1,0,a.busterUp,a.busterHit,a.npbaseB',
  93. 'a.npbase/100',
  94. 'a.npHit',
  95. ];
  96. $.each($('#svtNpCal tr:eq(1) td'), function(i, d){
  97. $(d).attr('name', data[i] ? data[i] : null);
  98. });
  99. for(let i = 1; i < 4; i++){
  100. let d = $('#svtNpCal tr:eq(' + (i + 1) + ')').children();
  101. for(let j = 1; j < d.length - 3; j++){
  102. $(d[j]).attr('name', j);
  103. if(/H/.test(d.parent().parent().find("th:eq(" + j + ")").html())){
  104. $(d[j - 1]).attr('alt', 't').html(1 == i ? '暴击' : 2 == i ? '鞭尸' : '暴击+鞭尸');
  105. $(d[j]).addClass('h');
  106. }
  107. }
  108. }
  109. $('#svtNpCal td.h').remove();
  110. $('#svtNpCal td[alt]').attr('colspan', '2').removeAttr('alt');
  111.  
  112. $('input[type="text"]').keydown(function(e){
  113. if(e.keyCode == 13)
  114. $('input[value="開始計算"]').click();
  115. });
  116.  
  117. $('input[value="開始計算"]').click();
  118.  
  119. $('#svtid').attr('onchange', 'svtidChange();console.log($(this).find(":selected").text() + " : " + this.value);');
  120.  
  121. });
  122.  
  123.  
  124.  
  125.  
  126.  

QingJ © 2025

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