NOTICE: By continued use of this site you understand and agree to the binding Terms of Service and Privacy Policy.
// ==UserScript== // @name OGame Rediseño: Compactador Batallas Automatico // @description Compacta las batallas automaticamente. // @author Otro // @include http://*/game/index.php?*page=* // @grant GM_xmlhttpRequest // @grant GM_log // @grant unsafeWindow // ==/UserScript== (function () { var SCRIPT = { name: "Compactador automático de batallas trusreno" ,url: "http://userscripts.org/scripts/show/75647" ,version: "1.4" ,version_completa: "1.4.14" ,funciona_ok: "5.7.99.99" }; // ============================================================================================== // ============================================================================================== // ============================================================================================== function gethttprequest(dirurl) { var respuesta; GM_xmlhttpRequest({ method: "GET", url: dirurl, onload: function(response) { var resphttprequest = document.createElement('div'); resphttprequest.id = "resphttprequest"; resphttprequest.innerHTML = response.responseText; resphttprequest.style.display = "none"; resphttprequest.tag = dirurl; document.body.appendChild(resphttprequest); } }); } var btndonate = ''; btndonate += '<center><form action="https://www.paypal.com/cgi-bin/webscr" method="post" target="_blank">'; btndonate += '<input type="hidden" name="cmd" value="_s-xclick">'; btndonate += '<input type="hidden" name="hosted_button_id" value="7CBAVV6WKZ526">' btndonate += '<input type="image" src="https://www.paypalobjects.com/es_ES/ES/i/btn/btn_donate_SM.gif" border="0" name="submit" alt="PayPal. La forma rápida y segura de pagar en Internet.">'; btndonate += '<img alt="" border="0" src="https://www.paypalobjects.com/es_ES/i/scr/pixel.gif" width="1" height="1">'; btndonate += '</form></center><br>'; function MenuLib() { // crea un boton en el menu izquierdo dentro del juego this.menuButton_create = function() { var MenuTableTools = document.getElementById('menuTableTools'); var Data = document.getElementById('trusrenocomp'); if (! Data) { var ListElement = document.createElement('li'); ListElement.innerHTML = '<div id="trusrenocomp" style="display: none;"></div>' + '<a id="btn_menu_trusrenocomp" href="javascript:void(0)" class="menubutton"><span class="textlabel"><p style="color:#F59754">Ganancias Batalla</p></span></a>'; if (MenuTableTools.childNodes.length) { MenuTableTools.insertBefore( ListElement, MenuTableTools.childNodes[0]); } else { MenuTableTools.appendChild(ListElement); } Data = document.getElementById('trusrenocomp'); Data.parentNode.addEventListener('click', this.menuButton_click, false); } }; // acciones a realizar al pulsar sobre el boton del menu this.menuButton_click = function() { var ContentWrapper = document.getElementById('contentWrapper'); if (ContentWrapper) { var content = '', Inhalt = document.getElementById('inhalt'), Container = document.getElementById('trusrenocomp_div_container'); if (Inhalt) { Inhalt.style.display = (Container) ? 'block' : 'none'; } } if (Container) { ContentWrapper.removeChild( Container ); } else { Container = document.createElement('div'); Container.id = 'trusrenocomp_div_container'; if (ContentWrapper.childNodes.length) { ContentWrapper.insertBefore( Container, ContentWrapper.childNodes[0] ); } else { ContentWrapper.appendChild( Container ); } // seccion menu content += '<p align="center"><br><br><table class="" width="100%">'; content += '<tr><td colspan="4" style="background-color:#0A122A">' content += '<br><center><b><a href="http://userscripts.org/scripts/show/75647" target="_blank">Compactador automático de batallas trusreno [' + SCRIPT.version_completa + ']</b><br>'; content += '<br>HoChiChaos/trustux & Rudolph/Granja_VIP<br>[trusreno]</a></center><br>' content += btndonate; content += '</td></tr>'; content += '<tr>'; content += '<td width="25%" style="text-align:center;" bgcolor="#240B3B"><a style="color: #FFFFFF; font-size: 10pt" id="mostrar_sec1" href="javascript:void(0)">Diario</a></td>'; content += '<td width="25%" style="text-align:center;" bgcolor="#240B3B"><a style="color: #FFFFFF; font-size: 10pt" id="mostrar_sec2" href="javascript:void(0)">Mensual</a></td>'; content += '<td width="25%" style="text-align:center;" bgcolor="#240B3B"><a style="color: #FFFFFF; font-size: 10pt" id="mostrar_sec3" href="javascript:void(0)">Consideraciones</a></td>'; content += '<td width="25%" style="text-align:center;" bgcolor="#240B3B"><a style="color: #FFFFFF; font-size: 10pt" id="mostrar_sec4" href="javascript:void(0)">-[ CERRAR ]-</a></td>'; content += '</tr></table></p>'; // seccion diario content += '<div id="div_diario" style="background-color:#0A122A"><br>'; content += '<table>'; content += '<tr><td width="120" align="right"><b>DIA</b></td><td width="120" align="right"><b>BATALLAS</b></td><td width="120" align="right"><b>METAL</b></td><td width="120" align="right"><b>CRISTAL</b></td><td width="120" align="right"><b>DEUTERIO</b></td><td width="120" align="right"><b>TOTAL</b></td></tr>'; var diario_metal = new HashTable(); diario_metal.parse(options.get("diario_metal")); var diario_cristal = new HashTable(); diario_cristal.parse(options.get("diario_cristal")); var diario_deu = new HashTable(); diario_deu.parse(options.get("diario_deu")); var diario_batallas = new HashTable(); diario_batallas.parse(options.get("diario_batallas")); var keys = diario_metal.keys(); var b, m, c, d; var tb, tm, tc, td; var muestras = 0; b = tb = m = tm = c = tc = d = td = 0; var bbcodediario = "\n[size=14][u][b]Ganancias diarias en batallas de " + options.get("playername") + "[/b][/u] [/size]\n\n"; for(var i = keys.length-1; i >= 0; i--) { b = soloN(diario_batallas.getItem(keys[i])); m = soloN(diario_metal.getItem(keys[i])); c = soloN(diario_cristal.getItem(keys[i])); d = soloN(diario_deu.getItem(keys[i])); muestras ++; tb += b; tm += m; tc += c; td += d; content += '<tr>'; content += '<td align="right"><b>' + keys[i] + '<b></td>'; content += '<td align="right">' + N(b) + '</td>'; content += '<td align="right"><p style="color:#9999ff;">' + N(m) + '</p></td>'; content += '<td align="right"><p style="color:#00ff00;">' + N(c) + '</p></td>'; content += '<td align="right"><p style="color:#ff00ff;">' + N(d) + '</p></td>'; content += '<td align="right">' + N(parseInt(m)+parseInt(c)+parseInt(d)) + '</td>'; content += '</tr>'; bbcodediario += keys[i] + ' [' + N(b) + ' batallas] : [color=#9999ff]' + N(m) + '[/color] Metal, [color=#00ff00]' + N(c) + '[/color] Cristal, [color=#ff00ff]' + N(d) + '[/color] Deuterio\n' } content += '<tr><td colspan="6"><br></td></tr><tr><td colspan="6"><br></td></tr><tr><td colspan="6"></td></tr><tr><td colspan="6"></td></tr>'; content += '<tr>'; content += '<td align="right"><b>TOTAL</b></td>'; content += '<td align="right">' + N(tb) + '</td>'; content += '<td align="right"><p style="color:#9999ff;">' + N(tm) + '</p></td>'; content += '<td align="right"><p style="color:#00ff00;">' + N(tc) + '</p></td>'; content += '<td align="right"><p style="color:#ff00ff;">' + N(td) + '</p></td>'; content += '<td align="right">' + N(parseInt(tm)+parseInt(tc)+parseInt(td)) + '</td>'; bbcodediario += '\nTOTAL [' + N(tb) + ' batallas] : [color=#9999ff]' + N(tm) + '[/color] Metal, [color=#00ff00]' + N(tc) + '[/color] Cristal, [color=#ff00ff]' + N(td) + '[/color] Deuterio\n' content += '</tr><tr>'; content += '<td align="right"><b>MEDIA-DIA</b></td>'; content += '<td align="right">' + N(Math.floor(tb/muestras)) + '</td>'; content += '<td align="right"><p style="color:#9999ff;">' + N(Math.floor(tm/muestras)) + '</p></td>'; content += '<td align="right"><p style="color:#00ff00;">' + N(Math.floor(tc/muestras)) + '</p></td>'; content += '<td align="right"><p style="color:#ff00ff;">' + N(Math.floor(td/muestras)) + '</p></td>'; content += '<td align="right">' + N(Math.floor((parseInt(tm)+parseInt(tc)+parseInt(td))/muestras)) + '</td>'; bbcodediario += '[size=9]MEDIA-DIA [' + N(Math.floor(tb/muestras)) + ' batallas] : [color=#9999ff]' + N(Math.floor(tm/muestras)) + '[/color] Metal, [color=#00ff00]' + N(Math.floor(tc/muestras)) + '[/color] Cristal, [color=#ff00ff]' + N(Math.floor(td/muestras)) + '[/color] Deuterio[/size]\n' content += '</tr><tr>'; content += '<td align="right"><b>MEDIA-BATALLA</b></td>'; content += '<td align="right">' + N(Math.floor(tb/tb)) + '</td>'; content += '<td align="right"><p style="color:#9999ff;">' + N(Math.floor(tm/tb)) + '</p></td>'; content += '<td align="right"><p style="color:#00ff00;">' + N(Math.floor(tc/tb)) + '</p></td>'; content += '<td align="right"><p style="color:#ff00ff;">' + N(Math.floor(td/tb)) + '</p></td>'; content += '<td align="right">' + N(Math.floor((parseInt(tm)+parseInt(tc)+parseInt(td))/tb)) + '</td>'; bbcodediario += '[size=9]MEDIA-BATALLA : [color=#9999ff]' + N(Math.floor(tm/tb)) + '[/color] Metal, [color=#00ff00]' + N(Math.floor(tc/tb)) + '[/color] Cristal, [color=#ff00ff]' + N(Math.floor(td/tb)) + '[/color] Deuterio[/size]\n' content += '</tr>' content += '<tr><td colspan="6"><br></td></tr><tr><td colspan="6"><br></td></tr><tr><td colspan="6"></td></tr><tr><td colspan="6"></td></tr>'; content += '<tr>'; content += '<td align="right"><b>RATIO-DEUTERIO</b></td>'; content += '<td align="right">Media</td>'; content += '<td align="right"><p style="color:#9999ff;">' + redondeo((tm/tb)/(td/tb),2) + '</p></td>'; content += '<td align="right"><p style="color:#00ff00;">' + redondeo((tc/tb)/(td/tb),2) + '</td>'; content += '<td align="right"><p style="color:#ff00ff;">1.00</p></td>'; content += '<td align="right">-</td>'; content += '</tr>'; content += '<tr>'; content += '<td align="right"><b>PROPORCION</b></td>'; content += '<td align="right">Media</td>'; content += '<td align="right"><p style="color:#9999ff;">' + redondeo(tm/(tm + tc + td)*100.0,2) + ' %</p></td>'; content += '<td align="right"><p style="color:#00ff00;">' + redondeo(tc/(tm + tc + td)*100.0,2) + ' %</p></td>'; content += '<td align="right"><p style="color:#ff00ff;">' + redondeo(td/(tm + tc + td)*100.0,2) + ' %</p></td>'; content += '<td align="right">100%</td>'; bbcodediario += '[size=9]PROPORCION : [color=#9999ff]' + redondeo(tm/(tm + tc + td)*100.0,2) + '%[/color] Metal, [color=#00ff00]' + redondeo(tc/(tm + tc + td)*100.0,2) + '%[/color] Cristal, [color=#ff00ff]' + redondeo(td/(tm + tc + td)*100.0,2) + '%[/color] Deuterio[/size]\n' content += '</tr>'; content += '</table><br><br>'; bbcodediario += '\n[url=http://userscripts.org/scripts/show/75647]Compactador automático de batallas trusreno [1.4][/url]\n' content += '<center><textarea name="bbcodediario" cols="90" rows="10" onclick="this.focus();this.select()" readonly="readonly">' + bbcodediario + '</textarea></center><br><br>' content += '<br><center><a id="btn_limpiar1" href="javascript:void(0)">[reset datos]</a></center><br><br><br>'; content += "</div>"; // seccion mensual content += '<div id="div_mensual" style="background-color:#0A122A"><br>'; content += '<table>'; content += '<tr><td width="120" align="right"><b>MES</b></td><td width="120" align="right"><b>BATALLAS</b></td><td width="120" align="right"><b>METAL</b></td><td width="120" align="right"><b>CRISTAL</b></td><td width="120" align="right"><b>DEUTERIO</b></td><td width="120" align="right"><b>TOTAL</b></td></tr>'; var mensual_metal = new HashTable(); mensual_metal.parse(options.get("mensual_metal")); var mensual_cristal = new HashTable(); mensual_cristal.parse(options.get("mensual_cristal")); var mensual_deu = new HashTable(); mensual_deu.parse(options.get("mensual_deu")); var mensual_batallas = new HashTable(); mensual_batallas.parse(options.get("mensual_batallas")); var keys = mensual_metal.keys(); var b, m, c, d; var tb, tm, tc, td; var muestras = 0; b = tb = m = tm = c = tc = d = td = 0; var bbcodemensual = "\n[size=14][u][b]Ganancias mensuales en batallas de " + options.get("playername") + "[/b][/u] [/size]\n\n";; for(var i = keys.length-1; i >= 0; i--) { b = soloN(mensual_batallas.getItem(keys[i])); m = soloN(mensual_metal.getItem(keys[i])); c = soloN(mensual_cristal.getItem(keys[i])); d = soloN(mensual_deu.getItem(keys[i])); muestras ++; tb += b; tm += m; tc += c; td += d; content += '<tr>'; content += '<td align="right"><b>' + keys[i] + '<b></td>'; content += '<td align="right">' + N(b) + '</td>'; content += '<td align="right"><p style="color:#9999ff;">' + N(m) + '</p></td>'; content += '<td align="right"><p style="color:#00ff00;">' + N(c) + '</p></td>'; content += '<td align="right"><p style="color:#ff00ff;">' + N(d) + '</p></td>'; content += '<td align="right">' + N(parseInt(m)+parseInt(c)+parseInt(d)) + '</td>'; content += '</tr>'; bbcodemensual += keys[i] + ' [' + N(b) + ' batallas] : [color=#9999ff]' + N(m) + '[/color] Metal, [color=#00ff00]' + N(c) + '[/color] Cristal, [color=#ff00ff]' + N(d) + '[/color] Deuterio\n' } content += '<tr><td colspan="6"><br></td></tr><tr><td colspan="6"><br></td></tr><tr><td colspan="6"></td></tr><tr><td colspan="6"></td></tr>'; content += '<tr>'; content += '<td align="right"><b>TOTAL</b></td>'; content += '<td align="right">' + N(tb) + '</td>'; content += '<td align="right"><p style="color:#9999ff;">' + N(tm) + '</p></td>'; content += '<td align="right"><p style="color:#00ff00;">' + N(tc) + '</p></td>'; content += '<td align="right"><p style="color:#ff00ff;">' + N(td) + '</p></td>'; content += '<td align="right">' + N(parseInt(tm)+parseInt(tc)+parseInt(td)) + '</td>'; bbcodemensual += '\nTOTAL [' + N(tb) + ' batallas] : [color=#9999ff]' + N(tm) + '[/color] Metal, [color=#00ff00]' + N(tc) + '[/color] Cristal, [color=#ff00ff]' + N(td) + '[/color] Deuterio\n' content += '</tr><tr>'; content += '<td align="right"><b>MEDIA-MES</b></td>'; content += '<td align="right">' + N(Math.floor(tb/muestras)) + '</td>'; content += '<td align="right"><p style="color:#9999ff;">' + N(Math.floor(tm/muestras)) + '</p></td>'; content += '<td align="right"><p style="color:#00ff00;">' + N(Math.floor(tc/muestras)) + '</p></td>'; content += '<td align="right"><p style="color:#ff00ff;">' + N(Math.floor(td/muestras)) + '</p></td>'; content += '<td align="right">' + N(Math.floor((parseInt(tm)+parseInt(tc)+parseInt(td))/muestras)) + '</td>'; bbcodemensual += '[size=9]MEDIA-MES [' + N(Math.floor(tb/muestras)) + ' batallas] : [color=#9999ff]' + N(Math.floor(tm/muestras)) + '[/color] Metal, [color=#00ff00]' + N(Math.floor(tc/muestras)) + '[/color] Cristal, [color=#ff00ff]' + N(Math.floor(td/muestras)) + '[/color] Deuterio[/size]\n' content += '</tr><tr>'; content += '<td align="right"></b>MEDIA-BATALLA</b></td>'; content += '<td align="right">' + N(Math.floor(tb/tb)) + '</td>'; content += '<td align="right"><p style="color:#9999ff;">' + N(Math.floor(tm/tb)) + '</p></td>'; content += '<td align="right"><p style="color:#00ff00;">' + N(Math.floor(tc/tb)) + '</p></td>'; content += '<td align="right"><p style="color:#ff00ff;">' + N(Math.floor(td/tb)) + '</p></td>'; content += '<td align="right">' + N(Math.floor((parseInt(tm)+parseInt(tc)+parseInt(td))/tb)) + '</td>'; bbcodemensual += '[size=9]MEDIA-BATALLA : [color=#9999ff]' + N(Math.floor(tm/tb)) + '[/color] Metal, [color=#00ff00]' + N(Math.floor(tc/tb)) + '[/color] Cristal, [color=#ff00ff]' + N(Math.floor(td/tb)) + '[/color] Deuterio[/size]\n' content += '</tr>'; content += '<tr><td colspan="6"><br></td></tr><tr><td colspan="6"><br></td></tr><tr><td colspan="6"></td></tr><tr><td colspan="6"></td></tr>'; content += '<tr>'; content += '<td align="right"><b>RATIO-DEUTERIO</b></td>'; content += '<td align="right">Media</td>'; content += '<td align="right"><p style="color:#9999ff;">' + redondeo((tm/tb)/(td/tb),2) + '</p></td>'; content += '<td align="right"><p style="color:#00ff00;">' + redondeo((tc/tb)/(td/tb),2) + '</td>'; content += '<td align="right"><p style="color:#ff00ff;">1.00</p></td>'; content += '<td align="right">-</td>'; content += '</tr>'; content += '<tr>'; content += '<td align="right"><b>PROPORCION</b></td>'; content += '<td align="right">Media</td>'; content += '<td align="right"><p style="color:#9999ff;">' + redondeo(tm/(tm + tc + td)*100.0,2) + ' %</p></td>'; content += '<td align="right"><p style="color:#00ff00;">' + redondeo(tc/(tm + tc + td)*100.0,2) + ' %</p></td>'; content += '<td align="right"><p style="color:#ff00ff;">' + redondeo(td/(tm + tc + td)*100.0,2) + ' %</p></td>'; content += '<td align="right">100%</td>'; bbcodemensual += '[size=9]PROPORCION : [color=#9999ff]' + redondeo(tm/(tm + tc + td)*100.0,2) + '%[/color] Metal, [color=#00ff00]' + redondeo(tc/(tm + tc + td)*100.0,2) + '%[/color] Cristal, [color=#ff00ff]' + redondeo(td/(tm + tc + td)*100.0,2) + '%[/color] Deuterio[/size]\n' content += '</tr>'; content += '</table><br><br><br>'; bbcodemensual += '\n[url=http://userscripts.org/scripts/show/75647]Compactador automático de batallas trusreno [1.4][/url]\n' content += '<center><textarea name="bbcodediario" cols="90" rows="10" onclick="this.focus();this.select()" readonly="readonly">' + bbcodemensual + '</textarea></center><br><br>' content += '<br><center><a id="btn_limpiar2" href="javascript:void(0)">[reset datos]</a></center><br><br>' content += "</div>"; // seccion consideraciones content += '<div id="div_consideraciones" style="background-color:#0A122A"><br><br>'; content += ' * Para contabilizar la batalla hay que abrir el mensaje de batalla. (no es necesario abrir el reporte detallado)'; content += '<br><br>'; content += ' * Se suma la rentabilidad final, teniendo en cuenta perdidas, robo de recursos y recoleccion completa de escombros.'; content += '<br><br>'; content += ' * No se tiene en cuenta gastos de deuterio ni perdidas/robos de escombros.'; content += '<br><br>'; content += ' * En SAC se suma la rentabilidad total final, sin dividir entre numero miembros (sin reparto).'; content += '<br><br><br>' content += '</div>'; document.getElementById('trusrenocomp_div_container').innerHTML = content; addEvent(document.getElementById("btn_limpiar1"), "click", function(){limpiar_datos(1)}); addEvent(document.getElementById("btn_limpiar2"), "click", function(){limpiar_datos(2)}); addEvent(document.getElementById("mostrar_sec1").parentNode, "click", function(){mostrarSeccion(1)}); addEvent(document.getElementById("mostrar_sec2").parentNode, "click", function(){mostrarSeccion(2)}); addEvent(document.getElementById("mostrar_sec3").parentNode, "click", function(){mostrarSeccion(3)}); addEvent(document.getElementById("mostrar_sec4").parentNode, "click", function(){mostrarSeccion(4)}); mostrarSeccion(1); } } } // ============================================================================================== function limpiar_datos(tipo) { if (confirm("¿Seguro que deseas borrar la informacion almacenada de las batallas?")) { switch(tipo) { case 1: options.set("diario_timestamp_dia", (new Date()).getTime()); options.set("diario_metal", ""); options.set("diario_cristal", ""); options.set("diario_deu", ""); options.set("diario_batallas", ""); options.set("almacenado_dia", ""); ogMenu.menuButton_click(); ogMenu.menuButton_click(); mostrarSeccion(1); break; case 2: options.set("mensual_timestamp_mes", (new Date()).getTime()); options.set("mensual_metal", ""); options.set("mensual_cristal", ""); options.set("mensual_deu", ""); options.set("mensual_batallas", ""); options.set("almacenado_mes", ""); ogMenu.menuButton_click(); ogMenu.menuButton_click(); mostrarSeccion(2); break; } } } function addEvent (el, evt, fxn) { if (el.addEventListener) el.addEventListener (evt, fxn, false); else if (el.attachEvent) el.attachEvent ("on" + evt, fxn); else el ['on' + evt] = fxn; } function mostrarSeccion(seccion) { switch(seccion) { case 1: document.getElementById("div_diario").style.display = ""; document.getElementById("div_mensual").style.display = "none"; document.getElementById("div_consideraciones").style.display = "none"; document.getElementById("mostrar_sec1").parentNode.style.backgroundColor = "#4C0B5F"; document.getElementById("mostrar_sec2").parentNode.style.backgroundColor = "#240B3B"; document.getElementById("mostrar_sec3").parentNode.style.backgroundColor = "#240B3B"; break; case 2: document.getElementById("div_diario").style.display = "none"; document.getElementById("div_mensual").style.display = ""; document.getElementById("div_consideraciones").style.display = "none"; document.getElementById("mostrar_sec1").parentNode.style.backgroundColor = "#240B3B"; document.getElementById("mostrar_sec2").parentNode.style.backgroundColor = "#4C0B5F"; document.getElementById("mostrar_sec3").parentNode.style.backgroundColor = "#240B3B"; break; case 3: document.getElementById("div_diario").style.display = "none"; document.getElementById("div_mensual").style.display = "none"; document.getElementById("div_consideraciones").style.display = ""; document.getElementById("mostrar_sec1").parentNode.style.backgroundColor = "#240B3B"; document.getElementById("mostrar_sec2").parentNode.style.backgroundColor = "#240B3B"; document.getElementById("mostrar_sec3").parentNode.style.backgroundColor = "#4C0B5F"; break; case 4: ogMenu.menuButton_click(); break; } } // ============================================================================================== // ============================================================================================== // ============================================================================================== // http://www.mojavelinux.com/articles/javascript_hashes.html function HashTable(obj) { this.length = 0; this.items = {}; for (var p in obj) { if (obj.hasOwnProperty(p)) { this.items[p] = obj[p]; this.length++; } } this.setItem = function(key, value) { if (this.hasItem(key)) { this.items[key] = parseInt(this.items[key]) + parseInt(value); } else { this.length++; this.items[key] = parseInt(value); } } this.getItem = function(key) { return this.hasItem(key) ? this.items[key] : undefined; } this.hasItem = function(key) { return this.items.hasOwnProperty(key); } this.removeItem = function(key) { if (this.hasItem(key)) { previous = this.items[key]; this.length--; delete this.items[key]; return previous; } else { return undefined; } } this.keys = function() { var keys = []; for (var k in this.items) { if (this.hasItem(k)) { keys.push(k); } } return keys; } this.values = function() { var values = []; for (var k in this.items) { if (this.hasItem(k)) { values.push(this.items[k]); } } return values; } this.each = function(fn) { for (var k in this.items) { if (this.hasItem(k)) { fn(k, this.items[k]); } } } this.clear = function() { this.items = {} this.length = 0; } this.getString = function() { var str = ""; for (var k in this.items) { if (this.hasItem(k)) { str += k + "=" + this.items[k] + "#"; } } return str; } this.purgue = function() { var nlength = 0; var nitems = {}; for (var k in this.items) { if (this.hasItem(k)) { if(parseInt((new Date()).getTime() - parseInt(this.items[k])) < 777600000) { // 9 dias nlength++; nitems[k] = parseInt(this.items[k]); } } } this.length = nlength; this.items = nitems; } this.parse = function(str) { this.items = {}; this.length = 0; var pairs = str.split("#"); for (var i = 0, len = pairs.length, keyVal; i < len; ++i) { keyVal = pairs[i].split("="); if (keyVal[0]) { this.items[keyVal[0]] = keyVal[1]; this.length++; } } } } // ============================================================================================== // ============================================================================================== // ============================================================================================== function SAC() { var lstNombres = new Array(); var lstFlotas = new Array(); this.length = function() { return lstNombres.length } this.getNombre = function(n) { return lstNombres[n]; } this.getFlotas = function(n) { var ret = null; if(isNaN(parseInt(n))) { for(var i = 0; i < lstNombres.length; i++) { if(lstNombres[i] == n) ret = lstFlotas[i]; } } else { ret = lstFlotas[n]; } return ret; } this.add = function (nombre, idFlota, unidades) { var insertado = false; for(var i = 0; i < lstNombres.length; i++) { if(lstNombres[i] == nombre) { insertado = true; if(arguments.length == 3) lstFlotas[i].add(idFlota, unidades); } } if(!insertado) { var pos = lstNombres.length; lstNombres[pos] = nombre; lstFlotas[pos] = new Flota(); if(arguments.length == 3) lstFlotas[pos].add(idFlota, unidades); } } this.addSupervivientes = function(s) { for(var i = 0; i < s.length(); i++) { var nombre = s.getNombre(i); for(var j = 0; j < lstNombres.length; j++){ if(lstNombres[j] == nombre) lstFlotas[j].addSupervivientes(s.getFlotas(i)); } } } this.ordenar = function() { for(var i = 0; i < lstNombres.length; i++) { lstFlotas[i].ordenar(); } } this.getCostePerdidas = function(id) { var ret = [0,0,0, 0]; // metal, cristal, deu, total if(id == -1) { for(var i = 0; i < lstNombres.length; i++) { var coste = lstFlotas[i].getCostePerdidas(); ret[0] += coste[0]; ret[1] += coste[1]; ret[2] += coste[2]; ret[3] += coste[3]; } } else { var coste = lstFlotas[id].getCostePerdidas(); ret[0] += coste[0]; ret[1] += coste[1]; ret[2] += coste[2]; ret[3] += coste[3]; } return ret; } } // ============================================================ // ============================================================ function Flota() { var idNombre = new Array(); var nombre = new Array(); var unidades = new Array(); var perdidas = new Array(); var datosFlota = [ ['P.Carga','Nave pequeña de Carga', 2000,2000,0, 'P.Carga'], ['Gr.Carga','Nave grande de Carga', 6000,6000,0, 'Gr.Carga'], ['Cazador L.','Cazador ligero', 3000,1000,0, 'C.Ligero'], ['Cazador P.','Cazador pesado', 6000,4000,0, 'C.Pesado'], ['Crucero','Crucero', 20000,7000,2000, 'Crucero'], ['Nave de batalla','Nave de batalla', 45000,15000,0, 'NB'], ['Acoraz.','Acorazado', 30000,40000,15000, 'Acorazado'], ['Bombardero','Bombardero', 50000,25000,15000, 'Bomb.'], ['Destructor','Destructor', 60000,50000,15000, 'Desct.'], ['Est.Muerte','Estrella de la muerte', 5000000,4000000,1000000, 'EDLM'], ['Colonizador','Colonizador', 10000,20000,10000, 'Colono'], ['Reciclador.','Reciclador', 10000,6000,2000, 'Reci.'], ['Sonda','Sonda de espionaje', 0,1000,0, 'Sonda'], ['Satélite S.','Satélite Solar', 0,2000,500, 'Satelite'], ['Misil', 'Lanzamisiles', 2000,0,0, 'Lanzas'], ['Láser Peq.','Láser pequeño', 1500,500,0, 'L.Peq.'], ['Láser Gr.','Lase grande', 6000,2000,0, 'L.Grande'], ['C.Gauss','Cañón Gauss', 20000,15000,2000, 'Gauss'], ['C.Iónico','Cañón Iónico', 2000,6000,0, 'Ionico'], ['C.Plasma','Cañón de Plasma', 50000,50000,30000, 'Plasma'], ['Cúpula Peq.','Cúpula pequeña', 10000,10000,0, 'CupulaP'], ['Cúpula Gr.','Cúpula grande', 50000,50000,0, 'CupulaG']]; this.length = function () { return idNombre.length; } this.getId = function(n) { return idNombre[n]; } this.getNombre = function(n, reducido) { reducido = reducido || false; var id = idNombre[n] var ret = id; for(var i = 0; i < datosFlota.length; i++) { if(id == datosFlota[i][0]) { if(reducido) { ret = datosFlota[i][5]; } else { ret = datosFlota[i][1]; } } } return ret; } this.getUnidades = function(n) { return unidades[n]; } this.getPerdidas = function(n) { return perdidas[n]; } this.add = function(id, u) { var insertado = false; for(var i = 0; i < idNombre.length; i++) { if(idNombre[i] == id) { insertado = true; unidades[i] += parseInt(u); perdidas[i] += parseInt(u); } } if(!insertado) { var pos = idNombre.length; idNombre[pos] = id; nombre[pos] = ''; unidades[pos] = parseInt(u); perdidas[pos] = parseInt(u); } } this.addSupervivientes = function(f) { for(var i = 0; i < f.length(); i++) { for(var j = 0; j < idNombre.length; j++) { if(idNombre[j] == f.getId(i)) { perdidas[j] -= parseInt(f.getUnidades(i)); } } } } this.ordenar = function() { var n_idNombre = new Array(); var n_nombre = new Array(); var n_unidades = new Array(); var n_perdidas = new Array(); var contador = 0; for(var i = 0; i < datosFlota.length; i++) { for(var j = 0; j<idNombre.length; j++) { if(idNombre[j] == datosFlota[i][0]) { n_idNombre[contador] = idNombre[j]; n_nombre[contador] = datosFlota[i][1]; n_unidades[contador] = unidades[j]; n_perdidas[contador] = perdidas[j]; contador++; } } } idNombre = n_idNombre; nombre = n_nombre; unidades = n_unidades; perdidas = n_perdidas; } this.getCostePerdidas = function() { var ret = [0,0,0, 0]; for(var i = 0; i < idNombre.length; i++) { for(var j = 0; j < datosFlota.length; j++) { if(idNombre[i] == datosFlota[j][0]) { ret[0] += (perdidas[i] * datosFlota[j][2]); ret[1] += (perdidas[i] * datosFlota[j][3]); ret[2] += (perdidas[i] * datosFlota[j][4]); ret[3] += ((perdidas[i] * datosFlota[j][2]) + (perdidas[i] * datosFlota[j][3]) + (perdidas[i] * datosFlota[j][4])); } } } return ret; } } // ============================================================ // ============================================================ var op = function () { this.set = function(key, value) { return localStorage.setItem ("trusreno_" + getServer() + "_" + key, value); } this.get = function(key){ var def = ""; return localStorage.getItem ("trusreno_" + getServer() + "_" + key) || def; } } var options = new op(); function getServer() { var server = location.href; server = server.replace("http://", "").replace("www.", ""); server = server.substring(0, server.indexOf(".")); return server; } function getElementsByClass(cls) { var itemsfound = new Array; var elements = document.getElementsByTagName('*'); for(var i=0;i<elements.length;i++){ if(elements[i].className == cls){ itemsfound.push(elements[i]); } } return itemsfound; } function getElementsByClass(searchClass,node,tag) { var classElements = new Array(); if (node == null) node = document; if (tag == null) tag = '*'; var els = node.getElementsByTagName(tag); var elsLen = els.length; for (var i = 0, j = 0; i < elsLen; i++) { var sep = els[i].className.split(" "); var content = false; for(var k = 0; k < sep.length; k++){ if(sep[k] == searchClass) content = true; } if (els[i].className == searchClass || content) { classElements[j] = els[i]; j++; } } return classElements; } function redondeo(numero, decimales) { if(isNaN(numero)) numero = "0"; var flotante = parseFloat(numero); var resultado = Math.round(flotante*Math.pow(10,decimales))/Math.pow(10,decimales); return resultado; } function soloN(value) { value = Number(value); if (isNaN(value)) value = 0; return value; } function numeroReducido(num) { num = num.toString(); num = num.replace(/\./g,'') num = parseInt(num); var numrec; var procesado = false; numrec = num/1000000000.0; if(Math.abs(numrec) > 1) { procesado = true; if(Math.abs(numrec)>=10) { num = Math.floor(numrec) + "B"; } else { num = redondeo(numrec, 2) + "B"; } } if(!procesado) { numrec = num/1000000.0; if(Math.abs(numrec) > 1) { procesado = true; if(Math.abs(numrec)>=10) { num = Math.floor(numrec) + "M"; } else { num = redondeo(numrec, 2) + "M"; } } } if(!procesado) { numrec = num/1000.0; if(Math.abs(numrec) > 1) { procesado = true; if(Math.abs(numrec)>=10) { num = Math.floor(numrec) + "K"; } else { num = redondeo(numrec, 2) + "K"; } } } return num; } function mostrarNumero(num) { var negativo = false; if(isNaN(num)) num = "0"; if(parseInt(num) < 0) { num = parseInt(num)*-1; negativo = true; } var nNmb = String(parseInt(num)); var sRes = ""; for (var j = 0, i = nNmb.length - 1; i >= 0; i--, j++) sRes = nNmb.charAt(i) + ((j > 0) && (j % 3 == 0)? ".": "") + sRes; if(negativo) sRes = '-' + sRes; return sRes; } function N(num) { var ret = new Array(); if(typeof num == 'object') { for(var i = 0; i < num.length; i++) { ret[i] = mostrarNumero(num[i]); } return ret; } else { return mostrarNumero(num); } } function codificar(patron, tipo, version, noCentrado) { noCentrado = noCentrado || false; var marcas = new Array(); var url_script = SCRIPT.url; var txt_firma = SCRIPT.name + ' [' + SCRIPT.version + ']'; if(!noCentrado) { patron = '{CENTER}' + patron + '{/CENTER}'; } var colores = [ [/{COLOR_R1}/gi, '#FFCC66'], [/{COLOR_R2}/gi, '#9E7625'], [/{COLOR_R3}/gi, '#FF0000'], //escombros [/{COLOR_R4}/gi, '#F0EC64'], //rec.robo [/{COLOR_T1}/gi, '#6699FF'], // titulo 1 ("defensores", "atacantes", "perdidas", y "rentabilidad" [/{COLOR_A1}/gi, '#00FF40'], [/{COLOR_A2}/gi, '#00DDDD'], [/{COLOR_D1}/gi, '#ED7010'], [/{COLOR_RB}/gi, '#007F22'], // resultado batalla [/{COLOR_RECI}/gi, '#00CC00'], // atacante reciclando [/{COLOR_SINRECI}/gi, '#FFFF00'], // atacante sin reciclar [/{COLOR_RECIDEF}/gi, '#FF6600'], // reciclando defensor [/{COLOR_D2}/gi, '#00DDDD']]; if(tipo == "HTML") { marcas = [ [/{B}/gi, '<b>'], [/{\/B}/gi, '</b>'], [/{I}/gi, '<i>'], [/{\/I}/gi, '</i>'], [/{NL}/gi, '<br>\n'], [/{CENTER}/gi, '<center>'], [/{\/CENTER}/gi, '</center>'], [/{SIZE_PEQ}/gi, '<font style="font-size:8pt;">'], [/{SIZE_MED}/gi, '<font style="font-size:14pt;">'], [/{SIZE_GRA}/gi, '<font style="font-size:18pt;">'], [/{\/SIZE}/gi, '</font>'], [/{\/COLOR}/gi, '</font>'] ]; patron = patron.replace(/{ENLACE_SCRIPT}/gi, '<a href="' + url_script + '">' + txt_firma + '</a>'); for(var i = 0; i < colores.length; i++) patron = patron.replace(colores[i][0],'<font color="' + colores[i][1] + '">'); } if(tipo == "OGame") { marcas = [ [/{B}/gi, '[B]'], [/{\/B}/gi, '[/B]'], [/{I}/gi, '[I]'], [/{\/I}/gi, '[/I]'], [/{NL}/gi, '\n'], [/{CENTER}/gi, '[ALIGN=CENTER]'], [/{\/CENTER}/gi, '[/ALIGN]'], [/{SIZE_PEQ}/gi, '[SIZE=10]'], [/{SIZE_MED}/gi, '[SIZE=14]'], [/{SIZE_GRA}/gi, '[SIZE=18]'], [/{\/SIZE}/gi, '[/SIZE]'], [/{\/COLOR}/gi, '[/COLOR]'] ]; patron = patron.replace(/{ENLACE_SCRIPT}/gi, '[url="' + url_script + '"]' + txt_firma + '[/URL]'); for(var i = 0; i < colores.length; i++) patron = patron.replace(colores[i][0],'[COLOR="' + colores[i][1] + '"]'); } if(tipo == "phpBB") { marcas = [ [/{B}/gi, '[b]'], [/{\/B}/gi, '[/b]'], [/{I}/gi, '[i]'], [/{\/I}/gi, '[/i]'], [/{NL}/gi, '\n'], [/{CENTER}/gi, '[ALIGN=CENTER]'], [/{\/CENTER}/gi, '[/ALIGN]'], [/{SIZE_PEQ}/gi, '[size=9]'], [/{SIZE_MED}/gi, '[size=14]'], [/{SIZE_GRA}/gi, '[size=18]'], [/{\/SIZE}/gi, '[/size]'], [/{\/COLOR}/gi, '[/color]'] ]; patron = patron.replace(/{ENLACE_SCRIPT}/gi, '[url=' + url_script + ']' + txt_firma + '[/URL]'); for(var i = 0; i < colores.length; i++) patron = patron.replace(colores[i][0],'[color=' + colores[i][1] + ']'); } if(tipo == "phpBB3") { marcas = [ [/{B}/gi, '[b]'], [/{\/B}/gi, '[/b]'], [/{I}/gi, '[i]'], [/{\/I}/gi, '[/i]'], [/{NL}/gi, '\n'], [/{CENTER}/gi, '[center]'], [/{\/CENTER}/gi, '[/center]'], [/{SIZE_PEQ}/gi, '[size=90]'], [/{SIZE_MED}/gi, '[size=140]'], [/{SIZE_GRA}/gi, '[size=180]'], [/{\/SIZE}/gi, '[/size]'], [/{\/COLOR}/gi, '[/color]'] ]; patron = patron.replace(/{ENLACE_SCRIPT}/gi, '[url=' + url_script + ']' + txt_firma + '[/URL]'); for(var i = 0; i < colores.length; i++) patron = patron.replace(colores[i][0],'[color=' + colores[i][1] + ']'); } for(var i = 0; i < marcas.length; i++) patron = patron.replace(marcas[i][0],marcas[i][1]); return patron; } // ============================================================ // ============================================================ function getLuna() { var salida = ""; var ret = new Array(); var cresult = document.getElementById('combat_result'); var str_luna = getElementsByClass('action',cresult)[1].innerHTML.split('<br>'); if(str_luna.length >= 5) { salida = str_luna[3].replace(/(^s*)|(s*$)/g,""); } if(str_luna.length >= 6) { if(str_luna[4].indexOf("lunar") != -1) { salida += '{NL}' + str_luna[4].replace(/(^s*)|(s*$)/g,""); } } return salida; } function getEscombros() { var ret = new Array(); var cresult = document.getElementById('combat_result'); var str_escombros = getElementsByClass('action',cresult)[1].innerHTML.split('<br>')[2]; ret[0] = parseInt(str_escombros.split('y')[0].replace(/\D*/g,'')); ret[1] = parseInt(str_escombros.split('y')[1].replace(/\D*/g,'')); ret[2] = parseInt(ret[0]) + parseInt(ret[1]); return ret; } function getCaptura() { var ret = [0, 0, 0, 0]; if(getMensajeConclusion().indexOf("atacante") != -1) { var cresult = document.getElementById('combat_result'); var str_captura = getElementsByClass('action',cresult)[0].innerHTML; var str_metal = str_captura.substring(str_captura.indexOf('captura'), str_captura.indexOf('Metal')); var str_cristal = str_captura.substring(str_captura.indexOf(','), str_captura.indexOf('Cristal')); var str_deu = str_captura.substring(str_captura.indexOf('y'), str_captura.indexOf('Deuterio')); if(str_metal.length == 0) str_metal = '0'; if(str_cristal.length == 0) str_cristal = '0'; if(str_deu.length == 0) str_deu = "0"; ret[0] = parseInt(str_metal.replace(/\D/g,'')); ret[1] = parseInt(str_cristal.replace(/\D/g,'')); ret[2] = parseInt(str_deu.replace(/\D/g,'')); ret[3] = parseInt(ret[0]) + parseInt(ret[1]) + parseInt(ret[2]); } return ret; } function getFecha() { var strFecha = getElementsByClass("start")[0].innerHTML; strFecha = strFecha.substring(strFecha.indexOf('(')+1, strFecha.indexOf(')')); var fecha = strFecha.split(" ")[0]; var hora = strFecha.split(" ")[1]; return fecha; } function getHora() { var strFecha = getElementsByClass("start")[0].innerHTML; strFecha = strFecha.substring(strFecha.indexOf('(')+1, strFecha.indexOf(')')); var fecha = strFecha.split(" ")[0]; var hora = strFecha.split(" ")[1]; return hora; } function getMensajeConclusion() { var ret = ''; var cresult = document.getElementById('combat_result'); var str = getElementsByClass('action',cresult)[0].innerHTML; if(str.indexOf('atacante') != -1) ret = '¡El atacante ha ganado la batalla!'; if(str.indexOf('defensor') != -1) ret = '¡El defensor ha ganado la batalla!'; if(str.indexOf('empate') != -1) ret = '¡La batalla ha terminado en empate!'; return ret; } function calcularRecicladores(escombros) { if(escombros > 0) return (parseInt(escombros)/20000)+1; else return 0; } function getRondas() { var rondas = new Array; var item = getElementsByClass("combat_round"); for(var i = 0; i < item.length; i++) { var insertado = false; for(var r = 0; r < rondas.length && !insertado; r++) { if(item[i].innerHTML == rondas[r].innerHTML) { insertado = true; } } if(!insertado) { rondas.push(item[i]); } } return (rondas); } function getCuadrosBBCode(patron, patronCC, titulo) { var html = ""; // cuadros de texto html += '<table cellspacing="0" cellpadding="0">'; html += '<b><font color=#FE9A2E>Titulo:</font></b><br>'; html += '<tr><td colspan="2"><input type="text" size="80" style="background-color:#1F273C;border: 2px solid #FFFFFF;color:#FFFFFF" onclick="this.focus();this.select()" readonly="readonly" value="' + titulo + '">'; html += '<br><br>'; html += '</td><td>' html += '<tr><td>' // foro ogame html += '<b><font color=#FE9A2E>Foro OGame:</font></b><br>'; html += '<textarea style="background-color:#1F273C;width:200px;height:100px;border: 2px solid #FFFFFF;color:#FFFFFF" onclick="this.focus();this.select()" readonly="readonly">'; html += codificar(patron, "OGame", SCRIPT.version); html += '</textarea><br><br>'; html += '</td><td>' // foro phpBB html += '<b><font color=#FE9A2E>Foro phpBB:</font></b><br>'; html += '<textarea style="background-color:#1F273C;width:200px;height:100px;border: 2px solid #FFFFFF;color:#FFFFFF" onclick="this.focus();this.select()" readonly="readonly">'; html += codificar(patron, "phpBB", SCRIPT.version); html += '</textarea><br><br>'; html += '</td></tr><tr><td>' // foro phpBB3 html += '<b><font color=#FE9A2E>Foro phpBB 3:</font></b><br>'; html += '<textarea style="background-color:#1F273C;width:200px;height:100px;border: 2px solid #FFFFFF;color:#FFFFFF" onclick="this.focus();this.select()" readonly="readonly">'; html += codificar(patron, "phpBB3", SCRIPT.version); html += '</textarea><br><br>'; html += '</td><td>' // html html += '<b><font color=#FE9A2E>HTML:</font></b><br>'; html += '<textarea style="background-color:#1F273C;width:200px;height:100px;border: 2px solid #FFFFFF;color:#FFFFFF" onclick="this.focus();this.select()" readonly="readonly">'; html += codificar(patron, "HTML", SCRIPT.version); html += '</textarea><br><br>'; html += '</td></tr>' // bbcode-cc html += '<tr><td colspan="2">' html += '<b><font color=#FE9A2E>Version reducida (para correo circular):</font></b><br>'; html += '<textarea style="background-color:#1F273C;width:400px;height:100px;border: 2px solid #FFFFFF;color:#FFFFFF" onclick="this.focus();this.select()" readonly="readonly">'; html += codificar(patronCC, "phpBB", SCRIPT.version, true); html += '</textarea><br><br>'; html += '</td></tr></table>'; return html; } // ============================================================ // ============================================================ function getColumnas(tabla){ return tabla.rows[0].cells.length; } function getFilas(tabla){ return tabla.rows.length; } function getContenido(tabla, fila, col) { var rowElem = tabla.rows[fila]; var tdValue = rowElem.cells[col].innerHTML; return tdValue; } // ============================================================ function getFlotas(numRonda, ataque) { var ret = new SAC(); var cround = getRondas(); var maxRondas = cround.length-1; if(ronda > maxRondas) return 0 // excede el num de rondas var idTipoBando = (ataque)? 'round_attacker':'round_defender'; // ronda de ataque o defensa var ronda = cround[numRonda]; var rondaBando = getElementsByClass(idTipoBando, ronda)[0]; var newBack = getElementsByClass("newBack", rondaBando); for(var i = 0; i < newBack.length ; i++ ) { var destroyed = getElementsByClass("destroyed", newBack[i])[0]; if(typeof destroyed != 'undefined') { var nombre = destroyed.innerHTML; nombre = nombre.replace('El defensor ', ''); nombre = nombre.replace('ha sido destruido.', ''); ret.add(nombre); } else { var nombre = getElementsByClass("name", newBack[i])[0].firstChild.textContent; var tabla = newBack[i].getElementsByTagName("TABLE")[0]; nombre = nombre.replace('Atacante ', ''); nombre = nombre.replace('Defensor ', ''); for(var j = 1; j < getColumnas(tabla); j++) { nave = getContenido(tabla, 0, j); cantidad = getContenido(tabla, 1, j).replace(/\./gi, ''); ret.add(nombre, nave, cantidad); } } } return ret; } // ============================================================ function compactar() { var comp = document.getElementById("compactado"); if (comp != null ) return 0; if( getElementsByClass('combat_round') == null) return 0; var patron = ''; var patronCC = ''; var compactador = document.createElement('div'); var rondas = getRondas(); var numRondas = rondas.length-1; // atacantes var lstAtaq = getFlotas(0, true); var lstAtaq_final = getFlotas(numRondas, true); lstAtaq.addSupervivientes(lstAtaq_final); // defensores var lstDef = getFlotas(0, false); var lstDef_final = getFlotas(numRondas, false); lstDef.addSupervivientes(lstDef_final); lstAtaq.ordenar(); lstDef.ordenar(); // ***************************************************************************************************************** // titulo batalla var tituloBatalla = ""; for(var i = 0; i < lstAtaq.length(); i++){ if (i != 0) patronMini += ' & '; tituloBatalla += lstAtaq.getNombre(i); } tituloBatalla += ' .vs. '; for(var i = 0; i < lstDef.length(); i++){ if (i != 0) patronMini += ' & '; tituloBatalla += lstDef.getNombre(i); } // ***************************************************************************************************************** // ***** GENERA PATRON ********************************************************************************************* var iddefensores = ""; patron = ''; if(numRondas < 1) numRondas= 1; if(numRondas == 1) { patron += '{SIZE_PEQ}La batalla duró 1 ronda el día ' + getFecha() + '{/SIZE}{NL}'; } else { patron += '{SIZE_PEQ}La batalla duró ' + numRondas + ' rondas el día ' + getFecha() + '{/SIZE}{NL}'; } patronCC += getFecha() + '{NL}'; // ATACANTES patron += '{COLOR_T1}{B}{SIZE_GRA}Atacantes (' + lstAtaq.length() + '):{/SIZE}{/B}{/COLOR}{NL}'; patronCC += 'Atacantes (' + lstAtaq.length() + '):{NL}'; for(var i = 0; i < lstAtaq.length(); i++){ patron += '{COLOR_A1}{B}{SIZE_MED}'+ lstAtaq.getNombre(i) + '{/SIZE}{/B}{/COLOR}{NL}'; patronCC += '{COLOR_A1}'+ lstAtaq.getNombre(i) + '{/COLOR}{NL}'; for(var j = 0; j < lstAtaq.getFlotas(i).length(); j++) { var nombre = lstAtaq.getFlotas(i).getNombre(j); var unidades = N(lstAtaq.getFlotas(i).getUnidades(j)); var perdidas = N(lstAtaq.getFlotas(i).getPerdidas(j)); patron += nombre + " {COLOR_A1}" + unidades + "{/COLOR} {COLOR_A2}perdió " + perdidas + "{/COLOR}{NL}"; patronCC += lstAtaq.getFlotas(i).getNombre(j, true) + " {B}" + unidades + "{/B} ( -" + perdidas + " ){NL}"; } patron += '{NL}'; if(lstAtaq.getCostePerdidas(i)[3] != 0) { var coste = N(lstAtaq.getCostePerdidas(i)); patron += 'Pérdidas: {COLOR_R1}' + coste[3] + '{/COLOR}{NL}'; patron += '( {COLOR_R2}' + coste[0] + '{/COLOR} Metal, {COLOR_R2}' + coste[1] + '{/COLOR} Cristal, {COLOR_R2}' + coste[2] + '{/COLOR} Deuterio ){NL}{NL}'; patronCC += 'Pérdidas: {COLOR_R1}' + numeroReducido(coste[3]) + '{/COLOR}'; patronCC += ' ({COLOR_R2}' + numeroReducido(coste[0]) + '{/COLOR} M, {COLOR_R2}' + numeroReducido(coste[1]) + '{/COLOR} C, {COLOR_R2}' + numeroReducido(coste[2]) + '{/COLOR} D ){NL}{NL}'; } } // DEFENSOR patron += '{COLOR_T1}{B}{SIZE_GRA}Defensores (' + lstDef.length() + '):{/SIZE}{/B}{/COLOR} {NL}'; patronCC += 'Defensores (' + lstDef.length() + '):{NL}'; for(var i = 0; i < lstDef.length(); i++){ patron += '{COLOR_D1}{B}{SIZE_MED}'+ lstDef.getNombre(i) + '{/SIZE}{/B}{/COLOR}{NL}'; patronCC += '{COLOR_D1}'+ lstDef.getNombre(i) + '{/COLOR}{NL}'; for(var j = 0; j < lstDef.getFlotas(i).length(); j++) { var nombre = lstDef.getFlotas(i).getNombre(j); var unidades = N(lstDef.getFlotas(i).getUnidades(j)); var perdidas = N(lstDef.getFlotas(i).getPerdidas(j)); patron += nombre + " {COLOR_D1}" + unidades + "{/COLOR} {COLOR_D2}perdió " + perdidas + "{/COLOR}{NL}"; patronCC += lstDef.getFlotas(i).getNombre(j, true) + " {B}" + unidades + "{/B} ( -" + perdidas + " ){NL}"; } if(lstDef.getFlotas(i).length() == 0) { patron += "{I}Sin defensas{/I}{NL}"; patronCC += "{I}Sin defensas{/I}{NL}"; } patron += '{NL}'; if(lstDef.getCostePerdidas(i)[3] != 0) { var coste = N(lstDef.getCostePerdidas(i)); patron += 'Pérdidas: {COLOR_R1}' + coste[3] + '{/COLOR}{NL}'; patron += '( {COLOR_R2}' + coste[0] + '{/COLOR} Metal, {COLOR_R2}' + coste[1] + '{/COLOR} Cristal, {COLOR_R2}' + coste[2] + '{/COLOR} Deuterio ){NL}{NL}'; patronCC += 'Pérdidas: {COLOR_R1}' + numeroReducido(coste[3]) + '{/COLOR}'; patronCC += '({COLOR_R2}' + numeroReducido(coste[0]) + '{/COLOR} M, {COLOR_R2}' + numeroReducido(coste[1]) + '{/COLOR} C, {COLOR_R2}' + numeroReducido(coste[2]) + '{/COLOR} D ){NL}{NL}'; } } patron += '{SIZE_MED}{COLOR_RB}{B}' + getMensajeConclusion() + '{/B}{/COLOR}{/SIZE}{NL}{NL}'; patronCC += '{COLOR_RB}{B}' + getMensajeConclusion() + '{/B}{/COLOR}{NL}{NL}'; // RESUMEN (robos, escombros, perdidas, rentabilidad...) var perdidasAtaq = lstAtaq.getCostePerdidas(-1); var perdidasDef = lstDef.getCostePerdidas(-1); var N_perdidasAtaq = N(perdidasAtaq); var N_perdidasDef = N(perdidasDef); var perdidasTotales = new Array(); perdidasTotales[0] = (perdidasAtaq[0] + perdidasDef[0]); perdidasTotales[1] = (perdidasAtaq[1] + perdidasDef[1]); perdidasTotales[2] = (perdidasAtaq[2] + perdidasDef[2]); perdidasTotales[3] = (perdidasAtaq[0] + perdidasDef[0]) + (perdidasAtaq[1] + perdidasDef[1]) + (perdidasAtaq[2] + perdidasDef[2]); var N_perdidasTotales = N(perdidasTotales); var escombros = getEscombros(); var N_escombros = N(escombros); var captura = getCaptura(); var N_captura = N(captura); // RENTABILIDAD Y PORCENTAJE: ATACANTE CON RECICLAJE var renta_ataq_conReci = new Array(); renta_ataq_conReci[0] = (-1*perdidasAtaq[0])+captura[0]+escombros[0]; renta_ataq_conReci[1] = (-1*perdidasAtaq[1])+captura[1]+escombros[1]; renta_ataq_conReci[2] = (-1*perdidasAtaq[2])+captura[2]; renta_ataq_conReci[3] = (-1*perdidasAtaq[3])+captura[3]+escombros[2]; var N_renta_ataq_conReci = N(renta_ataq_conReci); var p_renta_ataq_conReci = new Array(); p_renta_ataq_conReci[3] = Math.floor((renta_ataq_conReci[3]/perdidasAtaq[3])*100); p_renta_ataq_conReci[0] = Math.floor((renta_ataq_conReci[0]/perdidasAtaq[0])*100); p_renta_ataq_conReci[1] = Math.floor((renta_ataq_conReci[1]/perdidasAtaq[1])*100); p_renta_ataq_conReci[2] = Math.floor((renta_ataq_conReci[2]/perdidasAtaq[2])*100); var p_renta_ataq_conReci = N(p_renta_ataq_conReci); // RENTABILIDAD Y PORCENTAJE: ATACANTE SIN RECICLAJE var renta_ataq_sinReci = new Array(); renta_ataq_sinReci[0] = (-1*perdidasAtaq[0])+captura[0]; renta_ataq_sinReci[1] = (-1*perdidasAtaq[1])+captura[1]; renta_ataq_sinReci[2] = (-1*perdidasAtaq[2])+captura[2]; renta_ataq_sinReci[3] = (-1*perdidasAtaq[3])+captura[3]; var N_renta_ataq_sinReci = N(renta_ataq_sinReci); var p_renta_ataq_sinReci = new Array(); p_renta_ataq_sinReci[3] = Math.floor((renta_ataq_sinReci[3]/perdidasAtaq[3])*100); p_renta_ataq_sinReci[0] = Math.floor((renta_ataq_sinReci[0]/perdidasAtaq[0])*100); p_renta_ataq_sinReci[1] = Math.floor((renta_ataq_sinReci[1]/perdidasAtaq[1])*100); p_renta_ataq_sinReci[2] = Math.floor((renta_ataq_sinReci[2]/perdidasAtaq[2])*100); p_renta_ataq_sinReci = N(p_renta_ataq_sinReci); // RENTABILIDAD Y PORCENTAJE: DEFENSOR CON RECICLAJE var renta_def_conReci = new Array(); renta_def_conReci[0] = (-1*perdidasDef[0])+escombros[0]; renta_def_conReci[1] = (-1*perdidasDef[1])+escombros[1]; renta_def_conReci[2] = (-1*perdidasDef[2]); renta_def_conReci[3] = (-1*perdidasDef[3])+escombros[2]; var N_renta_def_conReci = N(renta_def_conReci); var p_renta_def_conReci = new Array(); p_renta_def_conReci[3] = Math.floor((renta_def_conReci[3]/perdidasDef[3])*100); p_renta_def_conReci[0] = Math.floor((renta_def_conReci[0]/perdidasDef[0])*100); p_renta_def_conReci[1] = Math.floor((renta_def_conReci[1]/perdidasDef[1])*100); p_renta_def_conReci[2] = Math.floor((renta_def_conReci[2]/perdidasDef[2])*100); p_renta_def_conReci = N(p_renta_def_conReci); patron += '{B}Robo:{/B} {COLOR_R4}{SIZE_MED}' + N_captura[0] + '{/SIZE}{/COLOR} Metal, {COLOR_R4}{SIZE_MED}' + N_captura[1] + '{/SIZE}{/COLOR} Cristal y {COLOR_R4}{SIZE_MED}' + N_captura[2] + '{/SIZE}{/COLOR} Deuterio{NL}'; patron += '{B}Escombros:{/B} {COLOR_R3}{SIZE_GRA}{B}' + N_escombros[0] + '{/B}{/SIZE}{/COLOR} Metal y {COLOR_R3}{SIZE_GRA}{B}' + N_escombros[1] + '{/B}{/SIZE}{/COLOR} Cristal ( {COLOR_R3}' + N(calcularRecicladores(escombros[2])) + "{/COLOR} recicladores ){NL}"; patron += '{NL}{NL}'; patron += '{COLOR_T1}PÉRDIDAS{/COLOR} Atacantes: {COLOR_R1}' + N_perdidasAtaq[3] + '{/COLOR}{NL}'; patron += '( {COLOR_R2}' + N_perdidasAtaq[0] + "{/COLOR} metal , {COLOR_R2}" + N_perdidasAtaq[1] + "{/COLOR} cristal, {COLOR_R2}" + N_perdidasAtaq[2] + "{/COLOR} deuterio ){NL}{NL}"; patron += '{COLOR_T1}PÉRDIDAS{/COLOR} Defensores: {COLOR_R1}' + N_perdidasDef[3] + '{/COLOR}{NL}'; patron += '( {COLOR_R2}' + N_perdidasDef[0] + "{/COLOR} metal , {COLOR_R2}" + N_perdidasDef[1] + "{/COLOR} cristal, {COLOR_R2}" + N_perdidasDef[2] + "{/COLOR} deuterio ){NL}{NL}"; patron += '{NL}'; patronCC += '{B}Robo:{/B} {COLOR_R4}' + numeroReducido(N_captura[0]) + '{/COLOR} M, {COLOR_R4}' + numeroReducido(N_captura[1]) + '{/COLOR} C y {COLOR_R4}' + numeroReducido(N_captura[2]) + '{/COLOR} D{NL}'; patronCC += '{B}Escombros:{/B} {COLOR_R3}{B}' + numeroReducido(N_escombros[0]) + '{/B}{/COLOR} M y {COLOR_R3}{B}' + numeroReducido(N_escombros[1]) + '{/B}{/COLOR} C ( {COLOR_R3}' + N(calcularRecicladores(escombros[2])) + "{/COLOR} recis ){NL}"; patronCC += '{NL}{NL}'; if(escombros[2] > 0) { patron += '{COLOR_T1}{SIZE_MED}{B}RENTABILIDAD{/B}{/SIZE}{/COLOR} Atacantes {COLOR_RECI}reciclando{/COLOR}: {COLOR_R1}{B}' + N_renta_ataq_conReci[3] + '{/B}{/COLOR} [' + p_renta_ataq_conReci[3] + '%]{NL}'; patron += 'Metal: {COLOR_R2}' + N_renta_ataq_conReci[0] + '{/COLOR} {SIZE_PEQ}[' + p_renta_ataq_conReci[0] + '%]{/SIZE}{NL}'; patron += 'Cristal: {COLOR_R2}' + N_renta_ataq_conReci[1] + '{/COLOR} {SIZE_PEQ}[' + p_renta_ataq_conReci[1] + '%]{/SIZE}{NL}'; patron += 'Deuterio: {COLOR_R2}' + N_renta_ataq_conReci[2] + '{/COLOR} {SIZE_PEQ}[' + p_renta_ataq_conReci[2] + '%]{/SIZE}{NL}'; patronCC += '{COLOR_T1}{SIZE_MED}{B}RENTA{/B}{/SIZE}{/COLOR} Atacantes reciclando: {COLOR_R1}{B}' + numeroReducido(N_renta_ataq_conReci[3]) + '{/B}{/COLOR} [' + p_renta_ataq_conReci[3] + '%]{NL}'; patronCC += 'M: {COLOR_R2}' + numeroReducido(N_renta_ataq_conReci[0]) + '{/COLOR}, '; patronCC += 'C: {COLOR_R2}' + numeroReducido(N_renta_ataq_conReci[1]) + '{/COLOR}, '; patronCC += 'D: {COLOR_R2}' + numeroReducido(N_renta_ataq_conReci[2]) + '{/COLOR}{NL}'; patron += '{COLOR_T1}{SIZE_MED}{B}RENTABILIDAD{/B}{/SIZE}{/COLOR} Atacantes {COLOR_SINRECI}sin reciclar{/COLOR}: {COLOR_R1}{B}' + N_renta_ataq_sinReci[3] + '{/B}{/COLOR} [' + p_renta_ataq_sinReci[3] + '%]{NL}'; patron += 'Metal: {COLOR_R2}' + N_renta_ataq_sinReci[0] + '{/COLOR} {SIZE_PEQ}[' + p_renta_ataq_sinReci[0] + '%]{/SIZE}{NL}'; patron += 'Cristal: {COLOR_R2}' + N_renta_ataq_sinReci[1] + '{/COLOR} {SIZE_PEQ}[' + p_renta_ataq_sinReci[1] + '%]{/SIZE}{NL}'; patron += 'Deuterio: {COLOR_R2}' + N_renta_ataq_sinReci[2] + '{/COLOR} {SIZE_PEQ}[' + p_renta_ataq_sinReci[2] + '%]{/SIZE}{NL}'; patronCC += '{COLOR_T1}{SIZE_MED}{B}RENTA{/B}{/SIZE}{/COLOR} Atacantes sin reciclar: {COLOR_R1}{B}' + numeroReducido(N_renta_ataq_sinReci[3]) + '{/B}{/COLOR} [' + p_renta_ataq_sinReci[3] + '%]{NL}'; patronCC += 'M: {COLOR_R2}' + numeroReducido(N_renta_ataq_sinReci[0]) + '{/COLOR}, '; patronCC += 'C: {COLOR_R2}' + numeroReducido(N_renta_ataq_sinReci[1]) + '{/COLOR}, '; patronCC += 'D: {COLOR_R2}' + numeroReducido(N_renta_ataq_sinReci[2]) + '{/COLOR}{NL}'; patron += '{COLOR_T1}{SIZE_MED}{B}RENTABILIDAD{/B}{/SIZE}{/COLOR} Defensores {COLOR_RECIDEF}reciclando{/COLOR}: {COLOR_R1}{B}' + N_renta_def_conReci[3] + '{/B}{/COLOR} [' + p_renta_def_conReci[3] + '%]{NL}'; patron += 'Metal: {COLOR_R2}' + N_renta_def_conReci[0] + '{/COLOR} {SIZE_PEQ}[' + p_renta_def_conReci[0] + '%]{/SIZE}{NL}'; patron += 'Cristal: {COLOR_R2}' + N_renta_def_conReci[1] + '{/COLOR} {SIZE_PEQ}[' + p_renta_def_conReci[1] + '%]{/SIZE}{NL}'; patron += 'Deuterio: {COLOR_R2}' + N_renta_def_conReci[2] + '{/COLOR} {SIZE_PEQ}[' + p_renta_def_conReci[2] + '%]{/SIZE}{NL}'; patronCC += '{COLOR_T1}{SIZE_MED}{B}RENTA{/B}{/SIZE}{/COLOR} Defensores reciclando: {COLOR_R1}{B}' + numeroReducido(N_renta_def_conReci[3]) + '{/B}{/COLOR} [' + p_renta_def_conReci[3] + '%]{NL}'; patronCC += 'M: {COLOR_R2}' + numeroReducido(N_renta_def_conReci[0]) + '{/COLOR}, '; patronCC += 'C: {COLOR_R2}' + numeroReducido(N_renta_def_conReci[1]) + '{/COLOR}, '; patronCC += 'D: {COLOR_R2}' + numeroReducido(N_renta_def_conReci[2]) + '{/COLOR}{NL}'; } else { patron += '{COLOR_T1}{B}RENTABILIDAD{/B}{/COLOR} Atacantes {COLOR_R1}' + N_renta_ataq_sinReci[3] + '{/COLOR} [' + p_renta_ataq_sinReci[3] + '%]{NL}'; patron += 'Metal: {COLOR_R2}' + N_renta_ataq_sinReci[0] + '{/COLOR} {SIZE_PEQ}[' + p_renta_ataq_sinReci[0] + '%]{/SIZE}{NL}'; patron += 'Cristal: {COLOR_R2}' + N_renta_ataq_sinReci[1] + '{/COLOR} {SIZE_PEQ}[' + p_renta_ataq_sinReci[1] + '%]{/SIZE}{NL}'; patron += 'Deuterio: {COLOR_R2}' + N_renta_ataq_sinReci[2] + '{/COLOR} {SIZE_PEQ}[' + p_renta_ataq_sinReci[2] + '%]{/SIZE}{NL}'; patronCC += '{COLOR_T1}{B}RENTA{/B}{/COLOR} Atacantes {COLOR_R1}' + numeroReducido(N_renta_ataq_sinReci[3]) + '{/COLOR} [' + p_renta_ataq_sinReci[3] + '%]{NL}'; patronCC += 'M: {COLOR_R2}' + numeroReducido(N_renta_ataq_sinReci[0]) + '{/COLOR}, '; patronCC += 'C: {COLOR_R2}' + numeroReducido(N_renta_ataq_sinReci[1]) + '{/COLOR}, '; patronCC += 'D: {COLOR_R2}' + numeroReducido(N_renta_ataq_sinReci[2]) + '{/COLOR}{NL}'; } // si rentabilidad = infinita, lo cambia por MAX patron = patron.replace(/infinity\%/gi, "Máx."); patron = patron.replace(/NaN\%/gi, "Máx."); patronCC = patronCC.replace(/infinity\%/gi, "Máx."); patronCC = patronCC.replace(/NaN\%/gi, "Máx."); if(getLuna().length > 4) { patron += '{NL}' + getLuna() + '{NL}'; patronCC += '{NL}' + getLuna() + '{NL}'; } patron += '{NL}{SIZE_MED} Perdidas {COLOR_T1}TOTALES{/COLOR}: {B}{COLOR_R3}' + N(perdidasTotales[3]) + '{/COLOR}{/B}{/SIZE}{NL}'; patron += '{NL}{SIZE_PEQ}{ENLACE_SCRIPT}{/SIZE}{NL}'; patronCC += '{NL}Perdidas {COLOR_T1}TOTALES{/COLOR}: {B}{COLOR_R3}' + numeroReducido(N(perdidasTotales[3])) + '{/COLOR}{/B}{NL}'; patronCC += '{NL}{SIZE_PEQ}{ENLACE_SCRIPT}{/SIZE}{NL}'; // ***************************************************************************************************************** // ***** PATRON MINI *********************************************************************************************** var patronMini = "{COLOR_T1}{B}Ataque-Granjeo{/B}{/COLOR} [ {COLOR_A1}"; patronMini += tituloBatalla; patronMini += '{/COLOR} ]{NL}{COLOR_T1}{B}Renta atacante: {/B}{/COLOR} {COLOR_R4}' + N_renta_ataq_conReci[0] + '{/COLOR} Metal, {COLOR_R4}' + N_renta_ataq_conReci[1] + '{/COLOR} Cristal, {COLOR_R4}' + N_renta_ataq_conReci[2] + '{/COLOR} Deuterio {NL}'; // *** perdidas totales para titulo var procesado = false; var pt = perdidasTotales[3]; if(!procesado && pt > 1000000000) { pt = redondeo(pt/1000000000, 2) + " B"; procesado = true; } if(!procesado && pt > 1000000) { pt = redondeo(pt/1000000, 2) + " M"; procesado = true; } if(!procesado && pt > 1000) { pt = redondeo(pt/1000, 2) + " K"; procesado = true; } tituloBatalla += "{PT " + pt + " }"; // ***************************************************************************************************************** // ***** MOSTRAR *************************************************************************************************** var html = ''; html += '<div style="font-size:14px;font-family:Verdana,sans-serif;"><br>'; html += '<br><center><table border="0" width="90%" style="">'; html += '<tr><td colspan="2" height="450" bgcolor="#1F273C" style="border: 2px solid #FFFFFF;"><br><br>' html += '<div id="codHTML">' + codificar(patron, 'HTML', SCRIPT.version) + '<br></div>'; html += '</td></tr>'; html += '<tr><td><br>' + btndonate + '</td></tr>'; html += '<tr><td><br><center>'; html += getCuadrosBBCode(patron, patronCC, tituloBatalla); html += '</center></td></tr></table></center><br>' // patron mini //cabecera html += '<div><table border="0" width="100%" style="">'; html += '<tr><td colspan="2" height="30" bgcolor="#000000" style="border: 2px solid #000000;">'; html += '<p align="center"><font style="font-size:12pt;" color="#FF6600">'; html += '<b>COMPACTADO MINIMO</b>'; html += '</font></p></td></tr></table></div>'; html += '<br><center><table border="0" width="90%" style="">'; html += '<tr><td colspan="2" height="100" bgcolor="#1F273C" style="border: 2px solid #FFFFFF;"><br><br>' html += '<div id="codHTML">' + codificar(patronMini, 'HTML', SCRIPT.version) + '</div>'; html += '</td></tr>'; html += '<tr><td><br><center>'; html += getCuadrosBBCode(patronMini, patronMini, tituloBatalla); html += '</center></td></tr></table></center><br>' html += '</div>'; compactador.innerHTML = html; master = getElementsByClass("combatreport")[0]; if (!(typeof(master) === "undefined")) { compactador.innerHTML = compactador.innerHTML + master.innerHTML; master.innerHTML = compactador.innerHTML; master.id = "compactado"; } // historico ganancias batallas var renta = renta_ataq_conReci; var playername = options.get("playername"); for(var i = 0; i < lstDef.length(); i++){ if(lstDef.getNombre(i).trim() == playername) { renta = renta_def_conReci; } } var tests = Array.filter( document.getElementsByClassName('infohead'), function(elem){ var divganancia = document.getElementById("resumengananciabatalla"); var htmlganancia = '<table><tr><th scope="row">+GananciasBatallas:</th><td> <font color="#5858FA">' + N(renta[0]) + '</font> metal, <font color="#00ff00">' + N(renta[1]) + '</font> cristal, <font color="#ff00ff">' + N(renta[2]) + '</font> deuterio</td></tr></table>'; if(divganancia == null) { elem.innerHTML += '<div id="resumengananciabatalla">' + htmlganancia + '</div>'; } else { divganancia.innerHTML = htmlganancia; } }); var id = getFecha() + "*" + getHora() + "*" + lstDef.getNombre(0); var almacenado_dia = new HashTable(); var almacenado_mes = new HashTable(); almacenado_dia.parse(options.get("almacenado_dia")); almacenado_mes.parse(options.get("almacenado_mes")); if ( (((new Date()).getTime()) - soloN(options.get("purgue_timestamp_dia"))) > 345600000) { options.set("purgue_timestamp_dia", (new Date()).getTime()); almacenado_dia.purgue(); options.set("almacenado_dia", almacenado_dia.getString()); } if ( (((new Date()).getTime()) - soloN(options.get("purgue_timestamp_mes"))) > 345600000) { options.set("purgue_timestamp_mes", (new Date()).getTime()); almacenado_mes.purgue(); options.set("almacenado_mes", almacenado_mes.getString()); } // historico diario if(typeof(almacenado_dia.getItem(id)) === "undefined") { almacenado_dia.setItem(id, (new Date()).getTime()); options.set("almacenado_dia", almacenado_dia.getString()); var diario_timestamp = soloN(options.get("diario_timestamp")); if(diario_timestamp <= 0) options.set("diario_timestamp", (new Date()).getTime()); var diario_metal = new HashTable(); diario_metal.parse(options.get("diario_metal")); var diario_cristal = new HashTable(); diario_cristal.parse(options.get("diario_cristal")); var diario_deu = new HashTable(); diario_deu.parse(options.get("diario_deu")); var diario_batallas = new HashTable(); diario_batallas.parse(options.get("diario_batallas")); var id_dia = (new Date()).getFullYear() + "-" + ((new Date()).getMonth()+1) + "-" + (new Date()).getDate(); diario_metal.setItem(id_dia, renta[0]); diario_cristal.setItem(id_dia, renta[1]); diario_deu.setItem(id_dia, renta[2]); diario_batallas.setItem(id_dia, 1); options.set("diario_metal", diario_metal.getString()); options.set("diario_cristal", diario_cristal.getString()); options.set("diario_deu", diario_deu.getString()); options.set("diario_batallas", diario_batallas.getString()); } // historico mensual if(typeof(almacenado_mes.getItem(id)) === "undefined") { almacenado_mes.setItem(id, (new Date()).getTime()); options.set("almacenado_mes", almacenado_mes.getString()); var mensual_timestamp = soloN(options.get("mensual_timestamp")); if(mensual_timestamp <= 0) options.set("mensual_timestamp", (new Date()).getTime()); var mensual_metal = new HashTable(); mensual_metal.parse(options.get("mensual_metal")); var mensual_cristal = new HashTable(); mensual_cristal.parse(options.get("mensual_cristal")); var mensual_deu = new HashTable(); mensual_deu.parse(options.get("mensual_deu")); var mensual_batallas = new HashTable(); mensual_batallas.parse(options.get("mensual_batallas")); var id_mes = (new Date()).getFullYear() + "-" + ((new Date()).getMonth()+1); mensual_metal.setItem(id_mes, renta[0]); mensual_cristal.setItem(id_mes, renta[1]); mensual_deu.setItem(id_mes, renta[2]); mensual_batallas.setItem(id_mes, 1); options.set("mensual_metal", mensual_metal.getString()); options.set("mensual_cristal", mensual_cristal.getString()); options.set("mensual_deu", mensual_deu.getString()); options.set("mensual_batallas", mensual_batallas.getString()); } var resphttprequest = document.getElementById("resphttprequest"); if(resphttprequest != null) resphttprequest.innerHTML = ""; } // ------------ if (location.href.indexOf('/game/index.php?page=combatreport') != -1 ) { compactar(); } else { var ogMenu = new MenuLib(); ogMenu.menuButton_create(); function comprobar () { var cr = document.getElementsByClassName("round_attacker"); var shortreport = document.getElementById("shortreport"); if(shortreport != null) { var elements = shortreport.getElementsByTagName("a"); for(var i = 0; i < elements.length; i++) { if(elements[i].href.indexOf("game/index.php?page=combatreport&nID=") != -1) { var url = elements[i].href; var resphttprequest = document.getElementById("resphttprequest"); if(cr != null & cr.length <= 0 && resphttprequest == null) { gethttprequest(url); } if(resphttprequest != null && resphttprequest.tag != url) { resphttprequest.parentNode.removeChild(resphttprequest); gethttprequest(url); } } } } if (cr != null && cr.length > 0){ compactar(); } } } setInterval(comprobar, 500); var playername = document.getElementsByName("ogame-player-name")[0].content.trim(); options.set("playername", playername); }) ();