Infos WarRiders

Affiche des informations complémentaires dans WarRiders

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

  1. // ==UserScript==
  2. // @name Infos WarRiders
  3. // @include http://www.war-riders.de/*/*/details/player/*
  4. // @include http://www.war-riders.de/*/*/details/ally/*
  5. // @include http://www.war-riders.de/?lang=*&uni=*&type=player&name=*
  6. // @include http://www.war-riders.de/?lang=*&uni=*&page=compare*&*
  7. // @description Affiche des informations complémentaires dans WarRiders
  8. // @namespace ogame
  9. // @version 2.1
  10. // @grant none
  11. // @author Nitneuc -- Libre d'être modifié ou reproduit, tant que cette ligne @author reste complète
  12.  
  13. // ==/UserScript==
  14.  
  15. /*
  16. // ****** Informations ******
  17. Installation:
  18. -------------
  19. https://greasyfork.org/fr/scripts/19944-nombre-planetes-warriders
  20. compatible firefox
  21.  
  22. ChangeLog:
  23. ----------
  24. v1 : 25 mai 2016
  25. *Première version stable
  26.  
  27. v1.1 : 25 mai 2016
  28. *Ajout d'une page dans @include
  29.  
  30. v2 : 28 mai 2016
  31. *Réorganisation du script en fonctions et prototypes
  32. *Nouvelles informations : Pourcentage des points spécifiques (Économie, Recherche et Militaire) par rapport au total des points pour les joueurs et les alliances
  33.  
  34. v2.1 : 28 mai 2016
  35. *Quelques corrections dans le code
  36. *Amélioration de l'affichage des noms de planète
  37. *Correction orthographique titre tableau planète, avec accord singulier si 1 seule planète
  38. *Caractères du nombre de planètes total plus visible
  39. *Nombre de planètes au singulier si 1 suele planète
  40.  
  41. *** A FAIRE
  42. ** creer_graphique_img() de expe-3000. Attention car > 100%
  43. */
  44.  
  45. var strFunc = (function(){
  46. String.prototype.supprNonNum = function() { // Supprime le ou les espaces se trouvant en fin de chaîne
  47. return this.replace(/[^0-9-]/g,'');
  48. };
  49. function $(id) {
  50. // Abrégé de document.getElementById(id);
  51. return document.getElementById(id);
  52. }
  53. function get_points(rubr){ // Renvoie le nombre de points affichées dans la rubrique rubr ("Points", "Économie", "Recherche", "Militaire")
  54. var tabl_stat = get_WRtable("Statistiques");
  55. if ( tabl_stat != undefined ) {
  56. var liste_lign = tabl_stat.getElementsByTagName('tr');
  57. for (var j=0; j<liste_lign.length; j++) { // Parcours de toutes les lignes de la table
  58. var case1 = liste_lign[j].getElementsByTagName('td')[0];
  59. if ( case1 != undefined && case1.innerHTML.match(new RegExp(rubr)) ) return parseInt(liste_lign[j+2].getElementsByTagName('td')[6].innerHTML.supprNonNum());
  60. }
  61. }
  62. }
  63. function get_WRtable(titr) { // Renvoie l'élément HTML table de WarRiders qui porte pour titre titr. Renvoie false si introuvable
  64. var liste_tabl = document.getElementsByTagName('table');
  65. for (var i=0; i<liste_tabl.length; i++) { // Parcours de tous les éléments 'table' de la page
  66. if ( liste_tabl[i].getElementsByTagName('tr')[0].innerHTML.match(new RegExp(titr))) return liste_tabl[i];
  67. }
  68. return false;
  69. }
  70. function write_points(rubr, info) { // Dans la table dénombrant les points, écrit info dans la rubrique rubr ("Points", "Économie", "Recherche", "Militaire")
  71. var tabl_stat = get_WRtable("Statistiques");
  72. if ( tabl_stat != undefined ) {
  73. var liste_lign = tabl_stat.getElementsByTagName('tr');
  74. for (var j=0; j<liste_lign.length; j++) { // Parcours de toutes les lignes de la table
  75. var case1 = liste_lign[j].getElementsByTagName('td')[0];
  76. if ( case1 != undefined && case1.innerHTML.match(new RegExp(rubr)) ) case1.innerHTML += info;
  77. }
  78. }
  79. }
  80.  
  81.  
  82.  
  83.  
  84. // **************************************
  85. // *** *** Tableau "Statistiques" *** ***
  86. // **************************************
  87. if ( get_WRtable("Statistiques") ) { // S'éxécute que si la table titrée "Statistiques" existe
  88. var p_tot = get_points('Points');
  89. var p_eco = get_points('Économie');
  90. var p_rec = get_points('Recherche');
  91. var p_mil = get_points('Militaire');
  92. write_points('Économie', ' <font color="black">('+(100*p_eco/p_tot).toFixed(2)+'%)</font>');
  93. write_points('Recherche', ' <font color="black">('+(100*p_rec/p_tot).toFixed(2)+'%)</font');
  94. write_points('Militaire', ' <font color="black">('+(100*p_mil/p_tot).toFixed(2)+'%)</font');
  95. }
  96. // **********************************
  97. // *** *** Tableau "Planètes" *** ***
  98. // **********************************
  99. var tabl_coord = get_WRtable("Planète trouvé|coordonnées");
  100. if ( tabl_coord ) { // S'éxécute que si la table titrée "Planète trouvé" ou "coordonnées" existe
  101. var liste_lign = tabl_coord.getElementsByTagName('tr');
  102. var nbpl=0;
  103. for (var j=0; j<liste_lign.length; j++) { // Parcours de toutes les lignes de la table
  104. var case1 = liste_lign[j].getElementsByTagName('td')[0];
  105. if ( case1 != undefined ) {
  106. var case1_a = case1.getElementsByTagName('a')[0];
  107. if ( case1_a != undefined && case1_a.innerHTML.match(/[0-9]+:[0-9]+:[0-9]+/) ) {
  108. nbpl++; // Décompte des planètes
  109. // Suppression des parenthèses (surcharge) dans le nom de la planète
  110. liste_lign[j].getElementsByTagName('td')[1].childNodes[1].textContent = liste_lign[j].getElementsByTagName('td')[1].childNodes[1].textContent.replace('(','');
  111. liste_lign[j].getElementsByTagName('td')[1].childNodes[3].textContent = '';
  112. }
  113. }
  114. }
  115. var str = ( nbpl > 1 ) ? 'planètes' : 'planète';
  116. tabl_coord.innerHTML += '<tr><td colspan="2"><div align="center"><b><font size=3>'+nbpl+' '+str+'</font></b></div></td></tr>';
  117. // Correction orthographique titre tableau
  118. var str = ( nbpl > 1 ) ? 'Planètes trouvées ' : 'Planète trouvée ';
  119. liste_lign[0].getElementsByTagName('th')[0].childNodes[0].textContent = str;
  120. }
  121. }).toString();
  122.  
  123.  
  124. var script = document.createElement("script");
  125. script.setAttribute("type","text/javascript");
  126. script.text = "(" + strFunc + ")();";
  127. document.body.appendChild(script);