// ==UserScript== // @name OGame RaidsTable // @description Tableau de raids // @description:en Raids table // @namespace Xanatos // @include http://*.ogame.gameforge.com/game/index.php?page=messages // @version 1.7.0 // @grant none // @downloadURL none // ==/UserScript== // Compatibility OGame 6.0.6 (function() { function trim(string) {return string.replace(/(^\s*)|(\s*$)/g,'');} function numberWithCommas(x) { return x.toString().replace(/\B(?=(\d{3})+(?!\d))/g, "."); } function removeElement(node) { node.parentNode.removeChild(node); } function extractRess(res) { if(/:/.test(res.textContent)) { res =trim(res.textContent.split(':')[1]); } else { res=trim(res.textContent); } if(/^[0-9]{1,3}\.[0-9]{3}$/.test(res)) res=res.replace(/\./g,''); else if (/^[0-9]{1,3}(\.|,)[0-9]{1,3}Md/.test(res)) res=res.replace(/,/g,'.').replace(/Md/g,'')*1000000000; else if (/^[0-9]{1,3}(\.|,)[0-9]{1,3}M/.test(res)) res=res.replace(/,/g,'.').replace(/M/g,'')*1000000; return parseInt(res); } function raidsTable_init() { if(document.querySelector('#chatBar')) { var uiid20_ul = document.querySelector("#ui-id-20 .tab_inner:first-child"); } else { var uiid20_ul = document.querySelector("#ui-id-14 .tab_inner:first-child"); } var raidsTable = document.querySelector("#raidsTable_container"); // on affiche le tableau s'il n'existe pas déjà if (uiid20_ul && !raidsTable) { // on récupère tous les messages var computed_messages = []; var raw_messages = uiid20_ul.querySelectorAll('li.msg'), i; for(i = 0; i < raw_messages.length; i++) { var current_raw_message = raw_messages[i]; var computed_message_built = {}; if(current_raw_message.querySelectorAll('.espionageDefText').length == 0) { // message id computed_message_built.id = current_raw_message.getAttribute('data-msg-id'); // joueur et coordonnées var player = current_raw_message.querySelectorAll('.msg_content')[0].querySelectorAll('div')[0]; var player_html_nodes = player.children; var player_html = "", k = 0; for(k = 1; k < player_html_nodes.length; k++) { if(k > 1) { player_html += ' '; } player_html += player_html_nodes[k].innerHTML } computed_message_built.player = player_html; // pourcentage butin var booty = current_raw_message.querySelectorAll('.msg_content')[0].querySelectorAll('div')[2].querySelectorAll('span')[0]; booty = booty.innerHTML; var regex = /[\d\.]+/g; booty = booty.match(regex)[0]; booty = parseInt(booty); computed_message_built.booty = booty; // ressources var ress = current_raw_message.getElementsByClassName('resspan'); var metal = extractRess(ress[0]); var crystal = extractRess(ress[1]); var deut = extractRess(ress[2]); var fret = parseInt(booty/100*Math.max(metal+crystal+deut , Math.min(3/4*(2*metal+crystal+deut) , 2*metal+deut))*1.1); computed_message_built.raw_resources = fret; computed_message_built.resources = numberWithCommas(fret); // gt computed_message_built.gt = Math.round(fret/25000); // pt computed_message_built.pt = Math.round(fret/5000); // liens transporteurs var link=current_raw_message.getElementsByClassName('msg_actions clearfix')[0].getElementsByTagName('a')[2].href; var APIkey = current_raw_message.getElementsByClassName('icon_apikey')[0].title.split('-')[3]; computed_message_built.linkGT = link+'&am203='+computed_message_built.gt+'&addGT='+APIkey; computed_message_built.linkPT = link+'&am202='+computed_message_built.pt+'&addGT='+APIkey; // flotte var fleet = current_raw_message.querySelectorAll('.msg_content')[0].querySelectorAll('div')[3].querySelectorAll('span')[0].getAttribute('title'); computed_message_built.fleet = fleet; // recycleurs recycler = computed_message_built.fleet.replace(/\./g , ''); recycler = recycler/20000; computed_message_built.recycler_30 = Math.round(recycler*0.3); computed_message_built.recycler_50 = Math.round(recycler*0.5); computed_message_built.recycler_60 = Math.round(recycler*0.6); computed_message_built.recycler_70 = Math.round(recycler*0.7); // défense var defense = current_raw_message.querySelectorAll('.msg_content')[0].querySelectorAll('div')[3].querySelectorAll('span')[1].getAttribute('title'); computed_message_built.defense = defense; // bouton d'attaque var attack_button = current_raw_message.querySelectorAll('.msg_actions')[0].querySelectorAll('a')[2].getAttribute('href'); computed_message_built.attack_button = attack_button; if(i%2 == 0) { current_raw_message.style.backgroundColor = '#111'; } current_raw_message.setAttribute('id', 'anchor'+computed_message_built.id); computed_messages.push(computed_message_built); } } if(computed_messages.length > 0) { // re-ordonnement computed_messages.sort(function(a, b) { if(a.raw_resources > b.raw_resources) { return -1; } else { return 1; } return 0; }); // construction du tableau var table = '
| # | '; table += 'Joueur | '; table += 'Flotte | '; table += 'Défense | '; table += 'Pillage | '; table += 'GT | '; table += 'PT | '; table += ''; table += ' | '; table += ' |
|---|---|---|---|---|---|---|---|---|
| #'+tr_row+' | '; table += '' + current_computed_message.player + ' | '; table += '' + current_computed_message.fleet + ' | '; table += '' + current_computed_message.defense + ' | '; table += '' + current_computed_message.resources + ' ('+current_computed_message.booty+'%) | '; table += '' + current_computed_message.gt + ' | '; table += '' + current_computed_message.pt + ' | '; table += ''+attack+' | '; table += ''+del_button+' | '; table += '