Infos WarRiders

Affiche des informations complémentaires dans WarRiders

当前为 2016-05-28 提交的版本,查看 最新版本

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Greasemonkey 油猴子Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Userscripts ,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展后才能安装此脚本。

(我已经安装了用户脚本管理器,让我安装!)

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

(我已经安装了用户样式管理器,让我安装!)

// ==UserScript==
// @name        Infos WarRiders
// @include     http://www.war-riders.de/*/*/details/player/*
// @include     http://www.war-riders.de/*/*/details/ally/*
// @include     http://www.war-riders.de/?lang=*&uni=*&type=player&name=*
// @include    	http://www.war-riders.de/?lang=*&uni=*&page=compare*&*
// @description	Affiche des informations complémentaires dans WarRiders
// @namespace   ogame
// @version     2.1
// @grant       none
// @author     Nitneuc -- Libre d'être modifié ou reproduit, tant que cette ligne @author reste complète

// ==/UserScript==

/*
// ****** Informations ******
Installation:
-------------
https://greasyfork.org/fr/scripts/19944-nombre-planetes-warriders
compatible firefox

ChangeLog:
----------
v1 : 25 mai 2016
*Première version stable

v1.1 : 25 mai 2016
*Ajout d'une page dans @include

v2 : 28 mai 2016
*Réorganisation du script en fonctions et prototypes
*Nouvelles informations : Pourcentage des points spécifiques (Économie, Recherche et Militaire) par rapport au total des points pour les joueurs et les alliances

v2.1 : 28 mai 2016
*Quelques corrections dans le code
*Amélioration de l'affichage des noms de planète
*Correction orthographique titre tableau planète, avec accord singulier si 1 seule planète
*Caractères du nombre de planètes total plus visible
*Nombre de planètes au singulier si 1 suele planète

*** A FAIRE
** creer_graphique_img() de expe-3000. Attention car > 100%
*/

var strFunc = (function(){
	String.prototype.supprNonNum = function() { // Supprime le ou les espaces se trouvant en fin de chaîne
		return this.replace(/[^0-9-]/g,'');
	};
	
	function $(id) {
			// Abrégé de document.getElementById(id);
			return document.getElementById(id);
	}
	
	function get_points(rubr){ // Renvoie le nombre de points affichées dans la rubrique rubr ("Points", "Économie", "Recherche", "Militaire")
		var tabl_stat = get_WRtable("Statistiques");
		if ( tabl_stat != undefined ) {
			var liste_lign = tabl_stat.getElementsByTagName('tr');
			for (var j=0; j<liste_lign.length; j++) { // Parcours de toutes les lignes de la table
				var case1 = liste_lign[j].getElementsByTagName('td')[0];
				if ( case1 != undefined && case1.innerHTML.match(new RegExp(rubr)) ) return parseInt(liste_lign[j+2].getElementsByTagName('td')[6].innerHTML.supprNonNum());
			}
		}
	}
	
	function get_WRtable(titr) { // Renvoie l'élément HTML table de WarRiders qui porte pour titre titr. Renvoie false si introuvable
		var liste_tabl = document.getElementsByTagName('table');
		for (var i=0; i<liste_tabl.length; i++) { // Parcours de tous les éléments 'table' de la page
			if ( liste_tabl[i].getElementsByTagName('tr')[0].innerHTML.match(new RegExp(titr))) return liste_tabl[i];
		}
		return false;
	}
	
	function write_points(rubr, info) { // Dans la table dénombrant les points, écrit info dans la rubrique rubr ("Points", "Économie", "Recherche", "Militaire")
		var tabl_stat = get_WRtable("Statistiques");
		if ( tabl_stat != undefined ) {
			var liste_lign = tabl_stat.getElementsByTagName('tr');
			for (var j=0; j<liste_lign.length; j++) { // Parcours de toutes les lignes de la table
				var case1 = liste_lign[j].getElementsByTagName('td')[0];
				if ( case1 != undefined && case1.innerHTML.match(new RegExp(rubr)) ) case1.innerHTML += info;
			}
		}
	}
	




	// **************************************
	// *** *** Tableau "Statistiques" *** ***
	// **************************************
		
	if ( get_WRtable("Statistiques") ) { // S'éxécute que si la table titrée "Statistiques" existe
		var p_tot = get_points('Points');
		var p_eco = get_points('Économie');
		var p_rec = get_points('Recherche');
		var p_mil = get_points('Militaire');
			
		write_points('Économie', ' <font color="black">('+(100*p_eco/p_tot).toFixed(2)+'%)</font>');
		write_points('Recherche', ' <font color="black">('+(100*p_rec/p_tot).toFixed(2)+'%)</font');
		write_points('Militaire', ' <font color="black">('+(100*p_mil/p_tot).toFixed(2)+'%)</font');
	}	
		
	// **********************************
	// *** *** Tableau "Planètes" *** ***
	// **********************************
		
	var tabl_coord = get_WRtable("Planète trouvé|coordonnées");
	if ( tabl_coord ) { // S'éxécute que si la table titrée "Planète trouvé" ou "coordonnées" existe
		var liste_lign = tabl_coord.getElementsByTagName('tr');
		var nbpl=0;
		for (var j=0; j<liste_lign.length; j++) { // Parcours de toutes les lignes de la table
			var case1 = liste_lign[j].getElementsByTagName('td')[0];
			if ( case1 != undefined ) {
				var case1_a = case1.getElementsByTagName('a')[0];
				if ( case1_a != undefined && case1_a.innerHTML.match(/[0-9]+:[0-9]+:[0-9]+/) ) {
					nbpl++; // Décompte des planètes
					// Suppression des parenthèses (surcharge) dans le nom de la planète
					liste_lign[j].getElementsByTagName('td')[1].childNodes[1].textContent = liste_lign[j].getElementsByTagName('td')[1].childNodes[1].textContent.replace('(','');
					liste_lign[j].getElementsByTagName('td')[1].childNodes[3].textContent = '';
				}
			}	
		}
		var str = ( nbpl > 1 ) ? 'planètes' : 'planète';
		tabl_coord.innerHTML += '<tr><td colspan="2"><div align="center"><b><font size=3>'+nbpl+' '+str+'</font></b></div></td></tr>';
		
		// Correction orthographique titre tableau
		var str = ( nbpl > 1 ) ? 'Planètes trouvées ' : 'Planète trouvée ';
		liste_lign[0].getElementsByTagName('th')[0].childNodes[0].textContent = str;
	}
}).toString();


var script = document.createElement("script");
script.setAttribute("type","text/javascript");
script.text = "(" + strFunc + ")();";
document.body.appendChild(script);