Basic Statistics for the next match

Upgrade from Star players script

  1. // ==UserScript==
  2. // @name Basic Statistics for the next match
  3. // @version 3.7
  4. // @description Upgrade from Star players script
  5. // @author Spieler17
  6. // @description You can immediately find out the result of the league match in the viewing mode of the match, as well as the starting lineups in the stars.
  7. // @include https://trophymanager.com/matches/*
  8. // @namespace https://gf.qytechs.cn/users/32455
  9. // @grant function
  10. // ==/UserScript==
  11.  
  12. var funShowStars;
  13.  
  14. function isOKForShow() {
  15. var loading = document.getElementsByClassName("loading")[0];
  16. var shown = document.getElementById("mystarbox");
  17. if (loading != null)
  18. return false;
  19. if (shown != null)
  20. return false;
  21. return true;
  22. }
  23.  
  24. function countStars(str) {
  25. var num1 = str.lastIndexOf("_") + 1;
  26. var num2 = str.lastIndexOf("\"");
  27. return parseInt(str.substring(num1, num2));
  28. }
  29.  
  30. function getStars(starnum) {
  31.  
  32. var num = Math.round(starnum * 100 / 55);
  33.  
  34. if (num < 10)
  35. return "<img src=\"/pics/half_star.png\"><img src=\"/pics/dark_star.png\"><img src=\"/pics/dark_star.png\"><img src=\"/pics/dark_star.png\"><img src=\"/pics/dark_star.png\"> (";
  36. if (num < 20)
  37. return "<img src=\"/pics/star.png\"><img src=\"/pics/dark_star.png\"><img src=\"/pics/dark_star.png\"><img src=\"/pics/dark_star.png\"><img src=\"/pics/dark_star.png\"> (";
  38. if (num < 30)
  39. return "<img src=\"/pics/star.png\"><img src=\"/pics/half_star.png\"><img src=\"/pics/dark_star.png\"><img src=\"/pics/dark_star.png\"><img src=\"/pics/dark_star.png\"> (";
  40. if (num < 40)
  41. return "<img src=\"/pics/star.png\"><img src=\"/pics/star.png\"><img src=\"/pics/dark_star.png\"><img src=\"/pics/dark_star.png\"><img src=\"/pics/dark_star.png\"> (";
  42. if (num < 50)
  43. return "<img src=\"/pics/star.png\"><img src=\"/pics/star.png\"><img src=\"/pics/half_star.png\"><img src=\"/pics/dark_star.png\"><img src=\"/pics/dark_star.png\"> (";
  44. if (num < 61)
  45. return "<img src=\"/pics/star.png\"><img src=\"/pics/star.png\"><img src=\"/pics/star.png\"><img src=\"/pics/dark_star.png\"><img src=\"/pics/dark_star.png\"> (";
  46. if (num < 72)
  47. return "<img src=\"/pics/star.png\"><img src=\"/pics/star.png\"><img src=\"/pics/star.png\"><img src=\"/pics/half_star.png\"><img src=\"/pics/dark_star.png\"> (";
  48. if (num < 84)
  49. return "<img src=\"/pics/star.png\"><img src=\"/pics/star.png\"><img src=\"/pics/star.png\"><img src=\"/pics/star.png\"><img src=\"/pics/dark_star.png\"> (";
  50. if (num < 93.5)
  51. return "<img src=\"/pics/star.png\"><img src=\"/pics/star.png\"><img src=\"/pics/star.png\"><img src=\"/pics/star.png\"><img src=\"/pics/half_star.png\"> (";
  52.  
  53. return "<img src=\"/pics/star.png\"><img src=\"/pics/star.png\"><img src=\"/pics/star.png\"><img src=\"/pics/star.png\"><img src=\"/pics/star.png\"> (";
  54. }
  55.  
  56. function GetPlayerData(playerID) {
  57. $.ajaxSetup({
  58. async: false
  59. });
  60. var player;
  61. $.post("/ajax/tooltip.ajax.php", {
  62. "player_id": playerID
  63. }, function (responseText) {
  64. var data = JSON.parse(responseText);
  65. player = {
  66. id: data.player.player_id,
  67. position: data.player.fp,
  68. ASI: Number(data.player.skill_index.split(',').join('')),
  69. xp: Number(data.player.routine.split(',').join('')),
  70. age: Number(data.player.age),
  71. month: Number(data.player.months),
  72. wage: Number(data.player.wage.replace("<span class='coin'>", "").replace("<\/span>", "").split(',').join(''))
  73. };
  74. });
  75. return player;
  76. }
  77.  
  78. let BP = {
  79. /**
  80. * @param {number} asi
  81. * @param {number} age
  82. * @param {number} month
  83. * @param {number} position
  84. * @returns {number} calculated BP
  85. */
  86. compute: function (asi, age, month, position) {
  87. let pow = Math.pow;
  88. if (position === "GK") {
  89. return Math.round((asi * 500 * pow((300 / (age * 12 + month)), 2.5)) * 0.75);
  90. } else {
  91. return Math.round(asi * 500 * pow((300 / (age * 12 + month)), 2.5));
  92. }
  93. }
  94. };
  95.  
  96. function ShowInfo() {
  97. if (isOKForShow() == true) {
  98. var divs = document.getElementsByClassName("player_field")[0].getElementsByTagName("div");
  99. var i = 0;
  100. var homeStar = 0;
  101. var homeXP = 0;
  102. var homeAge = 0;
  103. var homeASI = 0;
  104. var homeWage = 0;
  105. var homeBP = 0;
  106.  
  107. var awayStar = 0;
  108. var awayXP = 0;
  109. var awayAge = 0;
  110. var awayASI = 0;
  111. var awayWage = 0;
  112. var awayBP = 0;
  113.  
  114. for (; i <= 10; i++) {
  115. homeStar += countStars(divs[i * 2].innerHTML);
  116. let playerID = divs[i * 2].attributes[1].value;
  117. let player = GetPlayerData(playerID);
  118. homeXP += player.xp;
  119. homeAge += player.age * 12 + player.month;
  120. homeASI += player.ASI;
  121. homeWage += player.wage;
  122. homeBP += BP.compute(player.ASI, player.age, player.month, player.position);
  123. }
  124. for (; i <= 21; i++) {
  125. awayStar += countStars(divs[i * 2].innerHTML);
  126. let playerID = divs[i * 2].attributes[1].value;
  127. let player = GetPlayerData(playerID);
  128. awayXP += player.xp;
  129. awayAge += player.age * 12 + player.month;
  130. awayASI += player.ASI;
  131. awayWage += player.wage;
  132. awayBP += BP.compute(player.ASI, player.age, player.month, player.position);
  133. }
  134. homeStar = homeStar / 2;
  135. homeStar = homeStar.toFixed(1);
  136. awayStar = awayStar / 2;
  137. awayStar = awayStar.toFixed(1);
  138.  
  139. var newdiv = document.createElement("div");
  140.  
  141. newdiv.innerHTML =
  142. "<br><div id=\"mystarbox\" class=\"home color\" style=\"background-color:rgb(127,127,127)\"><b style=\"color: gold;\">" + getStars(homeStar) + homeStar + "/55)</b></div><div class=\"away color\" style=\"background-color:rgb(10,5,76)\"><b style=\"color: gold;\">" + getStars(awayStar) + awayStar + "/55)</b></div>" +
  143.  
  144. "<br><div id=\"myxp\" class=\"home color\" style=\"background-color:rgb(127,127,127)\"><b style=\"color: gold;\">" + "XP:" + (homeXP / 11).toFixed(1) + " Age:" + (homeAge / 11 / 12).toFixed(1) + " ASI:" + (homeASI / 11).toFixed(0).replace(/\B(?=(\d{3})+(?!\d))/g, ".") + "</b></div><div class=\"away color\" style=\"background-color:rgb(10,5,76)\"><b style=\"color: gold;\">" + "XP:" + (awayXP / 11).toFixed(1) + " Age:" + (awayAge / 11 / 12).toFixed(1) + " ASI:" + (awayASI / 11).toFixed(0).replace(/\B(?=(\d{3})+(?!\d))/g, ".") + "</b></div>" +
  145.  
  146. "<br><div id=\"myxp\" class=\"home color\" style=\"background-color:rgb(127,127,127)\"><b style=\"color: gold;\">" + "BP:" + (homeBP / 11 / 1000).toFixed(0).replace(/\B(?=(\d{3})+(?!\d))/g, ".") + " Wage:" + (homeWage / 11 / 1000).toFixed(0).replace(/\B(?=(\d{3})+(?!\d))/g, ".") + "</b></div><div class=\"away color\" style=\"background-color:rgb(10,5,76)\"><b style=\"color: gold;\">" + "BP:" + (awayBP / 11 / 1000).toFixed(0).replace(/\B(?=(\d{3})+(?!\d))/g, ".") + " Wage:" + (awayWage / 11 / 1000).toFixed(0).replace(/\B(?=(\d{3})+(?!\d))/g, ".") + "</b></div>"
  147.  
  148. document.getElementsByClassName("nameplate")[0].appendChild(newdiv);
  149. }
  150. }
  151.  
  152. if (location.href.indexOf("matches") != -1) {
  153. setTimeout(ShowInfo, 5000);
  154. }

QingJ © 2025

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