// ==UserScript== // @name Basic Statistics for the next match // @version 3.7 // @description Upgrade from Star players script // @author Spieler17 // @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. // @include https://trophymanager.com/matches/* // @namespace https://greasyfork.org/users/32455 // @grant function // @downloadURL https://update.greasyfork.icu/scripts/414238/Basic%20Statistics%20for%20the%20next%20match.user.js // @updateURL https://update.greasyfork.icu/scripts/414238/Basic%20Statistics%20for%20the%20next%20match.meta.js // ==/UserScript== var funShowStars; function isOKForShow() { var loading = document.getElementsByClassName("loading")[0]; var shown = document.getElementById("mystarbox"); if (loading != null) return false; if (shown != null) return false; return true; } function countStars(str) { var num1 = str.lastIndexOf("_") + 1; var num2 = str.lastIndexOf("\""); return parseInt(str.substring(num1, num2)); } function getStars(starnum) { var num = Math.round(starnum * 100 / 55); if (num < 10) return " ("; if (num < 20) return " ("; if (num < 30) return " ("; if (num < 40) return " ("; if (num < 50) return " ("; if (num < 61) return " ("; if (num < 72) return " ("; if (num < 84) return " ("; if (num < 93.5) return " ("; return " ("; } function GetPlayerData(playerID) { $.ajaxSetup({ async: false }); var player; $.post("/ajax/tooltip.ajax.php", { "player_id": playerID }, function (responseText) { var data = JSON.parse(responseText); player = { id: data.player.player_id, position: data.player.fp, ASI: Number(data.player.skill_index.split(',').join('')), xp: Number(data.player.routine.split(',').join('')), age: Number(data.player.age), month: Number(data.player.months), wage: Number(data.player.wage.replace("", "").replace("<\/span>", "").split(',').join('')) }; }); return player; } let BP = { /** * @param {number} asi * @param {number} age * @param {number} month * @param {number} position * @returns {number} calculated BP */ compute: function (asi, age, month, position) { let pow = Math.pow; if (position === "GK") { return Math.round((asi * 500 * pow((300 / (age * 12 + month)), 2.5)) * 0.75); } else { return Math.round(asi * 500 * pow((300 / (age * 12 + month)), 2.5)); } } }; function ShowInfo() { if (isOKForShow() == true) { var divs = document.getElementsByClassName("player_field")[0].getElementsByTagName("div"); var i = 0; var homeStar = 0; var homeXP = 0; var homeAge = 0; var homeASI = 0; var homeWage = 0; var homeBP = 0; var awayStar = 0; var awayXP = 0; var awayAge = 0; var awayASI = 0; var awayWage = 0; var awayBP = 0; for (; i <= 10; i++) { homeStar += countStars(divs[i * 2].innerHTML); let playerID = divs[i * 2].attributes[1].value; let player = GetPlayerData(playerID); homeXP += player.xp; homeAge += player.age * 12 + player.month; homeASI += player.ASI; homeWage += player.wage; homeBP += BP.compute(player.ASI, player.age, player.month, player.position); } for (; i <= 21; i++) { awayStar += countStars(divs[i * 2].innerHTML); let playerID = divs[i * 2].attributes[1].value; let player = GetPlayerData(playerID); awayXP += player.xp; awayAge += player.age * 12 + player.month; awayASI += player.ASI; awayWage += player.wage; awayBP += BP.compute(player.ASI, player.age, player.month, player.position); } homeStar = homeStar / 2; homeStar = homeStar.toFixed(1); awayStar = awayStar / 2; awayStar = awayStar.toFixed(1); var newdiv = document.createElement("div"); newdiv.innerHTML = "
" + getStars(homeStar) + homeStar + "/55)
" + getStars(awayStar) + awayStar + "/55)
" + "
" + "XP:" + (homeXP / 11).toFixed(1) + " Age:" + (homeAge / 11 / 12).toFixed(1) + " ASI:" + (homeASI / 11).toFixed(0).replace(/\B(?=(\d{3})+(?!\d))/g, ".") + "
" + "XP:" + (awayXP / 11).toFixed(1) + " Age:" + (awayAge / 11 / 12).toFixed(1) + " ASI:" + (awayASI / 11).toFixed(0).replace(/\B(?=(\d{3})+(?!\d))/g, ".") + "
" + "
" + "BP:" + (homeBP / 11 / 1000).toFixed(0).replace(/\B(?=(\d{3})+(?!\d))/g, ".") + " Wage:" + (homeWage / 11 / 1000).toFixed(0).replace(/\B(?=(\d{3})+(?!\d))/g, ".") + "
" + "BP:" + (awayBP / 11 / 1000).toFixed(0).replace(/\B(?=(\d{3})+(?!\d))/g, ".") + " Wage:" + (awayWage / 11 / 1000).toFixed(0).replace(/\B(?=(\d{3})+(?!\d))/g, ".") + "
" document.getElementsByClassName("nameplate")[0].appendChild(newdiv); } } if (location.href.indexOf("matches") != -1) { setTimeout(ShowInfo, 5000); }