Infos WarRiders

Affiche des informations complémentaires dans WarRiders

您需要先安装一个扩展,例如 篡改猴Greasemonkey暴力猴,之后才能安装此脚本。

您需要先安装一个扩展,例如 篡改猴暴力猴,之后才能安装此脚本。

您需要先安装一个扩展,例如 篡改猴暴力猴,之后才能安装此脚本。

您需要先安装一个扩展,例如 篡改猴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.2
// @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

v2.2 : 28 mai 2016
*Padding cellule planètes totales
*Améliorations du code (variables, fonctions, prototypes)
*Alternance des couleurs des lignes dans la liste des planètes
*Affichage du nombre de lunes
*/

var strFunc = (function(){
	String.prototype.supprNonNum = function() { // Supprime tous les caractères non numériques d'une chaîne
		return this.replace(/[^0-9-]/g,'');
	};
	
	String.prototype.supprBlancs = function() { // Supprime tous les caractères blancs d'une chaîne
		return this.replace(/\s/g,'');
	};
	
	Element.prototype.alterneCouleurs = function(coul) { // Colorie le fond de toutes les cellules 'td' d'une ligne 'tr' sur  2 de l'élément <table> 
		var liste_tr = this.getElementsByTagName('tr');
		for (var i=0; i<liste_tr.length; i+=2) {		
			var liste_td = liste_tr[i].getElementsByTagName('td');
			for (var j=0; j<liste_td.length; j++) liste_td[j].setAttribute('style', 'background-color: '+coul+';');
		}
	};
	
	function $(id) {
			// Abrégé de document.getElementById(id);
			return document.getElementById(id);
	}
	
	function accord_pluriel(nb, str_sin, str_plu) { // Selon le nombre, renvoie la chaîne singulier ou pluriel (typiquement avec un 's' final)
		return ( nb > 1 ) ? str_plu : str_sin;
	}
	
	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_tr = tabl_stat.getElementsByTagName('tr');
			for (var j=0; j<liste_tr.length; j++) { // Parcours de toutes les lignes de la table
				var case1 = liste_tr[j].getElementsByTagName('td')[0];
				if ( case1 != undefined && case1.innerHTML.match(new RegExp(rubr)) ) return parseInt(liste_tr[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_tr = tabl_stat.getElementsByTagName('tr');
			for (var j=0; j<liste_tr.length; j++) { // Parcours de toutes les lignes de la table
				var case1 = liste_tr[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
	
		get_WRtable("Planète trouvé|coordonnées").alterneCouleurs('#666666'); // Coloration d'une ligne sur 2

		var liste_tr = tabl_coord.getElementsByTagName('tr');
		var n_pl=0, n_lu=0;
		for (var j=0; j<liste_tr.length; j++) { // Parcours de toutes les lignes de la table
			var case1 = liste_tr[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]+/) ) {
					if ( case1.childNodes[1].textContent.indexOf('L') != -1 ) n_lu++;
					n_pl++; // Décompte des planètes
					// Suppression des parenthèses (surcharge) dans le nom de la planète
					liste_tr[j].getElementsByTagName('td')[1].childNodes[1].textContent = liste_tr[j].getElementsByTagName('td')[1].childNodes[1].textContent.replace('(','');
					liste_tr[j].getElementsByTagName('td')[1].childNodes[3].textContent = '';
				}
			}	
		}
		
		// Affichage de la cellule 'total'
		tabl_coord.innerHTML += '<tr><td colspan="2"><div align="center" style="padding: 8px;"> <b><font size=3>'+n_pl+' '+accord_pluriel(n_pl, 'planète', 'planètes')+' & '+n_lu+' '+accord_pluriel(n_lu, 'lune', 'lunes')+'</font></b></div></td></tr>';
		
		// Correction orthographique titre tableau
		var str = ( n_pl > 1 ) ? 'Planètes trouvées ' : 'Planète trouvée ';
		liste_tr[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);