Basic Statistics for the next match

Upgrade from Star players script

スクリプトをインストールするには、Tampermonkey, GreasemonkeyViolentmonkey のような拡張機能のインストールが必要です。

You will need to install an extension such as Tampermonkey to install this script.

スクリプトをインストールするには、TampermonkeyViolentmonkey のような拡張機能のインストールが必要です。

スクリプトをインストールするには、TampermonkeyUserscripts のような拡張機能のインストールが必要です。

このスクリプトをインストールするには、Tampermonkeyなどの拡張機能をインストールする必要があります。

このスクリプトをインストールするには、ユーザースクリプト管理ツールの拡張機能をインストールする必要があります。

(ユーザースクリプト管理ツールは設定済みなのでインストール!)

このスタイルをインストールするには、Stylusなどの拡張機能をインストールする必要があります。

このスタイルをインストールするには、Stylus などの拡張機能をインストールする必要があります。

このスタイルをインストールするには、Stylus tなどの拡張機能をインストールする必要があります。

このスタイルをインストールするには、ユーザースタイル管理用の拡張機能をインストールする必要があります。

このスタイルをインストールするには、ユーザースタイル管理用の拡張機能をインストールする必要があります。

このスタイルをインストールするには、ユーザースタイル管理用の拡張機能をインストールする必要があります。

(ユーザースタイル管理ツールは設定済みなのでインストール!)

このスクリプトの質問や評価の投稿はこちら通報はこちらへお寄せください
// ==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
// ==/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);
}