[Script Legal] Calculo de recursos

Lan Fan

Campesino
Como solucion al problema con el bug en solicitar recursos, ya publicado en la sección de bugs: https://forum.guerrastribales.es/index.php?threads/solicitar-recursos.55438/

  • Explicación de para qué sirve Calcula el porcentaje de recursos a mandar
  • Como Hacerlo funcionar? Mercado>Solicitud, hacer click en el script y luego selecionar los cuadrados para pedir recursos a cada pueblos.
  • Nombre de la entrada: ---
  • URL de la imagen: ---
  • URL de destino:
    Código:
    javascript:
    var array = [];
    var check_wood = document.getElementsByClassName('res_checkbox')[0].checked;
    var check_stone = document.getElementsByClassName('res_checkbox')[1].checked;
    var check_iron = document.getElementsByClassName('res_checkbox')[2].checked;
    function updateCheck(){
      check_wood = document.getElementsByClassName('res_checkbox')[0].checked;
      check_stone = document.getElementsByClassName('res_checkbox')[1].checked;
      check_iron = document.getElementsByClassName('res_checkbox')[2].checked;
    }
    function getRecurso(element,name){
      var aux = element.getElementsByClassName(name)[1].innerHTML;
      return aux.replace('<span class="grey">.</span>',"");
    }
    function calcular(wood,stone,iron){
      var apor = [];
      var total = 0;
      if(check_wood){
        total += parseInt(wood);
      }
      if(check_stone){
        total += parseInt(stone);
      }
      if(check_iron){
        total += parseInt(iron);
      }
      if(check_wood){
        var pwood = (wood/total)*100;
        apor[0] = pwood;
      }
      if(check_stone){
        var pstone = (stone/total)*100;
        apor[1] = pstone;
      }
      if(check_iron){
        var piron = (iron/total)*100;
        apor[2] = piron;
      }
      return apor;
    }
    function calcularRecurso(por,total){
      por = Math.floor(por);
      total = parseInt(total);
      return (por*total)/100;
    }
    function calcularPorcentaje(porcentaje, item,index){
     var mercaderes = item.getElementsByClassName('traders')[0].innerHTML.split("/")[0];
     mercaderes = parseInt(mercaderes)*1000;
     if(check_wood){
       var wood = calcularRecurso(porcentaje[0],mercaderes);
       if(parseInt(array[index][0])<wood){
         item.getElementsByClassName('hide_toggle')[0].value = parseInt(array[index][0]);
       }else{
         item.getElementsByClassName('hide_toggle')[0].value = wood;
       }
     }
     if(check_stone){
       var stone = calcularRecurso(porcentaje[1],mercaderes);
       if(parseInt(array[index][1])<stone){
         item.getElementsByClassName('hide_toggle')[1].value = parseInt(array[index][1]);
       }else{
         item.getElementsByClassName('hide_toggle')[1].value = stone;
       }
     }
     if(check_iron){
       var iron = calcularRecurso(porcentaje[2],mercaderes);
       if(parseInt(array[index][2])<iron){
         item.getElementsByClassName('hide_toggle')[2].value = parseInt(array[index][2]);
       }else{
         item.getElementsByClassName('hide_toggle')[2].value = iron;
       }
    
     }
    
    }
    
      $("#village_list tr").each(function(index,item){
        if(index!=0){
          var wood = getRecurso(item,"wood");
          var stone = getRecurso(item,"stone");
          var iron = getRecurso(item,"iron");
          array[index] = new Array(3);
          array[index][0] = wood;
          array[index][1] = stone;
          array[index][2] = iron;
        }else{
          array[0] = "";
        }
      });
    $("#village_list tr").on("click",function(item){
      var clicked = item.currentTarget;
      $("#village_list tr").each(function(index,item){
        if(clicked==item){
          setTimeout(function(){
          updateCheck();
          var porcentajes = calcular(array[index][0],array[index][1],array[index][2]);
          calcularPorcentaje(porcentajes, item,index);
        }, 100);
        }
      });
    });