[SCRIPT/RECRUTAMENTO] Recrutamento em massa, salvaguardando fazenda e recursos

  • Iniciador do tópico DeletedUser17651
  • Data de início
Estado
Não está aberto para novas respostas.

DeletedUser17651

Guest
Boas,

A pedido de várias pessoas, coloco aqui uma nova versão do dito cujo script, compatível com a v8.9.1 do jogo.


A versão anteriormente autorizada está neste tópico: http://forum.tribos.com.pt/showthread.php?80431&p=651098#post651098 (vejam as instruções atentamente)



A nova versão é a seguinte:
Código:
javascript:var config_tropas=[0,0,6000,0,50,3200,0,0,350,5];var salvar_fazenda_full=400;var salvar_fazenda_notfull=100;var gastar_pct_recursos=75;var max_horas_por_edif=36;function RecMass(){if(!(document["URL"]["match"]("screen=train")&&document["URL"]["match"]("mode=mass"))){var x=window["confirm"]("O script só funciona na página de\x0A\x0A Recrutar » Recrutmento em massa \x0A\x0A Redireccionar agora?");if(x){window["location"]="game.php?\x26screen=train\x26mode=mass";} ;} ;aldeias=document["getElementById"]("mass_train_table")["rows"];if(config_tropas["length"]!=aldeias[0]["cells"]["length"]-3){msg="A configuração ["+config_tropas.toString()+"] está errada.\x0A\x0A";if(aldeias[0]["cells"]["length"]==11){msg+="Este é um mundo SEM ARQUEIROS e, por isso, deve usar 8 unidades.\x0A\x0A";msg+="Exemplo: var config_tropas = [0,0,6500,5,3000,0,400,5];\x0A";msg+="Exemplo: var config_tropas = [6000,6000,0,500,0,1250,5,0];";} else {msg+="Este é um mundo COM ARQUEIROS e, por isso, deve usar 10 unidades.\x0A\x0A";msg+="Exemplo: var config_tropas = [0,0,6500,0,5,3000,0,0,400,5];\x0A";msg+="Exemplo: var config_tropas = [5000,5000,0,3500,500,0,0,1000,5,0];";} ;die(msg);} ;var QUARTEL=0;var ESTABULO=1;var OFICINA=2;var tempos_recrutamento=obterUnitInfo();var max_seg_por_edif=max_horas_por_edif*60*60;custos=[];custos["push"]([50,30,10,1,QUARTEL,obterBuildTime(tempos_recrutamento,"spear",QUARTEL)]);custos["push"]([30,30,70,1,QUARTEL,obterBuildTime(tempos_recrutamento,"sword",QUARTEL)]);custos["push"]([60,30,40,1,QUARTEL,obterBuildTime(tempos_recrutamento,"axe",QUARTEL)]);if(config_tropas["length"]==10){custos["push"]([100,30,60,1,QUARTEL,obterBuildTime(tempos_recrutamento,"archer",QUARTEL)]);} ;custos["push"]([50,50,20,2,ESTABULO,obterBuildTime(tempos_recrutamento,"spy",ESTABULO)]);custos["push"]([125,100,250,4,ESTABULO,obterBuildTime(tempos_recrutamento,"light",ESTABULO)]);if(config_tropas["length"]==10){custos["push"]([250,100,150,5,ESTABULO,obterBuildTime(tempos_recrutamento,"marcher",ESTABULO)]);} ;custos["push"]([200,150,600,6,ESTABULO,obterBuildTime(tempos_recrutamento,"heavy",ESTABULO)]);custos["push"]([300,200,200,5,OFICINA,obterBuildTime(tempos_recrutamento,"ram",OFICINA)]);custos["push"]([320,400,100,8,OFICINA,obterBuildTime(tempos_recrutamento,"catapult",OFICINA)]);for(var r=1;r<aldeias["length"];r++){recrutar=[];total_custos=[0,0,0,0];total_rec_tempos=[0,0,0];recursos=obterRecursos(aldeias[r],gastar_pct_recursos);config_tropas_aldeia=obterConfigTropas(config_tropas);em_producao=obterEmProducao(aldeias[r]);em_producao_tempos=obterEmProducaoTempos(em_producao,custos);produzidas=obterProduzidas(aldeias[r]);for(var ix=0;ix<config_tropas_aldeia["length"];ix++){if(aldeias[r]["cells"][3+ix]["getElementsByTagName"]("input")["length"]>0){rec_cfg=Math["max"](config_tropas_aldeia[ix]-(em_producao[ix]+produzidas[ix]),0);rec_tempo=Math["max"](Math["floor"]((max_seg_por_edif-em_producao_tempos[custos[ix][4]])/custos[ix][5]),0);recrutar[ix]=Math["min"](rec_cfg,rec_tempo);for(var j=0;j<4;j++){total_custos[j]+=custos[ix][j]*recrutar[ix];} ;total_rec_tempos[custos[ix][4]]+=custos[ix][5]*recrutar[ix];} ;} ;factor_cfg=calcularFactor(recursos,total_custos);factor_tempo=calcularFactorTempo(total_rec_tempos,em_producao_tempos,max_seg_por_edif);for(var ix=0;ix<config_tropas_aldeia["length"];ix++){ibox=aldeias[r]["cells"][3+ix]["getElementsByTagName"]("input")[0];if(ibox&&!ibox["disabled"]){factor=Math["min"](factor_cfg,factor_tempo[custos[ix][4]],1);tropas=recrutar[ix]*factor;if(tropas>0){ibox["value"]=parseInt(tropas,10);} else {ibox["value"]="";} ;} ;} ;} ;window["scrollTo"](0,document["body"]["scrollHeight"]);return true;function obterRecursos(aldeia,gastar_pct_recursos){var res=aldeia["cells"][1]["textContent"]["split"]("\x0A");var farm=aldeia["cells"][2]["innerHTML"]["split"]("/");var v=[0,0,0,0];var gastar_pct_recursos=Math["min"](100,Math["max"](0,gastar_pct_recursos));for(var ix=1;ix<res["length"]-1;ix++){v[ix-1]=Math["floor"](parseInt(res[ix]["replace"](".",""),10)*gastar_pct_recursos/100);} ;if(farm[1]>=24000){s=salvar_fazenda_full;} else {s=salvar_fazenda_notfull;} ;v[3]=farm[1]-s-farm[0];return v;} ;function obterEmProducao(aldeia){var v=[0,0,0,0,0,0,0,0,0,0];for(var ix=3;ix<aldeia["cells"]["length"];ix++){try{v[ix-3]=parseInt(aldeia["cells"][ix]["childNodes"][1]["childNodes"][1]["firstChild"]["title"],10);} catch(e){} ;if(isNaN(v[ix-3])){v[ix-3]=0;} ;} ;return v;} ;function obterEmProducaoTempos(em_producao,custos){var v=[0,0,0];for(var ix=0;ix<em_producao["length"];ix++){v[custos[ix][4]]+=em_producao[ix]*custos[ix][5];} ;return v;} ;function obterProduzidas(aldeia){var v=[0,0,0,0,0,0,0,0,0,0];for(var ix=3;ix<aldeia["cells"]["length"];ix++){try{v[ix-3]=parseInt(aldeia["cells"][ix]["getElementsByTagName"]("span")[0]["innerHTML"],10);} catch(e){} ;if(isNaN(v[ix-3])){v[ix-3]=0;} ;} ;return v;} ;function calcularFactor(recursos,total_custos){var v=[0,0,0,0];if(recursos["length"]==total_custos["length"]){for(var t=0;t<recursos["length"];t++){if(total_custos[t]==0){v[t]=0;} else {v[t]=Math["min"](recursos[t]*1.0/total_custos[t],1.0);} ;} ;} ;var f=9999;for(var t=0;t<v["length"];t++){if(v[t]<f&&v[t]>0){f=v[t];} ;} ;return f;} ;function calcularFactorTempo(total_rec_tempos,em_producao_tempos,max_seg_por_edif){var v=[0,0,0];for(var ix=0;ix<total_rec_tempos["length"];ix++){if(total_rec_tempos[ix]+em_producao_tempos[ix]>0){v[ix]=Math["max"](max_seg_por_edif/(total_rec_tempos[ix]+em_producao_tempos[ix]),0);} ;} ;return v;} ;function obterBuildTime(tempos_recrutamento,unit,edificio){var nv=[-25,-20,-15];for(var ix=0;ix<tempos_recrutamento["length"];ix++){if(tempos_recrutamento[ix][0]==unit){return (2/3*tempos_recrutamento[ix][1]*Math["pow"](1.06,nv[edificio]));} ;} ;return null;} ;function obterUnitInfo(){var cookie_name=location["host"]["replace"](/\./g,"")+"RecMass";var cookie_value=readCookie(cookie_name);var arr=[];if(cookie_value==null){var req= new XMLHttpRequest();var requrl="http://"+window["location"]["hostname"]+"/interface.php?func=get_unit_info";req["open"]("GET",requrl,0);req["send"](null);if(req["status"]!=200){die("Erro na leitura de configurações\x0A\x0A"+requrl);} ;var bt=req["responseXML"]["getElementsByTagName"]("build_time");for(var ix=0;ix<bt["length"];ix++){arr[arr["length"]]=[bt[ix]["parentNode"]["nodeName"],parseFloat(bt[ix]["firstChild"]["data"])];} ;cookie_value=arr.toString();var date= new Date();date["setTime"](date["getTime"]()+(2000*24*60*60*1000));var expires="; expires="+date["toGMTString"]();document["cookie"]=cookie_name+"="+escape(cookie_value)+expires;} ;cookie_value=unescape(cookie_value)["split"](",");arr=[];for(var ix=0;ix<cookie_value["length"];ix=ix+2){arr[arr["length"]]=[cookie_value[ix],parseFloat(cookie_value[ix+1])];} ;return arr;} ;function readCookie(name){var nameEQ=name+"=";var ca=document["cookie"]["split"](";");for(var ix=0;ix<ca["length"];ix++){var c=ca[ix];while(c["charAt"](0)==" "){c=c["substring"](1,c["length"]);} ;if(c["indexOf"](nameEQ)==0){return unescape(c["substring"](nameEQ["length"],c["length"]));} ;} ;return null;} ;function obterConfigTropas(cfg){if(recursos[3]>24000){for(var ix=0;i<config_tropas["length"];ix++){cfg[ix]=Math["floor"](config_tropas[ix]*1.117);} ;} else {cfg=config_tropas;} ;return cfg;} ;function die(msg){if(msg!==undefined){alert(msg);} ;end();} ;} ;RecMass();void(0);


Qualquer questão é só apitarem.

Beijos e abraços,
wanderer
 

DeletedUser21072

Guest
Boa noite salvo erro continua na mesma com erro ao recrutar mas peço para mais algumas pessoas testarem
 

DeletedUser

Guest
Testei, e este já recruta.

(o anterior não recrutava nada)
 
Última edição por um moderador:

DeletedUser21072

Guest
A questão não é recrutar mas sim cumprir os limites de recruta

Já agora se puderes testa o outro que postei no outro tópico
 

DeletedUser

Guest
Mas este de salvaguarda de fazenda e recursos nem recrutava sequer. Mas vou testar o outro entao.

EDIT: Cumpre limites.
 
Última edição por um moderador:
Estado
Não está aberto para novas respostas.
Topo