// ==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://gf.qytechs.cn/users/32455
// @grant function
// ==/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 "<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\"> (";
if (num < 20)
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\"> (";
if (num < 30)
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\"> (";
if (num < 40)
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\"> (";
if (num < 50)
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\"> (";
if (num < 61)
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\"> (";
if (num < 72)
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\"> (";
if (num < 84)
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\"> (";
if (num < 93.5)
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\"> (";
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\"> (";
}
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("<span class='coin'>", "").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 =
"<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>" +
"<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>" +
"<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>"
document.getElementsByClassName("nameplate")[0].appendChild(newdiv);
}
}
if (location.href.indexOf("matches") != -1) {
setTimeout(ShowInfo, 5000);
}