Tikabum

Contador de Tropas

Jan 28th, 2021 (edited)
157
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. javascript:
  2.  
  3. if (!Contar_Tropas) var Contar_Tropas = {};
  4.  
  5. Contar_Tropas.Nome_Unidades = "Lanceiro,Espadachim,Bárbaro,Arqueiro,Explorador,Cavalaria_Leve,Arqueiro_a_cavalo,Cavalaria_Pesada,Aríete,Catapulta,Paladino,Nobres".split(",");
  6.  
  7. var tabela;
  8. var TropasTotais = [];
  9. var Linha_Padrao = "0";
  10. Contar_Tropas.link = "/game.php?&village=" + game_data.village.id + "&type=complete&mode=units&group=0&page=-1&screen=overview_villages";
  11. if (game_data.player.sitter != 0)
  12.     Contar_Tropas.link = "/game.php?t=" + game_data.player.id + "&village=" + game_data.village.id + "&type=complete&mode=units&group=0&page=-1&screen=overview_villages";
  13. Contar_Tropas.Grupos_Baixados = false;
  14. Contar_Tropas.Unidade = "spear,sword,axe,archer,spy,light,marcher,heavy,ram,catapult,knight,snob".split(",");
  15.  
  16. var Janela = "<h2 align='center'>Contador de Tropas</h2><table width='100%'><tr><th>Grupo: <select id='listaGrup' onchange=\"Contar_Tropas.link = this.value; Baixar_Dados();\"><option value='" + Contar_Tropas.link + "'>Todos</select>";
  17. Janela += "<tr><td><table width='100%'><tr><th colspan='4'>Tipo: <select onchange=\"Alterar(this.value);\"><option value='0'>Disponível<option value='0p2p3'>Todas as Suas Próprias<option value='1'>Nas Aldeias<option value='1m0'>Apoios<option value='2'>Fora<option value='3'>Em Trânsito</select><tbody id='Tropas_Disponiveis'></table><tr><th><b id='Numero_Aldeias'></b><a href='#' style='float: right;' onclick=\"Exportacao();\">Exportar</a></table>";
  18. Dialog.show("Caixa de Mensagem", Janela);
  19. Baixar_Dados();
  20. void 0;
  21.  
  22. function Exportacao() {
  23.     if (!$("#Tropas_Disponiveis").html().match("textarea"))
  24.         $("#Tropas_Disponiveis").html(Contar_Tropas.Exportar);
  25.     else
  26.         Alterar(Linha_Padrao);
  27. }
  28.  
  29. function Baixar_Dados() {
  30.     $("#Numero_Aldeias").html(" Por Favor, Espere...");
  31.     $(mobile ? "#loading" : "#loading_content").show();
  32.     var r;
  33.     r = new XMLHttpRequest();
  34.     r.open("GET", Contar_Tropas.link, true);
  35.  
  36.     function processResponse() {
  37.         if (r.readyState == 4 && r.status == 200) {
  38.             requestedBody = document.createElement("body");
  39.             requestedBody.innerHTML = r.responseText;
  40.             tabela = $(requestedBody).find("#units_table").get()[0];
  41.             if (!tabela) {
  42.                 $("#Tropas_Disponiveis").html("Não há aldeias no grupo. <br />Escolha outro grupo.");
  43.                 $("#Numero_Aldeias").html(" Vazio");
  44.                 return false;
  45.             }
  46.             var Grupos = $(requestedBody).find(".vis_item").get()[0].getElementsByTagName(mobile ? "option" : "a");
  47.             if (tabela.rows.length > 4000) alert("Atenção\nSomente as primeiras 1000 aldeias");
  48.             if (!Contar_Tropas.Grupos_Baixados) {
  49.                 for (i = 0; i < Grupos.length; i++) {
  50.                     Nome = Grupos[i].textContent;
  51.                     if (mobile && Grupos[i].textContent == "wszystkie") continue;
  52.                     $("#listaGrup").append($("<option>", {
  53.                         value: Grupos[i].getAttribute(mobile ? "value" : "href") + "&page=-1",
  54.                         text: mobile ? Nome : Nome.slice(1, Nome.length - 1)
  55.                     }));
  56.                 }
  57.                 Contar_Tropas.Grupos_Baixados = true;
  58.                 if (!tabela.rows[0].innerHTML.match("archer")) {
  59.                     Contar_Tropas.Unidade.splice(Contar_Tropas.Unidade.indexOf("archer"), 1);
  60.                     Contar_Tropas.Unidade.splice(Contar_Tropas.Unidade.indexOf("marcher"), 1);
  61.                 }
  62.                 if (!tabela.rows[0].innerHTML.match("knight"))
  63.                     Contar_Tropas.Unidade.splice(Contar_Tropas.Unidade.indexOf("knight"), 1);
  64.             }
  65.             Somar();
  66.             Alterar(Linha_Padrao);
  67.         };
  68.     }
  69.     r.onreadystatechange = processResponse;
  70.     r.send(null);
  71. }
  72.  
  73. function Alterar(Texto) {
  74.     Linha_Padrao = Texto;
  75.     Qual = String(Texto).match(/\d+/g);
  76.     O_Que_Fazer = String(Texto).match(/[a-z]/g);
  77.     var Nova_Soma = [];
  78.     for (j = 0; j < Contar_Tropas.Unidade.length; j++)
  79.         Nova_Soma[j] = 0;
  80.     for (i = 0; i < Qual.length; i++)
  81.         if (i == 0 || O_Que_Fazer[i - 1] == "p")
  82.             Nova_Soma = Adicionar(Nova_Soma, TropasTotais[Qual[i]]);
  83.         else
  84.             Nova_Soma = Subtrair(Nova_Soma, TropasTotais[Qual[i]]);
  85.     wypisz(Nova_Soma);
  86. }
  87.  
  88. function Somar() {
  89.     for (i = 0; i < 5; i++) {
  90.         TropasTotais[i] = [];
  91.         for (j = 0; j < Contar_Tropas.Unidade.length; j++)
  92.             TropasTotais[i][j] = 0;
  93.     }
  94.     for (var i = 1; i < tabela.rows.length; i++) {
  95.         m = (tabela.rows[1].cells.length == tabela.rows[i].cells.length) ? 2 : 1;
  96.         for (var j = m; j < Contar_Tropas.Unidade.length + m; j++) {
  97.             TropasTotais[(i - 1) % 5][j - m] += parseInt(tabela.rows[i].cells[j].textContent);
  98.         }
  99.     }
  100. }
  101.  
  102. function Subtrair(Soma1, Soma2) {
  103.     var Contagem = [];
  104.     for (k = 0; k < Contar_Tropas.Unidade.length; k++)
  105.         Contagem[k] = Soma1[k] - Soma2[k];
  106.     return Contagem;
  107. }
  108.  
  109. function Adicionar(Soma1, Soma2) {
  110.     var Contagem = [];
  111.     for (k = 0; k < Contar_Tropas.Unidade.length; k++)
  112.         Contagem[k] = Soma1[k] + Soma2[k];
  113.     return Contagem;
  114. }
  115.  
  116. function Desenhar_Espaços(Quanto) {
  117.     var Texto = String(Quanto);
  118.     var Contagem = "";
  119.     for (j = 0; j < (10 - Texto.length); j++)
  120.         Contagem += "\u2007";
  121.     return Contagem;
  122. }
  123.  
  124. function wypisz(Soma_Total_de_Tropas) {
  125.     elem = "<tr>";
  126.     Contar_Tropas.Exportar = "<textarea rows='7' cols='25' onclick=\"this.select();\">";
  127.     for (i = 0; i < Contar_Tropas.Unidade.length; i++) {
  128.         Contar_Tropas.Exportar += "[unit]" + Contar_Tropas.Unidade[i] + "[/unit]" + Soma_Total_de_Tropas[i] + (i % 2 == 0 ? Desenhar_Espaços(Soma_Total_de_Tropas[i]) : "\n");
  129.         elem += (i % 2 == 0 ? "<tr>" : "") + "<th width='20'><a href='https://help.tribalwars.com.br/wiki/" + Contar_Tropas.Nome_Unidades[i] + "' target='_blank'><img src='" + image_base + "unit/unit_" + Contar_Tropas.Unidade[i] + ".png'></a><td bgcolor='#fff5da'>" + Soma_Total_de_Tropas[i];
  130.     }
  131.     Contar_Tropas.Exportar += "</textarea>";
  132.     $("#Tropas_Disponiveis").html(elem);
  133.     $(mobile ? "#loading" : "#loading_content").hide();
  134.     $("#Numero_Aldeias").html("Total de " + ((tabela.rows.length - 1) / 5) + " aldeias");
  135. }
Add Comment
Please, Sign In to add comment