$${
if(@xlyz);
log("");
log("&e&l»Bulldozer»&4&lFinalizada.");
//Lembrete
if(item_inv);
log("&b&l»Lembrete»&fNao se esqueça de limpar o bau onde foram deixados os itens no começo! Quando ligar novamente talves precise dele.");
endif;
//Mostra niveis upados
if(%@#ups_skill% = 1);
log("&b&l*Você upou &9&n&l%@#ups_skill%&b&l nível!");
elseif(%@#ups_skill% > 1);
log("&b&l*Você upou &9&n&l%@#ups_skill%&b&l níveis!");
endif;
//Mostra money ganho
if(%@#discos% > 0);
#total = %@#discos% * 95;
log("&2&l*Você vendeu &a&n&l%@#discos%&2&l discos, e ganhou &b&n&l%#total%&2&l Coins!");
endif;
ACHIEVEMENTGET(xlyz: Obrigado por usar!,277);
#cod_off = 1;
&time = "&b&l*Hora: &f&l%TIME% &0/ &b&l*Data: &f&l%DATE% &f(Ano-Mês-Dia)";
//Guarda niveis upados
if(%@#ups_skill% = 1);
&skill_up = "&b&l*Você upou &9&n&l%@#ups_skill%&b&l nível na ultima vez que a macro trabalhou!";
elseif(%@#ups_skill% > 1);
&skill_up = "&b&l*Você upou &9&n&l%@#ups_skill%&b&l níveis na ultima vez que a macro trabalhou!";
else;
&skill_up = "";
endif;
//Guarda money ganho
if(%@#discos% > 0);
#total = %@#discos% * 95;
&money = "&2&l*Você vendeu &a&n&l%@#discos%&2&l discos, e ganhou &b&n&l%#total%&2&l Coins!";
else;
&money = "";
endif;
//Arrumar: verificar logs se estao padrao
log("");
unset(@xlyz);
stop();
else;
log("");
set(@xlyz);
log("&e&l»Bulldozer»&a&lAtivada");
//Inicializar/Reiniciar variáveis
unset(nao_pronto); //Personagem nao pronto para macro iniciar
unset(configuracoes_novas); //Configurar novamente
unset(repos_pas); //Reposicao/troca das pas
unset(pas_red); //Pas gastas
set(reconhecer); //reconhecimento das homes
set(baus_disponiveis); //Baus da trap vazio
set(lixo_inv); //Se tem lixo no inventario
unset(bau_red_full);
unset(sem_pa);
unset(item_inv);
#slot = 4;
#red = 0;
@#ups_skill = 0;
@#discos = 0;
#total = 0;
&money = "";
@#tell = 0;
#pas_sobraram = 0;
unset(@logando);
playsound(random.levelup);
//Pergunta se usuário quer relatório
log("");
log("&e&l<Bulldozer>&b&oPressione &b&l1 &b&opara exibir o relatório da última vez que a macro executou, ou &b&l2 &b&opara prosseguir...");
do;
if(KEY_1);
gui(CHAT);
log("");
log("&b_&9_&b_&9_&b_&9_&b_&9_&b_&9_&b_&9_&b_&9_&b_&9_&b_&9_&b_&9_&b_&9_&b_&9_&b_&9_&b_&9_&b_&9_&b_&9_&b_&9_&b_&9_&b_&9_&b_&9_&b_&9_&b_&9_&b_");
log("&e&l<Bulldozer>&2&lRelatório:");
//Mostra hora e motivo ultimo desligamento
if(%#cod_off% = 0);
log("&b&l*Motivo ultimo desligamento:&7Desconhecido");
elseif(%#cod_off% = 1);
log("&b&l*Motivo ultimo desligamento:&fVocê desligou!");
elseif(%#cod_off% = 2);
log("&b&l*Motivo ultimo desligamento:&f'/home discos' incorreta!");
elseif(%#cod_off% = 3);
log("&b&l*Motivo ultimo desligamento:&fFoi impossível esvaziar p inventário para iniciar!");
elseif(%#cod_off% = 4);
log("&b&l*Motivo ultimo desligamento:&fNao haviam pás suficientes nos baus para iniciar!");
elseif(%#cod_off% = 5);
log("&b&l*Motivo ultimo desligamento:&fSem material suficiente nos baus para iniciar!");
elseif(%#cod_off% = 6);
log("&b&l*Motivo ultimo desligamento:&fFoi impossível remover as pás red da hotbar por falta de espaço nos baus!");
elseif(%#cod_off% = 7);
log("&b&l*Motivo ultimo desligamento:&fFoi impossível substituir pás gastas, pela falta de pás boas!");
elseif(%#cod_off% = 8);
log("&b&l*Motivo ultimo desligamento:&fAcabou o material de escavaçao dos baus!");
endif;
log("%&time%");
log("%&skill_up%");
log("%&money%");
log("&b_&9_&b_&9_&b_&9_&b_&9_&b_&9_&b_&9_&b_&9_&b_&9_&b_&9_&b_&9_&b_&9_&b_&9_&b_&9_&b_&9_&b_&9_&b_&9_&b_&9_&b_&9_&b_&9_&b_&9_&b_&9_&b_&9_&b_");
log("");
wait(100ms);
break;
elseif(KEY_2);
log("");
wait(100ms);
break;
endif;
loop;
//Verifica se tem configuracoes anteriores
if((%#bau% != 0) && (%#quantidade% != 0) && (%#bloco% != 0));
//Pergunta se quer manter configuracoes anteriores
log("&e&l<Bulldozer>&f&lVoce deseja usar as ultimas configuraçoes?");
log("&f==============================================");
log("&e&l<Bulldozer>&6Pressione &e&l1&6-&2Sim! Usar as configuraçoes abaixo:");
if(vender_discos);
&vende = "&6Sim";
else;
&vende = "&6Nao";
endif;
log("&2Bau:&6%#bau%&e\&2Delay:&6%#quebrar%&e\&2Quantidade blocos antes de abrir inv:&6%#quantidade%&e\&2Id bloco:&6%#bloco%&e\&2bau pá:&6%#bau_pa%&e\&2Vender Discos:%&vende%");
log(%&log_lixo%);
log("&f______________________________________________");
log("&e&l<Bulldozer>&6Pressione &e&l2&6-&cNao! Quero reconfigurar");
log("");
//Verifica o que o usuario pressionou
do;
if(KEY_1);
log("&e&l<Bulldozer>&2&lVoce selecionou &f'Usar as ultimas configuraçoes!'");
log("");
if((#%bau_pa% = 0) || (%#bau_material% = 0) || (%#bau_red% = 0));
#bau_pa = 1;
#bau_material = 1;
#bau_red = 1;
endif;
break;
elseif(KEY_2);
log("&e&l<Bulldozer>&c&lVoce selecionou &f'Reconfigurar'");
log("");
wait(100ms);
set(configuracoes_novas);
#bau_pa = 1;
#bau_material = 1;
#bau_red = 1;
//Questionário das configuracoes
log("&e&l<Bulldozer>&fIniciando questionário...");
//Pergunta qual tipo de lixo quer jogar
&lixo = "^0$|^0";
&log_lixo = "&2Lixo sem itens.";
log("");
log("&e&l<Bulldozer>&f&lEscolha quais itens deseja jogar fora:");
log("&f==============================================");
log("&6&l[Pressione 1]&cGlowstone&f\&cOvo&f\&cMaça&f\&cCacau&f\&cCogumelos&f\&cBolo");
log("&6&l[Pressione 2]&cOs itens acima + Pólvora&f\&cSlime&f\&cRelogio&f\&cBalde");
log("&6&l[Pressione 3]&cTodos os itens acima + Osso&f\&cTeia&f\&cNetherrack");
log("&6&l[Pressione 4]&cJogar fora todos os itens dropados!");
log("&6&l[Pressione 5]&cNao jogar nada fora!");
log("");
//Verifica o que o usuario pressionou
do;
if(KEY_1);
log("&e&l<Bulldozer>&2&lVoce pressionou:");
log("&6&l[1]&cLixo:&6Glowstone&f\&6Ovo&f\&6Maça&f\&6Cacau&f\&6Cogumelos&f\&6Bolo");
log("");
&lixo = "^348$|^348$|^344$|^260$|^351$|^39$|^40$|^354";
&log_lixo = "&2Lixo:&6Glowstone&f\&6Ovo&f\&6Maça&f\&6Cacau&f\&6Cogumelos&f\&6Bolo";
break;
elseif(KEY_2);
log("&e&l<Bulldozer>&2&lVoce pressionou:");
log("&6&l[2]&cLixo:&6Glowstone&f\&6Ovo&f\&6Maça&f\&6Cacau&f\&6Cogumelos&f\&6Bolo&f\&6Pólvora&f\&6Slime&f\&6Relogio&f\&6Balde");
log("");
&lixo = "^348$|^348$|^344$|^260$|^351$|^39$|^40$|^354$|^289$|^341$|^347$|^325";
&log_lixo = "&2Lixo:&6Glowstone&f\&6Ovo&f\&6Maça&f\&6Cacau&f\&6Cogumelos&f\&6Bolo&f\&6Pólvora&f\&6Slime&f\&6Relogio&f\&6Balde";
break;
elseif(KEY_3);
log("&e&l<Bulldozer>&2&lVoce pressionou:");
log("&6&l[3]&cLixo:&6Glowstone&f\&6Ovo&f\&6Maça&f\&6Cacau&f\&6Cogumelos&f\&6Bolo&f\&6Pólvora&f\&6Slime&f\&6Relogio&f\&6Balde&f\&6Osso&f\&6Teia&f\&6Netherrack");
log("");
&lixo = "^348$|^348$|^344$|^260$|^351$|^39$|^40$|^354$|^289$|^341$|^347$|^325$|^352$|^30$|^87";
&log_lixo = "&2Lixo:&6Glowstone&f\&6Ovo&f\&6Maça&f\&6Cacau&f\&6Cogumelos&f\&6Bolo&f\&6Pólvora&f\&6Slime&f\&6Relogio&f\&6Balde&f\&6Osso&f\&6Teia&f\&6Netherrack";
break;
elseif(KEY_4);
log("&e&l<Bulldozer>&2&lVoce pressionou:");
log("&6&l[4]&cLixo: &6Todos os itens que dropam da escavaçao!");
log("");
&lixo = "^348$|^348$|^344$|^260$|^351$|^39$|^40$|^354$|^289$|^341$|^347$|^325$|^352$|^30$|^87$|^2267$|^287$|^264$|^88";
&log_lixo = "&2Lixo: &6Todos os itens que dropam da escavaçao!";
break;
elseif(KEY_5);
log("&e&l<Bulldozer>&2&lVoce pressionou:");
log("&6&l[5]&cLixo: &6Nenhum item!");
log("");
&lixo = "^0$|^0";
&log_lixo = "&2Lixo: &6Nenhum item!";
break;
endif;
loop;
wait(100ms);
//Pergunta se quer vender discos
log("");
log("&e&l<Bulldozer>&f&lQuer vender discos após encher os baus?");
log("&f==============================================");
log("&6&l[Pressione 1]&2Sim! Vender discos após baus encherem");
log("&f______________________________________________");
log("&6&l[Pressione 2]&cNao! Nao quero vender discos quando encher os baus");
log("");
do;
if(KEY_1);
log("");
log("&e&l<Bulldozer>&2&lVoce selecionou &f'vender os discos!'");
log("");
set(vender_discos);
break;
elseif(KEY_2);
log("");
log("&e&l<Bulldozer>&c&lVoce selecionou &f'Nao vender discos'");
log("");
unset(vender_discos);
break;
endif;
loop;
wait(500ms);
gui();
do;
PROMPT(#bloco,$$i, Qual bloco usará para escavar? Só serao aceitos blocos 'escaváveis');
until((#bloco = 2)||(#bloco = 3)||(#bloco = 12)||(#bloco = 13)||(#bloco = 82)||(#bloco = 88)||(#bloco = 110));
do;
PROMPT(#quantidade,$$?, Qual quantidade de blocos que irá quebrar antes de verificar o inventário?Sugestao(500));
until((#quantidade > 30));
if(%#quantidade% > 799);
log("&e&l<Bulldozer>&4Cuidado! &cEsse valor é alto, podem ocorrer problemas só utilize se tem certeza do que esta fazendo!");
endif;
do;
PROMPT(#quebrar,$$?, Qual delay para quebrar os blocos?(0 sem delay para pás com mais eficiência/Aumente se o bloco nao quebrar!));
until((#quebrar < 20) && (#quebrar >= 0));
do;
PROMPT(#bau,$$?, Em qual baú devo iniciar o armazenamento?(1 à 76));
until((#bau > 0)&&(#bau <= 76));
break;
endif;
loop;
else;
log("&e&l<Bulldozer>&f&lNao há configurações anteriores para utilizar, será necessário reconfigurar!");
log("");
set(configuracoes_novas);
#bau_pa = 1;
#bau_material = 1;
#bau_red = 1;
wait(800ms);
//Questionário das configuracoes
log("&e&l<Bulldozer>&fIniciando questionário...");
//Pergunta qual tipo de lixo quer jogar
&lixo = "^0$|^0";
&log_lixo = "&2Lixo sem itens.";
log("");
log("&e&l<Bulldozer>&f&lEscolha quais itens deseja jogar fora:");
log("&f==============================================");
log("&6&l[Pressione 1]&cGlowstone&f\&cOvo&f\&cMaça&f\&cCacau&f\&cCogumelos&f\&cBolo");
log("&6&l[Pressione 2]&cOs itens acima + Pólvora&f\&cSlime&f\&cRelogio&f\&cBalde");
log("&6&l[Pressione 3]&cTodos os itens acima + Osso&f\&cTeia&f\&cNetherrack");
log("&6&l[Pressione 4]&cJogar fora todos os itens dropados!");
log("&6&l[Pressione 5]&cNao jogar nada fora!");
log("");
//Verifica o que o usuario pressionou
do;
if(KEY_1);
log("&e&l<Bulldozer>&2&lVoce pressionou:");
log("&6&l[1]&cLixo:&6Glowstone&f\&6Ovo&f\&6Maça&f\&6Cacau&f\&6Cogumelos&f\&6Bolo");
log("");
&lixo = "^348$|^348$|^344$|^260$|^351$|^39$|^40$|^354";
&log_lixo = "&2Lixo:&6Glowstone&f\&6Ovo&f\&6Maça&f\&6Cacau&f\&6Cogumelos&f\&6Bolo";
break;
elseif(KEY_2);
log("&e&l<Bulldozer>&2&lVoce pressionou:");
log("&6&l[2]&cLixo:&6Glowstone&f\&6Ovo&f\&6Maça&f\&6Cacau&f\&6Cogumelos&f\&6Bolo&f\&6Pólvora&f\&6Slime&f\&6Relogio&f\&6Balde");
log("");
&lixo = "^348$|^348$|^344$|^260$|^351$|^39$|^40$|^354$|^289$|^341$|^347$|^325";
&log_lixo = "&2Lixo:&6Glowstone&f\&6Ovo&f\&6Maça&f\&6Cacau&f\&6Cogumelos&f\&6Bolo&f\&6Pólvora&f\&6Slime&f\&6Relogio&f\&6Balde";
break;
elseif(KEY_3);
log("&e&l<Bulldozer>&2&lVoce pressionou:");
log("&6&l[3]&cLixo:&6Glowstone&f\&6Ovo&f\&6Maça&f\&6Cacau&f\&6Cogumelos&f\&6Bolo&f\&6Pólvora&f\&6Slime&f\&6Relogio&f\&6Balde&f\&6Osso&f\&6Teia&f\&6Netherrack");
log("");
&lixo = "^348$|^348$|^344$|^260$|^351$|^39$|^40$|^354$|^289$|^341$|^347$|^325$|^352$|^30$|^87";
&log_lixo = "&2Lixo:&6Glowstone&f\&6Ovo&f\&6Maça&f\&6Cacau&f\&6Cogumelos&f\&6Bolo&f\&6Pólvora&f\&6Slime&f\&6Relogio&f\&6Balde&f\&6Osso&f\&6Teia&f\&6Netherrack";
break;
elseif(KEY_4);
log("&e&l<Bulldozer>&2&lVoce pressionou:");
log("&6&l[4]&cLixo: &6Todos os itens que dropam da escavaçao!");
log("");
&lixo = "^348$|^348$|^344$|^260$|^351$|^39$|^40$|^354$|^289$|^341$|^347$|^325$|^352$|^30$|^87$|^2267$|^287$|^264$|^88";
&log_lixo = "&2Lixo: &6Todos os itens que dropam da escavaçao!";
break;
elseif(KEY_5);
log("&e&l<Bulldozer>&2&lVoce pressionou:");
log("&6&l[5]&cLixo: &6Nenhum item!");
log("");
&lixo = "^0$|^0";
&log_lixo = "&2Lixo: &6Nenhum item!";
endif;
loop;
wait(100ms);
//Pergunta se quer vender discos
log("");
log("&e&l<Bulldozer>&f&lQuer vender discos após encher os baus?");
log("&f==============================================");
log("&6&l[Pressione 1]&2Sim! Vender discos após baus encherem");
log("&f______________________________________________");
log("&6&l[Pressione 2]&cNao! Nao quero vender discos quando encher os baus");
log("");
do;
if(KEY_1);
log("");
log("&e&l<Bulldozer>&2&lVoce selecionou &f'vender os discos!'");
log("");
set(vender_discos);
break;
elseif(KEY_2);
log("");
log("&e&l<Bulldozer>&c&lVoce selecionou &f'Nao vender discos'");
log("");
unset(vender_discos);
break;
endif;
loop;
wait(500ms);
gui();
do;
PROMPT(#bloco,$$i, Qual bloco usará para escavar? Só serao aceitos blocos 'escaváveis');
until((#bloco = 2)||(#bloco = 3)||(#bloco = 12)||(#bloco = 13)||(#bloco = 82)||(#bloco = 88)||(#bloco = 110));
do;
PROMPT(#quantidade,$$?, Qual quantidade de blocos que irá quebrar antes de verificar o inventário?Sugestao(500));
until((#quantidade > 30));
if(%#quantidade% > 799);
log("&e&l<Bulldozer>&4Cuidado! &cEsse valor é alto, podem ocorrer problemas só utilize se tem certeza do que esta fazendo!");
endif;
do;
PROMPT(#quebrar,$$?, Qual delay para quebrar os blocos?(0 sem delay para pás com mais eficiência/Aumente se o bloco nao quebrar!));
until((#quebrar < 20) && (#quebrar >= 0));
do;
PROMPT(#bau,$$?, Em qual baú devo iniciar o armazenamento?(1 à 76));
until((#bau > 0)&&(#bau <= 76));
endif;
//Pergunta se esta arrumado
log("&e&l<Bulldozer>&f&lVoce ja esta com inventario pronto para escavar?");
log("&f==============================================");
log("&e&l<Bulldozer>&6Pressione &e&l3-&2Sim, estou pronto!");
log("&f______________________________________________");
log("&e&l<Bulldozer>&6Pressione &e&l4-&cNao, me arrume, please!");
log("");
//Verifica o que o usuario pressionou
do;
if(KEY_3);
log("&e&l<Bulldozer>&2&lVoce selecionou &f'Pronto para escavar!'");
break;
elseif(KEY_4);
log("&e&l<Bulldozer>&c&lVoce selecionou &f'Me arrume, please!'");
log("&4&l[!]&eSe o bau usado para deixar as coisas do inventário nao for suficiente para isso, a macro &cdesligará!&4&l[!]");
set(nao_pronto);
break;
endif;
loop;
//Verifica se ja tem alguma home reconhecida para nao precisar reconhecer novamente
//Se ja tiverem valores, o usuario pode escolher se quer reconhecer novamente ou nao
if((%#xc% != 0) && (%#xe% != 0) && (%#xt% != 0));
log("");
log("&e&l<Bulldozer>&f&lHá valores das coordenadas das homes salvos, quer utiliza-los, ou reconhecer as homes novamente?");
log("&f==============================================");
log("&e&l<Bulldozer>&6Pressione &e&l5-&2Sim, quero usar as coordenadas de homes salvas na vez anterior!");
log("&f______________________________________________");
log("&e&l<Bulldozer>&6Pressione &e&l6-&cNao, quero que a macro reconheça as homes novamente!");
log("");
//Verifica o que o usuario pressionou
do;
if(KEY_5);
log("&e&l<Bulldozer>&2&lVoce selecionou &f'Usar coordenadas ja salvas!'");
unset(reconhecer);
break;
elseif(KEY_6);
log("&e&l<Bulldozer>&c&lVoce selecionou &f'Reconhecer novamente!'");
set(reconhecer);
break;
endif;
loop;
endif;
if(reconhecer);
log("");
log("&e&l<Bulldozer>&3Iniciando processo de reconhecimento das homes...");
log("&4&l[!]&eÉ importante voce verificar se a macro irá nas homes &ccorretas&e, pois uma se agora &cerrar&e, ela irá &cbugar&4&l[!]");
log("");
//Se o usuario for vender discos tera que ter setado essa home
if(vender_discos);
}$$/home discos$${
wait(5);
log("&e&l<Bulldozer>&fAguarde!");
wait(10);
//Guardar valores do local de discos para reconhecimento futuro
#xc=%XPOS%;
#yc=%YPOS%;
#zc=%ZPOS%;
//Verifica se essa home esta no disco/local correto
if((%#xc%=-714)&&(%#yc%=6)&&(%#zc%=607));
log("");
log("&e&l<Bulldozer>&2Você setou a home no local correto! &3Home discos &asalva&3!");
log("");
else;
log("&e&l<Bulldozer>&cEssa coordenada nao é em frente da placa do disco 2267! Você setou a home no local errado!");
log("&6Suas coordenadas atuais sao X:%XPOS%, Y:%YPOS% e Z:%ZPOS%. &fPara serem corretas precisam estar em X:-714,Y:6 e Z:607.");
log("&e&l<Bulldozer>&4&lSuspensa!");
#cod_off = 2;
&time = "&b&l*Hora: &f&l%TIME% &0/ &b&l*Data: &f&l%DATE% &f(Ano-Mês-Dia)";
press(f2);
playsound(random.break);
wait(200ms);
playsound(random.break);
wait(100ms);
playsound(random.break);
if(%@#ups_skill% = 1);
&skill_up = "&b&l*Você upou &9&n&l%@#ups_skill%&b&l nível na ultima vez que a macro trabalhou!";
elseif(%@#ups_skill% > 1);
&skill_up = "&b&l*Você upou &9&n&l%@#ups_skill%&b&l níveis na ultima vez que a macro trabalhou!";
else;
&skill_up = "";
endif;
//Guarda money ganho
if(%@#discos% > 0);
#total = %@#discos% * 95;
&money = "&2&l*Você vendeu &a&n&l%@#discos%&2&l discos, e ganhou &b&n&l%#total%&2&l Coins!";
else;
&money = "";
endif;
log("");
unset(@xlyz);
stop();
endif;
endif;
wait(2);
}$$/home escavar$${
wait(5);
log("&e&l<Bulldozer>&fAguarde!");
wait(10);
//Guardar valores do local de escavacao para reconhecimento futuro
#xe=%XPOS%;
#ye=%YPOS%;
#ze=%ZPOS%;
log("&e&l<Bulldozer>&3Home escavar &2salva&3!");
log("");
wait(2);
}$$/home trapbaus$${
wait(5);
log("&e&l<Bulldozer>&fAguarde!");
wait(10);
//Guardar valores do local de armazenamento
#xt=%XPOS%;
#yt=%YPOS%;
#zt=%ZPOS%;
log("&e&l<Bulldozer>&3Home trapbaus &2salva&3!");
log("");
endif;
//Arruma o personagem para macro iniciar depois que reconhecer as homes
if(nao_pronto);
//Loop para garantir que o personagem irá chegar na home de baus
log("");
log("&e&l<Bulldozer>&3Indo para /home trapbaus...");
log("");
}$$/home trapbaus$${
wait(7);
do;
if((%#xt%=%XPOS%)&&(%#yt%=%YPOS%)&&(%#zt%=%ZPOS%));
break;
else;
log("");
log("&e&l<Bulldozer>&cAlgo deu errado! Essas coordenadas nao sao da /home trapbaus. &fTentando ir para /home trapbaus");
log("");
}$$/home trapbaus$${
wait(7);
endif;
loop;
gui(INVENTORY);
//Verifica se ja tem algo no inventario
unset(item_inv);
for(#i,9,44);
getslotitem(%#i%,#id);
if(%#id% != 0);
set(item_inv);
break;
endif;
next;
if(item_inv);
do;
ifmatches(%GUI%,GUICHEST);
break;
endif;
//Bau 94 da trapbaus
look(NORTH);
wait(1);
look(-61,+17);
wait(1);
key(USE);
wait(3);
loop;
//Bau aberto para colocar os itens do inventário>Limpar inventario
for(#i,54,89);
getslotitem(%#i%,#id);
slotclick(%#i%,l,true);
wait(50ms);
inc(#i);
next;
gui();
gui(INVENTORY);
for(#i,9,44);
getslotitem(%#i%,#id);
if(%#id% != 0);
log("");
log("&e&l<Bulldozer>&cVish, nao foi possivel remover os itens do inventario, nao posso iniciar!");
log("&8___________________________________________________");
log("&e&l<Bulldozer>&4&lSuspensa!");
#cod_off = 3;
&time = "&b&l*Hora: &f&l%TIME% &0/ &b&l*Data: &f&l%DATE% &f(Ano-Mês-Dia)";
press(f2);
playsound(random.break);
wait(200ms);
playsound(random.break);
wait(100ms);
playsound(random.break);
if(%@#ups_skill% = 1);
&skill_up = "&b&l*Você upou &9&n&l%@#ups_skill%&b&l nível na ultima vez que a macro trabalhou!";
elseif(%@#ups_skill% > 1);
&skill_up = "&b&l*Você upou &9&n&l%@#ups_skill%&b&l níveis na ultima vez que a macro trabalhou!";
else;
&skill_up = "";
endif;
//Guarda money ganho
if(%@#discos% > 0);
#total = %@#discos% * 95;
&money = "&2&l*Você vendeu &a&n&l%@#discos%&2&l discos, e ganhou &b&n&l%#total%&2&l Coins!";
else;
&money = "";
endif;
log("");
unset(@xlyz);
stop();
endif;
next;
endif;
//Loop que irá abrir baús onde estao as pas
#cont = 0;
do;
//Abre bau onde estao as pas
gui();
do;
ifmatches(%GUI%,GUICHEST);
break;
endif;
look(NORTH);
wait(1);
if(%#bau_pa% = 1);
//Bau 93
look(-75,+18);
elseif(%#bau_pa% = 2);
//Bau 92
look(-89,+19);
elseif(%#bau_pa% = 3);
//Bau 91
look(-106,+18);
elseif(%#bau_pa% = 4);
//Bau 90
look(-120,+17);
endif;
wait(1);
key(USE);
wait(3);
loop;
//Pegar pas do bau, ja aberto
//Passa pas do bau para o inventario (Somente se forem pas)
for(#i,0,53);
getslotitem(%#i%,#id);
if(%#id% = 277);
slotclick(%#i%,l,true);
inc(#cont);
wait(100ms);
endif;
//Se pas colocadas no inventario ja somaram 6 ou mais: Pare
if(%#cont% >= 6);
break;
endif;
next;
if(%#cont% >= 6);
//Para o do; until(); geral
break;
endif;
if(%#bau_pa% < 4);
inc(#bau_pa);
log("");
log("&e&l<Bulldozer>&cEsse bau nao tinha &bpas &csuficientes, procurando no proximo bau!");
log("");
else;
log("");
log("&e&l<Bulldozer>&cProcurei nos 4 baus que fui programada e dentro deles nao encontrei 6 &bpas &cpara iniciar a macro.");
log("&8___________________________________________________");
log("&e&l<Bulldozer>&4&lSuspensa!");
#cod_off = 4;
&time = "&b&l*Hora: &f&l%TIME% &0/ &b&l*Data: &f&l%DATE% &f(Ano-Mês-Dia)";
press(f2);
playsound(random.break);
wait(200ms);
playsound(random.break);
wait(100ms);
playsound(random.break);
if(%@#ups_skill% = 1);
&skill_up = "&b&l*Você upou &9&n&l%@#ups_skill%&b&l nível na ultima vez que a macro trabalhou!";
elseif(%@#ups_skill% > 1);
&skill_up = "&b&l*Você upou &9&n&l%@#ups_skill%&b&l níveis na ultima vez que a macro trabalhou!";
else;
&skill_up = "";
endif;
//Guarda money ganho
if(%@#discos% > 0);
#total = %@#discos% * 95;
&money = "&2&l*Você vendeu &a&n&l%@#discos%&2&l discos, e ganhou &b&n&l%#total%&2&l Coins!";
else;
&money = "";
endif;
log("");
unset(@xlyz);
stop();
endif;
gui();
until(%#cont% >= 6);
//Loop que irá abrir baús onde esta o material
#cont = 0;
do;
//Abre bau onde estao os materiais
gui();
do;
ifmatches(%GUI%,GUICHEST);
break;
endif;
look(NORTH);
wait(1);
if(%#bau_material% = 1);
//Bau 89
look(-131,+16);
elseif(%#bau_material% = 2);
//Bau 88
look(-143,+20);
elseif(%#bau_material% = 3);
//Bau 87
look(-159,+22);
elseif(%#bau_material% = 4);
//Bau 86
look(-179,+24);
elseif(%#bau_material% = 5);
//Bau 85
look(+158,+22);
elseif(%#bau_material% = 6);
//Bau 84
look(+141,+20);
elseif(%#bau_material% = 7);
//Bau 83
look(+130,+16);
endif;
wait(1);
key(USE);
wait(3);
loop;
//Pegar material do bau, ja aberto
//Passa materiais do bau para o inventario (Somente se for o material selecionado para escavar)
for(#i,0,53);
getslotitem(%#i%,#id);
if(%#id% = %#bloco%);
slotclick(%#i%,l,true);
inc(#cont);
wait(100ms);
endif;
//Se material colocado no inventario ja somou 12 ou mais: Pare
if(%#cont% >= 12);
break;
endif;
next;
if(%#cont% >= 12);
//Para o do; until(); geral
break;
endif;
if(%#bau_material% < 7);
inc(#bau_material);
log("");
log("&e&l<Bulldozer>&cEsse bau nao tinha &bmaterial &csuficiente, procurando no proximo bau!");
log("");
else;
log("");
log("&e&l<Bulldozer>&cProcurei nos 7 baus que fui programada e dentro deles nao encontrei &bmaterial &cpara iniciar a macro.");
log("&8___________________________________________________");
log("&e&l<Bulldozer>&4&lSuspensa!");
#cod_off = 5;
&time = "&b&l*Hora: &f&l%TIME% &0/ &b&l*Data: &f&l%DATE% &f(Ano-Mês-Dia)";
press(f2);
playsound(random.break);
wait(200ms);
playsound(random.break);
wait(100ms);
playsound(random.break);
if(%@#ups_skill% = 1);
&skill_up = "&b&l*Você upou &9&n&l%@#ups_skill%&b&l nível na ultima vez que a macro trabalhou!";
elseif(%@#ups_skill% > 1);
&skill_up = "&b&l*Você upou &9&n&l%@#ups_skill%&b&l níveis na ultima vez que a macro trabalhou!";
else;
&skill_up = "";
endif;
//Guarda money ganho
if(%@#discos% > 0);
#total = %@#discos% * 95;
&money = "&2&l*Você vendeu &a&n&l%@#discos%&2&l discos, e ganhou &b&n&l%#total%&2&l Coins!";
else;
&money = "";
endif;
log("");
unset(@xlyz);
stop();
endif;
gui();
until(%#cont% >= 12);
endif;
//Loop para garantir que o personagem irá chegar na home de escavar
log("");
log("&e&l<Bulldozer>&3Indo para /home escavar...");
log("");
}$$/home escavar$${
wait(7);
do;
if((%#xe%=%XPOS%)&&(%#ye%=%YPOS%)&&(%#ze%=%ZPOS%));
break;
else;
log("");
log("&e&l<Bulldozer>&cAlgo deu errado! Essas coordenadas nao sao da /home escavar. &fTentando ir para /home escavar");
log("");
}$$/home escavar$${
wait(7);
endif;
loop;
//Pega a direção onde o usuario iniciou a macro
&dir = %DIRECTION%;
ifmatches(%&dir%,N);
&dir = NORTH;
endif;
ifmatches(%&dir%,S);
&dir = SOUTH;
endif;
ifmatches(%&dir%,E);
&dir = EAST;
endif;
ifmatches(%&dir%,W);
&dir = WEST;
endif;
//Iniciando up
gui();
do();
//Se trocou as pas:
if(repos_pas);
#slot = 4;
#red = 0;
unset(repos_pas);
endif;
//Quebrando blocos
do(%#quantidade%);
look(%&dir%);
look(,59);
pick(%#bloco%);
#id = %ITEM%;
//Espera login
if(@logando);
do;
wait(1);
log("&e&l<Bulldozer>&7Aguardando login!");
until(!@logando);
endif;
//Verifica se tem bloco na hotbar
if((%#id% != %#bloco%) && (!@logando));
log("");
log("&e&l<Bulldozer>&fAguardando &7confirmaçao de que nao esta fazendo login!");
wait(5);
if((%#id% != %#bloco%) && (!@logando));
log("&e&l<Bulldozer>&7Confirmado: sem blocos na hotbar!");
break;
endif;
endif;
key(USE);
wait(10ms);
slot(%#slot%);
//Se durabilidade da pa esta baixa, troca slot
if((DURABILITY < 100)&&(DURABILITY > 0));
inc(#slot);
//Senao, se nao tiver pa na hotbar
elseif((DURABILITY <= 0) && (!@logando));
log("");
log("&e&l<Bulldozer>&fAguardando &7confirmaçao de que nao esta fazendo login!");
wait(5);
if((DURABILITY <= 0) && (!@logando));
log("&e&l<Bulldozer>&7Confirmado: você nao está logando, isso significa que nao tem pá nesse slot!");
//Se a durabilidade baixa depois de 5 segundos, significa que reconectou
if((DURABILITY < 100) && (DURABILITY > 0));
//Slot menor que nove ainda, troque slot
if(%#slot% < 9);
inc(#slot);
//Senao, reinicie a verificao
else;
log("");
log("&e&l<Bulldozer>&eReiniciando verificaçao de pás");
#slot = 4;
inc(#red);
endif;
endif;
//Se slot esta sem pa, apos esperar a possivel reconexao, entao esta sem pa mesmo
if(DURABILITY <= 0);
inc(#slot);
endif;
endif;
endif;
if((%#slot% >= 10) && (%#red% < 3));
log("&e&l<Bulldozer>&fReiniciando verificaçao das pás..");
#slot = 4;
inc(#red);
elseif((%#slot% >= 10) && (%#red% > 2));
log("");
log("&e&l<Bulldozer>&fReiniciei a verificaçao &4%#red% &fvezes, e todas as ferramentas estao gastas, se possível as pás serao trocadas...");
set(pas_red);
break;
endif;
look(%&dir%);
look(,59);
//Regula a velocidade escolhida
if(%#quebrar% != 0);
do(%#quebrar%);
key(attack);
loop;
else;
key(attack);
endif;
//Pausa se estiver limpando
if(@limpando);
log("&e&l<Bulldozer>&dAguardando limpeza do chao...");
wait(1);
playsound(note.pling);
log("&e&l<Bulldozer>&d4...");
playsound(note.pling);
wait(1);
log("&e&l<Bulldozer>&d3...");
playsound(note.pling);
wait(1);
log("&e&l<Bulldozer>&d2...");
playsound(note.pling);
wait(1);
log("&e&l<Bulldozer>&d1...");
playsound(note.pling);
wait(1);
log("&e&l<Bulldozer>&dLimpou!");
playsound(random.click);
unset(@limpando);
endif;
loop;
//Parando de escavar
//Se as pas estao gastas
if((pas_red) && (!bau_red_full) && (!sem_pa));
set(repos_pas);
//Trocando pás
log("");
log("&e&l<Bulldozer>&fIniciando procedimento de &2substituiçao &fdas pás...");
//Loop para garantir que o personagem irá chegar na home de baus
log("");
log("&e&l<Bulldozer>&3Indo para /home trapbaus...");
log("");
}$$/home trapbaus$${
wait(7);
do;
if((%#xt%=%XPOS%)&&(%#yt%=%YPOS%)&&(%#zt%=%ZPOS%));
break;
else;
log("");
log("&e&l<Bulldozer>&cAlgo deu errado! Essas coordenadas nao sao da /home trapbaus. &fTentando ir para /home trapbaus");
log("");
}$$/home trapbaus$${
wait(7);
endif;
loop;
//Guardar pás gastas
//Loop que irá abrir baús para guardar pas gastas
#cont_pa_guardada = 0;
do;
//Abre baus
gui();
do;
ifmatches(%GUI%,GUICHEST);
break;
endif;
look(NORTH);
wait(1);
if(%#bau_red% = 1);
//Bau 78
look(+61,+16);
elseif(%#bau_red% = 2);
//Bau 79
look(+74,+18);
elseif(%#bau_red% = 3);
//Bau 80
look(+91,+18);
elseif(%#bau_red% = 4);
//Bau 81
look(+104,+18);
endif;
wait(1);
key(USE);
wait(3);
loop;
//Guardar pas no bau, ja aberto
//Passa pas da hotbar para o bau
for(#i, 84, 89);
slotclick(%#i%,l,true);
wait(100ms);
next;
#cont_pa_guardada = 0;
for(#i, 84, 89);
getslotitem(%#i%,#id);
if(%#id% = 0);
inc(#cont_pa_guardada);
endif;
wait(100ms);
next;
//Se não tirou todas as pás do inventario, passe para o proximo bau
if(%#cont_pa_guardada% < 6);
if(%#bau_red% < 4);
inc(#bau_red);
log("");
log("&e&l<Bulldozer>&cEsse bau nao tinha &bespaço &csuficiente para guardar, passando para o proximo bau!");
log("");
//Se não suportar as pás e for o ultimo baú
else;
set(bau_red_full);//nova
log("");
log("&e&l<Bulldozer>&cEsse foi o ultimo bau e nao tinha &fespaço &csuficiente para guardar, próxima vez que as pás ficarem red nao irá trocar!");
log("");
#pas_sobraram = 6 - %#cont_pa_guardada%;
//Isso é como break, pois é a condição para sair do loop
#cont_pa_guardada = 6;
endif;
endif;
gui();
until(%#cont_pa_guardada% >= 6);
//Pegar pás novas
//Loop que irá abrir baús onde estao as pas
#cont = 0;
do;
//Abre bau onde estao as pas
gui();
do;
ifmatches(%GUI%,GUICHEST);
break;
endif;
look(NORTH);
wait(1);
if(%#bau_pa% = 1);
//Bau 93
look(-75,+18);
elseif(%#bau_pa% = 2);
//Bau 92
look(-89,+19);
elseif(%#bau_pa% = 3);
//Bau 91
look(-106,+18);
elseif(%#bau_pa% = 4);
//Bau 90
look(-120,+17);
endif;
wait(1);
key(USE);
wait(3);
loop;
//Pegar pas do bau, ja aberto
//Passa pas do bau para o inventario (Somente se forem pas)
for(#i,0,53);
getslotitem(%#i%,#id);
if(%#pas_sobraram%) >= 6);
break;
endif;
if(%#id% = 277);
slotclick(%#i%,l,true);
inc(#cont);
wait(100ms);
endif;
//Se pas colocadas no inventario ja somaram 6 ou mais: Pare
if((%#cont% + %#pas_sobraram%) >= 6);
break;
endif;
next;
if((%#cont% + %#pas_sobraram%) >= 6);
//Para o 'do; until();' geral
break;
endif;
//Se chegou aqui é porque não fechou o tanto de pas suficientes
if(%#bau_pa% < 4);
inc(#bau_pa);
log("");
log("&e&l<Bulldozer>&cEsse bau nao tinha &bpas &csuficientes, procurando no proximo bau!");
log("");
//Se não fechou o tanto de pas e o baú é o ultimo
else;
set(sem_pa);//nova
log("");
log("&e&l<Bulldozer>&cEsse foi o ultimo bau e nao tinha &fpas &csuficientes, próxima vez que as pás ficarem red nao irá trocar!");
log("");
break;
endif;
until((%#cont% + %#pas_sobraram%) >= 6);
gui();
//Loop para garantir que o personagem irá chegar na home de escavar
log("");
log("&e&l<Bulldozer>&3Voltando para /home escavar...");
log("");
}$$/home escavar$${
wait(7);
do;
if((%#xe%=%XPOS%)&&(%#ye%=%YPOS%)&&(%#ze%=%ZPOS%));
break;
else;
log("");
log("&e&l<Bulldozer>&cAlgo deu errado! Essas nao sao as coordenadas da /home escavar. &fTentando ir para /home escavar");
log("");
}$$/home escavar$${
wait(7);
endif;
loop;
unset(pas_red);
//Senão, se as pas gastaram E esta com baus de pas gastas cheio OU sem pas boas
elseif((pas_red) && (bau_red_full) || (sem_pa));
if(bau_red_full);
log("");
log("&e&l<Bulldozer>&cImpossível trocar as pás da hotbar por falta de &bbau com espaço&c, nao posso continuar.");
log("&8___________________________________________________");
log("&e&l<Bulldozer>&4&lSuspensa!");
#cod_off = 6;
else;
log("");
log("&e&l<Bulldozer>&cAcabaram as pás. Nao tem pás suficientes para fazer substituiçao.");
log("&8___________________________________________________");
log("&e&l<Bulldozer>&4&lSuspensa!");
#cod_off = 7;
endif;
&time = "&b&l*Hora: &f&l%TIME% &0/ &b&l*Data: &f&l%DATE% &f(Ano-Mês-Dia)";
press(f2);
playsound(random.break);
wait(200ms);
playsound(random.break);
wait(100ms);
playsound(random.break);
if(%@#ups_skill% = 1);
&skill_up = "&b&l*Você upou &9&n&l%@#ups_skill%&b&l nível na ultima vez que a macro trabalhou!";
elseif(%@#ups_skill% > 1);
&skill_up = "&b&l*Você upou &9&n&l%@#ups_skill%&b&l níveis na ultima vez que a macro trabalhou!";
else;
&skill_up = "";
endif;
//Guarda money ganho
if(%@#discos% > 0);
#total = %@#discos% * 95;
&money = "&2&l*Você vendeu &a&n&l%@#discos%&2&l discos, e ganhou &b&n&l%#total%&2&l Coins!";
else;
&money = "";
endif;
log("");
unset(@xlyz);
stop();
//Se pás nao estao no red após terminar o ciclo de escavar:
else;
// Abrindo inventário
gui(INVENTORY);
pick(%#bloco%);
//Se tiver menos de 64 blocos empilhados no slot selecionado pelo 'pick' (geralmente), irá repor
if(%STACKSIZE% < 64);
log("");
log("&e&l<Bulldozer>&fRepondo blocos na hotbar!");
log("");
wait(50ms);
//Tira itens no lugar dos blocos (somente itens com id diferente do bloco escavando).
for(#i,36,38);
getslotitem(%#i%,#id)
if(%#id%!=%#bloco%);
slotclick(%#i%,l,true);
wait(5ms);
endif;
next;
wait(20ms);
//Puxa blocos para a hotbar.
for(#i,9,35);
getslotitem(%#i%,#id);
if(%#id%=%#bloco%);
slotclick(%#i%,l,true);
wait(5ms);
endif;
next;
endif;
//Verifica se acabaram blocos do inventario
gui(INVENTORY);
pick(%#bloco%);
if(%STACKSIZE% < 40);
log("");
log("&e&l<Bulldozer>&fAguardando blocos voltarem pro inventário.");
log("");
wait(4);
endif;
//Se quantidade de blocos menor de 20 depois de repor e aguardar, e tiver material nos baus
if(%STACKSIZE% < 20);
log("");
log("&e&l<Bulldozer>&cNao tem blocos no inventário para repor, indo pegar mais...");
log("");
//Loop para garantir que o personagem irá chegar na home de baus
log("&e&l<Bulldozer>&3Indo para /home trapbaus...");
log("");
}$$/home trapbaus$${
wait(7);
do;
if((%#xt%=%XPOS%)&&(%#yt%=%YPOS%)&&(%#zt%=%ZPOS%));
break;
else;
log("");
log("&e&l<Bulldozer>&cAlgo deu errado! Essas coordenadas nao sao da /home trapbaus. &fTentando ir para /home trapbaus");
log("");
}$$/home trapbaus$${
wait(7);
endif;
loop;
//Processo de jogar lixo fora
gui(INVENTORY);
unset(lixo_inv);
for(#i,9,44);
getslotitem(%#i%,#id);
ifmatches(%#id%, %&lixo%);
set(lixo_inv);
break;
endif;
next;
if(lixo_inv);
keydown(jump);
wait(1);
keyup(jump);
gui(INVENTORY);
for(#i,9,44);
getslotitem(%#i%,#id);
ifmatches(%#id%, %&lixo%);
slotclick(%#i%);
wait(200ms);
slotclick(-999);
wait(200ms);
endif;
next;
endif;
gui();
//Loop pra limpar inventário antes de pegar mais material, apenas pás e blocos utilizados ficarão
do;
//Olhando e Tentando abrir baus.
do;
ifmatches(%GUI%,GUICHEST);
break;
endif;
look(NORTH);
wait(500ms);
if(%#bau%=1);look(-50,-24);endif;
if(%#bau%=2);look(-39,-28);endif;
if(%#bau%=3);look(-23,-32);endif;
if(%#bau%=4);look(+1,-34);endif;
if(%#bau%=5);look(+23,-32);endif;
if(%#bau%=6);look(+39,-28);endif;
if(%#bau%=7);look(+50,-24);endif;
if(%#bau%=8);look(+61,-23);endif;
if(%#bau%=9);look(+74,-24);endif;
if(%#bau%=10);look(+91,-26);endif;
if(%#bau%=11);look(+104,-25);endif;
if(%#bau%=12);look(+120,-23);endif;
if(%#bau%=13);look(+130,-24);endif;
if(%#bau%=14);look(+141,-28);endif;
if(%#bau%=15);look(+158,-32);endif;
if(%#bau%=16);look(-179,-34);endif;
if(%#bau%=17);look(-159,-32);endif;
if(%#bau%=18);look(-143,-27);endif;
if(%#bau%=19);look(-131,-24);endif;
if(%#bau%=20);look(-120,-23);endif;
if(%#bau%=21);look(-106,-24);endif;
if(%#bau%=22);look(-89,-26);endif;
if(%#bau%=23);look(-75,-25);endif;
if(%#bau%=24);look(-61,-23);endif;
if(%#bau%=25);look(-50,-10);endif;
if(%#bau%=26);look(-39,-12);endif;
if(%#bau%=27);look(-23,-14);endif;
if(%#bau%=28);look(+1,-16);endif;
if(%#bau%=29);look(+23,-14);endif;
if(%#bau%=30);look(+39,-12);endif;
if(%#bau%=31);look(+50,-10);endif;
if(%#bau%=32);look(+61,-10);endif;
if(%#bau%=33);look(+74,-11);endif;
if(%#bau%=34);look(+91,-11);endif;
if(%#bau%=35);look(+104,-11);endif;
if(%#bau%=36);look(+120,-10);endif;
if(%#bau%=37);look(+130,-10);endif;
if(%#bau%=38);look(+141,-12);endif;
if(%#bau%=39);look(+158,-14);endif;
if(%#bau%=40);look(-179,-16);endif;
if(%#bau%=41);look(-159,-14);endif;
if(%#bau%=42);look(-143,-12);endif;
if(%#bau%=43);look(-131,-10);endif;
if(%#bau%=44);look(-120,-10);endif;
if(%#bau%=45);look(-106,-11);endif;
if(%#bau%=46);look(-89,-11);endif;
if(%#bau%=47);look(-75,-11);endif;
if(%#bau%=48);look(-61,-10);endif;
if(%#bau%=49);look(-50,+4);endif;
if(%#bau%=50);look(-39,+4);endif;
if(%#bau%=51);look(-23,+4);endif;
if(%#bau%=52);look(+23,+4);endif;
if(%#bau%=53);look(+39,+4);endif;
if(%#bau%=54);look(+50,+4);endif;
if(%#bau%=55);look(+61,+4);endif;
if(%#bau%=56);look(+74,+4);endif;
if(%#bau%=57);look(+91,+4);endif;
if(%#bau%=58);look(+104,+4);endif;
if(%#bau%=59);look(+120,+4);endif;
if(%#bau%=60);look(+130,+4);endif;
if(%#bau%=61);look(+141,+4);endif;
if(%#bau%=62);look(+158,+4);endif;
if(%#bau%=63);look(-179,+4);endif;
if(%#bau%=64);look(-159,+4);endif;
if(%#bau%=65);look(-143,+4);endif;
if(%#bau%=66);look(-131,+4);endif;
if(%#bau%=67);look(-120,+4);endif;
if(%#bau%=68);look(-106,+4);endif;
if(%#bau%=69);look(-89,+4);endif;
if(%#bau%=70);look(-75,+4);endif;
if(%#bau%=71);look(-61,+4);endif;
if(%#bau%=72);look(-50,+16);endif;
if(%#bau%=73);look(-39,+20);endif;
if(%#bau%=74);look(-23,+22);endif;
if(%#bau%=75);look(+23,+22);endif;
if(%#bau%=76);look(+39,+20);endif;
wait(2);
key(USE);
//Delay para repetir o loop de tentar abrir baú.
wait(4);
loop;
//Guardar itens do inventario, com exceção das pás, blocos usados, lixos e livros
#livro = 0;
for(#i, 54, 89);
getslotitem(%#i%,#id);
if((%#id% != %#bloco%) && (%#id% != 277) && (%#id% != 387));
ifmatches(%#id%, %&lixo%);
//Se for lixo nao coloca no bau
else;
slotclick(%#i%,l,true);
endif;
endif;
//Se for livro
if(%#id% = 387);
inc(#livro);
endif;
wait(50ms);
next;
wait(50ms);
//Verifica se o bau nao esta cheio por contagem de slots vazios
set(bau_full);
for(#i,0,53);
getslotitem(%#i%,#id);
if(%#id% = 0);
//bau tem slots vazios ainda
unset(bau_full);
break;
endif;
next;
wait(50ms);
if(bau_full);
if(%#bau% < 76);
inc(#bau);
gui();
else;
unset(baus_disponiveis);
inc(#bau);
//Guardar livros
log("");
log("&e&l<Bulldozer Discos>&c&lBaús cheios! &f&lIniciando processo de &2&lvenda &f&ldos discos!");
log("");
gui();
break;
endif;
endif;
//Se ja guardou outros itens agora vai guardar os livros
if((!bau_full) && (%#livro% > 0));
log("&e&l<Bulldozer>&fGuardando &f&llivros&f...");
//Tentando abrir bau
gui();
do;
ifmatches(%GUI%,GUICHEST);
break;
endif;
look(NORTH);
wait(500ms);
look(+120,+16);
//Bau 82
wait(2);
key(USE);
//Delay para repetir o loop de tentar abrir baú
wait(4);
loop;
//Guarda livros no seu bau
for(#i, 54, 89);
getslotitem(%#i%,#id);
//Se for livro
if(%#id% = 387);
slotclick(%#i%,l,true);
endif;
wait(50ms);
next;
endif;
until(!bau_full);
gui();
//Se nao encheram os baus da trap siga pegando mais blocos para escavar
if(baus_disponiveis);
//Analisa quantos slots dos inventario ja estao com o bloco de escavação
gui(INVENTORY);
#slot_com_bloco = 0;
for(#i, 9, 44);
getslotitem(%#i%,#id);
if(%#id% = %#bloco%);
inc(#slot_com_bloco);
endif;
next;
//Loop que irá abrir baús onde esta o material
#cont = 0;
do;
//Abre bau onde estao os materiais
gui();
do;
ifmatches(%GUI%,GUICHEST);
break;
endif;
look(NORTH);
wait(1);
if(%#bau_material% = 1);
//Bau 89
look(-131,+16);
elseif(%#bau_material% = 2);
//Bau 88
look(-143,+20);
elseif(%#bau_material% = 3);
//Bau 87
look(-159,+22);
elseif(%#bau_material% = 4);
//Bau 86
look(-179,+24);
elseif(%#bau_material% = 5);
//Bau 85
look(+158,+22);
elseif(%#bau_material% = 6);
//Bau 84
look(+141,+20);
elseif(%#bau_material% = 7);
//Bau 83
look(+130,+16);
endif;
wait(1);
key(USE);
wait(3);
loop;
//Pegar material do bau, ja aberto
//Passa materiais do bau para o inventario (Somente se for o material selecionado para escavar)
for(#i,0,53);
getslotitem(%#i%,#id);
if(%#id% = %#bloco%);
slotclick(%#i%,l,true);
inc(#cont);
wait(100ms);
endif;
//Se material colocado no inventario junto com o que ja tinha, somou 12 ou mais: Pare
if((%#cont% + %#slot_com_bloco%) >= 12);
break;
endif;
next;
//Se chegou aqui e ja somou 12, é porque parou (break) la em cima, entao precisa parar o loop de pegar material
if((%#cont% + %#slot_com_bloco%) >= 12);
//Para o do; until(); geral do material
break;
endif;
//Se chegou até aqui é porque nao somou 12, entao precisa verificar em outro bau
if(%#bau_material% < 7);
inc(#bau_material);
log("");
log("&e&l<Bulldozer>&cEsse bau nao tinha &bmaterial &csuficiente, procurando no proximo bau!");
log("");
else;
log("");
log("&e&l<Bulldozer>&cProcurei nos 7 baus que fui programada e dentro deles nao encontrei &bmaterial &cpara repor.");
log("&8___________________________________________________");
log("&e&l<Bulldozer>&4&lSuspensa!");
#cod_off = 8;
&time = "&b&l*Hora: &f&l%TIME% &0/ &b&l*Data: &f&l%DATE% &f(Ano-Mês-Dia)";
press(f2);
playsound(random.break);
wait(200ms);
playsound(random.break);
wait(100ms);
playsound(random.break);
if(%@#ups_skill% = 1);
&skill_up = "&b&l*Você upou &9&n&l%@#ups_skill%&b&l nível na ultima vez que a macro trabalhou!";
elseif(%@#ups_skill% > 1);
&skill_up = "&b&l*Você upou &9&n&l%@#ups_skill%&b&l níveis na ultima vez que a macro trabalhou!";
else;
&skill_up = "";
endif;
//Guarda money ganho
if(%@#discos% > 0);
#total = %@#discos% * 95;
&money = "&2&l*Você vendeu &a&n&l%@#discos%&2&l discos, e ganhou &b&n&l%#total%&2&l Coins!";
else;
&money = "";
endif;
log("");
unset(@xlyz);
stop();
endif;
until(%#cont% >= 12);
//Verifica se pegou mais blocos do que deveria
#blocos_sobraram = 0;
for(#i, 54, 89);
getslotitem(%#i%,#id);
if(%#id% = %#bloco%);
inc(#blocos_sobraram);
endif;
next;
//Se blocos bugaram
if(%#blocos_sobraram% > 14);
//Passa materiais sobrando do inventario para o bau (Somente se for o material selecionado para escavar)
#blocos_removidos = 0;
for(#i,54,89);
getslotitem(%#i%,#id);
if(%#id% = %#bloco%);
slotclick(%#i%,l,true);
inc(#blocos_removidos);
wait(50ms);
endif;
if((%#blocos_sobraram% - %#blocos_removidos%) <= 12);
break;
endif;
next;
endif;
gui();
//Loop para garantir que o personagem irá chegar na home de escavar
log("");
log("&e&l<Bulldozer>&3Voltando para /home escavar...");
log("");
}$$/home escavar$${
wait(7);
do;
if((%#xe%=%XPOS%)&&(%#ye%=%YPOS%)&&(%#ze%=%ZPOS%));
break;
else;
log("");
log("&e&l<Bulldozer>&cAlgo deu errado! Essas nao sao as coordenadas da /home escavar. &fTentando ir para /home escavar");
log("");
}$$/home escavar$${
wait(7);
endif;
loop;
endif;
endif;
//Se ainda nao encheram os baus da trap
if(baus_disponiveis);
gui(INVENTORY);
wait(10ms);
//Verifica se o inventario esta cheio por slots vazios
set(inv_vazio);
#cont_slot_vazio = 0;
for(#i,9,44);
getslotitem(%#i%,#id);
if(%#id% = 0);
inc(#cont_slot_vazio);
endif;
next;
//Se contador é maior que 3, slots vazios
if(%#cont_slot_vazio% > 3);
gui();
//Senao, significa que invetario esta cheio
else;
//Loop para garantir que o personagem irá chegar na home de baus
log("");
log("&e&l<Bulldozer>&3Inventário cheio. Indo para /home trapbaus...");
log("");
}$$/home trapbaus$${
wait(7);
do;
if((%#xt%=%XPOS%)&&(%#yt%=%YPOS%)&&(%#zt%=%ZPOS%));
break;
else;
log("");
log("&e&l<Bulldozer>&cAlgo deu errado! Essas coordenadas nao sao da /home trapbaus. &fTentando ir para /home trapbaus");
log("");
}$$/home trapbaus$${
wait(7);
endif;
loop;
//Processo de jogar lixo fora
gui(INVENTORY);
unset(lixo_inv);
for(#i,9,44);
getslotitem(%#i%,#id);
ifmatches(%#id%, %&lixo%);
set(lixo_inv);
break;
endif;
next;
if(lixo_inv);
keydown(jump);
wait(1);
keyup(jump);
gui(INVENTORY);
for(#i,9,44);
getslotitem(%#i%,#id);
ifmatches(%#id%, %&lixo%);
slotclick(%#i%);
wait(200ms);
slotclick(-999);
wait(200ms);
endif;
next;
endif;
gui();
//Guardando ítens nos baus
do;
//Olhando e Tentando abrir baus
do;
ifmatches(%GUI%,GUICHEST);
break;
endif;
look(NORTH);
wait(500ms);
if(%#bau%=1);look(-50,-24);endif;
if(%#bau%=2);look(-39,-28);endif;
if(%#bau%=3);look(-23,-32);endif;
if(%#bau%=4);look(+1,-34);endif;
if(%#bau%=5);look(+23,-32);endif;
if(%#bau%=6);look(+39,-28);endif;
if(%#bau%=7);look(+50,-24);endif;
if(%#bau%=8);look(+61,-23);endif;
if(%#bau%=9);look(+74,-24);endif;
if(%#bau%=10);look(+91,-26);endif;
if(%#bau%=11);look(+104,-25);endif;
if(%#bau%=12);look(+120,-23);endif;
if(%#bau%=13);look(+130,-24);endif;
if(%#bau%=14);look(+141,-28);endif;
if(%#bau%=15);look(+158,-32);endif;
if(%#bau%=16);look(-179,-34);endif;
if(%#bau%=17);look(-159,-32);endif;
if(%#bau%=18);look(-143,-27);endif;
if(%#bau%=19);look(-131,-24);endif;
if(%#bau%=20);look(-120,-23);endif;
if(%#bau%=21);look(-106,-24);endif;
if(%#bau%=22);look(-89,-26);endif;
if(%#bau%=23);look(-75,-25);endif;
if(%#bau%=24);look(-61,-23);endif;
if(%#bau%=25);look(-50,-10);endif;
if(%#bau%=26);look(-39,-12);endif;
if(%#bau%=27);look(-23,-14);endif;
if(%#bau%=28);look(+1,-16);endif;
if(%#bau%=29);look(+23,-14);endif;
if(%#bau%=30);look(+39,-12);endif;
if(%#bau%=31);look(+50,-10);endif;
if(%#bau%=32);look(+61,-10);endif;
if(%#bau%=33);look(+74,-11);endif;
if(%#bau%=34);look(+91,-11);endif;
if(%#bau%=35);look(+104,-11);endif;
if(%#bau%=36);look(+120,-10);endif;
if(%#bau%=37);look(+130,-10);endif;
if(%#bau%=38);look(+141,-12);endif;
if(%#bau%=39);look(+158,-14);endif;
if(%#bau%=40);look(-179,-16);endif;
if(%#bau%=41);look(-159,-14);endif;
if(%#bau%=42);look(-143,-12);endif;
if(%#bau%=43);look(-131,-10);endif;
if(%#bau%=44);look(-120,-10);endif;
if(%#bau%=45);look(-106,-11);endif;
if(%#bau%=46);look(-89,-11);endif;
if(%#bau%=47);look(-75,-11);endif;
if(%#bau%=48);look(-61,-10);endif;
if(%#bau%=49);look(-50,+4);endif;
if(%#bau%=50);look(-39,+4);endif;
if(%#bau%=51);look(-23,+4);endif;
if(%#bau%=52);look(+23,+4);endif;
if(%#bau%=53);look(+39,+4);endif;
if(%#bau%=54);look(+50,+4);endif;
if(%#bau%=55);look(+61,+4);endif;
if(%#bau%=56);look(+74,+4);endif;
if(%#bau%=57);look(+91,+4);endif;
if(%#bau%=58);look(+104,+4);endif;
if(%#bau%=59);look(+120,+4);endif;
if(%#bau%=60);look(+130,+4);endif;
if(%#bau%=61);look(+141,+4);endif;
if(%#bau%=62);look(+158,+4);endif;
if(%#bau%=63);look(-179,+4);endif;
if(%#bau%=64);look(-159,+4);endif;
if(%#bau%=65);look(-143,+4);endif;
if(%#bau%=66);look(-131,+4);endif;
if(%#bau%=67);look(-120,+4);endif;
if(%#bau%=68);look(-106,+4);endif;
if(%#bau%=69);look(-89,+4);endif;
if(%#bau%=70);look(-75,+4);endif;
if(%#bau%=71);look(-61,+4);endif;
if(%#bau%=72);look(-50,+16);endif;
if(%#bau%=73);look(-39,+20);endif;
if(%#bau%=74);look(-23,+22);endif;
if(%#bau%=75);look(+23,+22);endif;
if(%#bau%=76);look(+39,+20);endif;
wait(2);
key(USE);
//Delay para repetir o loop de tentar abrir baú
wait(4);
loop;
//Guardar itens do inventario, com exceção das pás, blocos usados, lixos e livros
#livro = 0;
for(#i, 54, 89);
getslotitem(%#i%,#id);
if((%#id% != %#bloco%) && (%#id% != 277) && (%#id% != 387));
ifmatches(%#id%, %&lixo%);
//Se for lixo nao coloca no bau
else;
slotclick(%#i%,l,true);
endif;
endif;
//Se for livro
if(%#id% = 387);
inc(#livro);
endif;
wait(50ms);
next;
wait(500ms);
//Verifica se o bau nao esta cheio por contagem de slots vazios
set(bau_full);
for(#i,0,53);
getslotitem(%#i%,#id);
if(%#id% = 0);
//bau tem slots vazios ainda
unset(bau_full);
break;
endif;
next;
wait(50ms);
if(bau_full);
if(%#bau% < 76);
inc(#bau);
gui();
else;
inc(#bau);
unset(baus_disponiveis);
if(vender_discos);
log("");
log("&e&l<Bulldozer Discos>&c&lBaús cheios! &f&lIniciando processo de &2&lvenda &f&ldos discos!");
log("");
else;
log("");
log("&e&l<Bulldozer>&c&lBaús cheios! &f&lAgora só irei escavar e voce vai perder os itens dropados!");
log("");
#bau = 76;
set(ta_na_trap);
endif;
gui();
break;
endif;
endif;
//Se ja guardou outros itens agora vai guardar os livros
if((!bau_full) && (%#livro% > 0));
log("&e&l<Bulldozer>&fGuardando &f&llivros&f...");
//Tentando abrir bau
gui();
do;
ifmatches(%GUI%,GUICHEST);
break;
endif;
look(NORTH);
wait(500ms);
look(+120,+16);
//Bau 82
wait(2);
key(USE);
//Delay para repetir o loop de tentar abrir baú
wait(4);
loop;
//Guarda livros no seu bau
for(#i, 54, 89);
getslotitem(%#i%,#id);
//Se for livro
if(%#id% = 387);
slotclick(%#i%,l,true);
endif;
wait(50ms);
next;
endif;
until(!bau_full);
//Loop para garantir que o personagem irá chegar na home de escavar
if(baus_disponiveis);
log("");
log("&e&l<Bulldozer>&3Voltando para /home escavar...");
log("");
}$$/home escavar$${
wait(7);
do;
if((%#xe%=%XPOS%)&&(%#ye%=%YPOS%)&&(%#ze%=%ZPOS%));
break;
else;
log("");
log("&e&l<Bulldozer>&cAlgo deu errado! Essas nao sao as coordenadas da /home escavar. &fTentando ir para /home escavar");
log("");
}$$/home escavar$${
wait(7);
endif;
loop;
endif;
endif;
endif;
//Vender discos
//Se baus encheram e o usuario quer vender discos:
if((!baus_disponiveis) && (vender_discos));
//Guardar itens do inventario antes de vender
log("&e&l<Bulldozer>&fGuardando itens restantes do inventario antes de vender...");
do;
ifmatches(%GUI%,GUICHEST);
break;
endif;
look(NORTH);
wait(500ms);
if(%#bau%=77);look(+50,+16);endif;
wait(2);
key(USE);
//Delay para repetir o loop de tentar abrir baú
wait(4);
loop;
#bau = 76;
#livro = 0;
//Colocar itens no bau
for(#i, 54, 89);
getslotitem(%#i%,#id);
if((%#id% != %#bloco%) && (%#id% != 277) && (%#id% != 387));
ifmatches(%#id%, %&lixo%);
//Se for lixo nao coloca no bau
else;
slotclick(%#i%,l,true);
endif;
endif;
//Conta livros do inventario
if(%#id% = 387);
inc(#livro);
endif;
wait(30ms);
next;
gui();
//Guardar livros
if(%#livro% > 0);
log("&e&l<Bulldozer>&fGuardando &f&llivros&f...");
//Tentando abrir bau
gui();
do;
ifmatches(%GUI%,GUICHEST);
break;
endif;
look(NORTH);
wait(500ms);
look(+120,+16);
//Bau 82
wait(2);
key(USE);
//Delay para repetir o loop de tentar abrir baú
wait(4);
loop;
//Guarda livros no seu bau
for(#i, 54, 89);
getslotitem(%#i%,#id);
//Se for livro
if(%#id% = 387);
slotclick(%#i%,l,true);
endif;
wait(50ms);
next;
endif;
//Guardar blocos de escavacao para acelerar a venda de discos pegando mais por vez
//Loop que irá abrir baús onde esta o material
#bau_material_guarda = 1;
log("");
log("&e&l<Bulldozer Discos>&fGuardando &bmaterial de escavaçao &fpara acelerar a venda!");
log("");
do;
//Abre bau onde estao os materiais
gui();
do;
ifmatches(%GUI%,GUICHEST);
break;
endif;
look(NORTH);
wait(1);
if(%#bau_material_guarda% = 1);
//Bau 89
look(-131,+16);
elseif(%#bau_material_guarda% = 2);
//Bau 88
look(-143,+20);
elseif(%#bau_material_guarda% = 3);
//Bau 87
look(-159,+22);
elseif(%#bau_material_guarda% = 4);
//Bau 86
look(-179,+24);
elseif(%#bau_material_guarda% = 5);
//Bau 85
look(+158,+22);
elseif(%#bau_material_guarda% = 6);
//Bau 84
look(+141,+20);
elseif(%#bau_material_guarda% = 7);
//Bau 83
look(+130,+16);
endif;
wait(1);
key(USE);
wait(3);
loop;
//Guardar material no bau, ja aberto
//Passa materiais do inventario para o bau (Somente se for o material selecionado para escavar)
for(#i,54,89);
getslotitem(%#i%,#id);
if(%#id% = %#bloco%);
slotclick(%#i%,l,true);
wait(50ms);
endif;
next;
//Verifica se sobraram blocos no inventario
#cont = 0;
for(#i,54,89);
getslotitem(%#i%,#id);
if(%#id% = %#bloco%);
inc(#cont);
wait(10ms);
endif;
next;
//Se material contado fechou 0: pare
if(%#cont% = 0);
//Para o do; until(); geral
break;
endif;
//Se chegou até aqui é porque nao fechou 0, entao precisa tentar guardar em outro bau
if(%#bau_material_guarda% < 7);
inc(#bau_material_guarda);
log("");
log("&e&l<Bulldozer Discos>&cEsse bau nao tinha &bespaço &cpara guardar todos os blocos do inventario, passando para o proximo bau!");
log("");
else;
log("");
log("&e&l<Bulldozer Discos>&cTentei guardar os blocos e nao foi possivel, irei vender discos com eles no inventario mesmo");
log("");
break;
endif;
until(%#cont% = 0);
//Guardar pas para acelerar a venda de discos pegando mais por vez
//Loop que irá abrir baús onde estao as pas
#bau_pa_guarda = 1;
log("");
log("&e&l<Bulldozer Discos>&fGuardando &bpas &fpara acelerar a venda!");
log("");
do;
//Abre bau onde estao as pas
gui();
do;
ifmatches(%GUI%,GUICHEST);
break;
endif;
look(NORTH);
wait(1);
if(%#bau_pa_guarda% = 1);
//Bau 93
look(-75,+18);
elseif(%#bau_pa_guarda% = 2);
//Bau 92
look(-89,+19);
elseif(%#bau_pa_guarda% = 3);
//Bau 91
look(-106,+18);
elseif(%#bau_pa_guarda% = 4);
//Bau 90
look(-120,+17);
endif;
wait(1);
key(USE);
wait(3);
loop;
//Guardar pas no bau, ja aberto
//Passa pas do inventario para o bau (Somente se forem pas)
for(#i,54,89);
getslotitem(%#i%,#id);
if(%#id% = 277);
slotclick(%#i%,l,true);
wait(50ms);
endif;
next;
//Verifica se sobraram pas no inventario
#cont = 0;
for(#i,54,89);
getslotitem(%#i%,#id);
if(%#id% = 277);
inc(#cont);
wait(10ms);
endif;
next;
//Se pas contadas fecharam 0: pare
if(%#cont% = 0);
//Para o do; until(); geral
break;
endif;
//Se chegou até aqui é porque nao fechou 0, entao precisa tentar guardar em outro bau
if(%#bau_pa_guarda% < 4);
inc(#bau_pa_guarda);
log("");
log("&e&l<Bulldozer Discos>&cEsse bau nao tinha &bespaço &cpara guardar todos as pas, passando para o proximo bau!");
log("");
else;
log("");
log("&e&l<Bulldozer Discos>&cTentei guardar as pas e nao foi possivel, irei vender discos com elas no inventario mesmo");
log("");
break;
endif;
until(%#cont% = 0);
#bau_venda = 1;
gui();
//Inicia venda
do;
//Olhando e tentando abrir baus
do;
ifmatches(%GUI%,GUICHEST);
break;
endif;
look(NORTH);
wait(500ms);
if(%#bau_venda%=1);look(-50,-24);endif;
if(%#bau_venda%=2);look(-39,-28);endif;
if(%#bau_venda%=3);look(-23,-32);endif;
if(%#bau_venda%=4);look(+1,-34);endif;
if(%#bau_venda%=5);look(+23,-32);endif;
if(%#bau_venda%=6);look(+39,-28);endif;
if(%#bau_venda%=7);look(+50,-24);endif;
if(%#bau_venda%=8);look(+61,-23);endif;
if(%#bau_venda%=9);look(+74,-24);endif;
if(%#bau_venda%=10);look(+91,-26);endif;
if(%#bau_venda%=11);look(+104,-25);endif;
if(%#bau_venda%=12);look(+120,-23);endif;
if(%#bau_venda%=13);look(+130,-24);endif;
if(%#bau_venda%=14);look(+141,-28);endif;
if(%#bau_venda%=15);look(+158,-32);endif;
if(%#bau_venda%=16);look(-179,-34);endif;
if(%#bau_venda%=17);look(-159,-32);endif;
if(%#bau_venda%=18);look(-143,-27);endif;
if(%#bau_venda%=19);look(-131,-24);endif;
if(%#bau_venda%=20);look(-120,-23);endif;
if(%#bau_venda%=21);look(-106,-24);endif;
if(%#bau_venda%=22);look(-89,-26);endif;
if(%#bau_venda%=23);look(-75,-25);endif;
if(%#bau_venda%=24);look(-61,-23);endif;
if(%#bau_venda%=25);look(-50,-10);endif;
if(%#bau_venda%=26);look(-39,-12);endif;
if(%#bau_venda%=27);look(-23,-14);endif;
if(%#bau_venda%=28);look(+1,-16);endif;
if(%#bau_venda%=29);look(+23,-14);endif;
if(%#bau_venda%=30);look(+39,-12);endif;
if(%#bau_venda%=31);look(+50,-10);endif;
if(%#bau_venda%=32);look(+61,-10);endif;
if(%#bau_venda%=33);look(+74,-11);endif;
if(%#bau_venda%=34);look(+91,-11);endif;
if(%#bau_venda%=35);look(+104,-11);endif;
if(%#bau_venda%=36);look(+120,-10);endif;
if(%#bau_venda%=37);look(+130,-10);endif;
if(%#bau_venda%=38);look(+141,-12);endif;
if(%#bau_venda%=39);look(+158,-14);endif;
if(%#bau_venda%=40);look(-179,-16);endif;
if(%#bau_venda%=41);look(-159,-14);endif;
if(%#bau_venda%=42);look(-143,-12);endif;
if(%#bau_venda%=43);look(-131,-10);endif;
if(%#bau_venda%=44);look(-120,-10);endif;
if(%#bau_venda%=45);look(-106,-11);endif;
if(%#bau_venda%=46);look(-89,-11);endif;
if(%#bau_venda%=47);look(-75,-11);endif;
if(%#bau_venda%=48);look(-61,-10);endif;
if(%#bau_venda%=49);look(-50,+4);endif;
if(%#bau_venda%=50);look(-39,+4);endif;
if(%#bau_venda%=51);look(-23,+4);endif;
if(%#bau_venda%=52);look(+23,+4);endif;
if(%#bau_venda%=53);look(+39,+4);endif;
if(%#bau_venda%=54);look(+50,+4);endif;
if(%#bau_venda%=55);look(+61,+4);endif;
if(%#bau_venda%=56);look(+74,+4);endif;
if(%#bau_venda%=57);look(+91,+4);endif;
if(%#bau_venda%=58);look(+104,+4);endif;
if(%#bau_venda%=59);look(+120,+4);endif;
if(%#bau_venda%=60);look(+130,+4);endif;
if(%#bau_venda%=61);look(+141,+4);endif;
if(%#bau_venda%=62);look(+158,+4);endif;
if(%#bau_venda%=63);look(-179,+4);endif;
if(%#bau_venda%=64);look(-159,+4);endif;
if(%#bau_venda%=65);look(-143,+4);endif;
if(%#bau_venda%=66);look(-131,+4);endif;
if(%#bau_venda%=67);look(-120,+4);endif;
if(%#bau_venda%=68);look(-106,+4);endif;
if(%#bau_venda%=69);look(-89,+4);endif;
if(%#bau_venda%=70);look(-75,+4);endif;
if(%#bau_venda%=71);look(-61,+4);endif;
if(%#bau_venda%=72);look(-50,+16);endif;
if(%#bau_venda%=73);look(-39,+20);endif;
if(%#bau_venda%=74);look(-23,+22);endif;
if(%#bau_venda%=75);look(+23,+22);endif;
if(%#bau_venda%=76);look(+39,+20);endif;
if(%#bau_venda%=77);look(+50,+16);endif;
wait(2);
key(USE);
//Delay para repetir o loop de tentar abrir baú.
wait(4);
loop;
//Passando discos pro inventario
#cd67 = 0;
for(#i, 0, 53);
getslotitem(%#i%,#id);
if(%#id% = 2267);
slotclick(%#i%,l,true);
inc(#cd67);
//Se ja passou o numero maximo de discos que cabem no inventário: pare
if(%#cd67% >= 36);
break;
endif;
endif;
wait(20ms);
next;
getslotitem(54,#id,#stack);
//Se inventario cheio de discos: Iniciando venda
if((%#stack% != 0) || (%#bau_venda% = 77));
if(%#cd67% != 3);
//Verifica quantos discos passaram realmente para o inventario
#cd67 = 3;
wait(100ms);
gui(INVENTORY);
for(#i,9,44);
getslotitem(%#i%,#id);
if(%#id%=2267);
inc(#cd67);
endif;
next;
//Loop para garantir que o personagem irá chegar na home de cds
log("");
log("&e&l<Bulldozer Discos>&3Indo para /home discos...");
log("");
}$$/home discos$${
wait(7);
do;
if((%#xc%=%XPOS%)&&(%#yc%=%YPOS%)&&(%#zc%=%ZPOS%));
break;
else;
log("");
log("&e&l<Bulldozer Discos>&cAlgo deu errado! Essas coordenadas nao sao da /home discos. &fTentando ir para /home discos");
log("");
}$$/home discos$${
wait(5);
endif;
loop;
gui();
//Se tiver cds no inventario
if(%#cd67%!=3);
wait(50ms);
do(%#cd67%);
key(attack);
wait(350ms);
loop;
endif;
log("&e&l<Bulldozer Discos>&fDiscos vendidos, &3voltando a trap para pegar mais!");
//Loop para garantir que o personagem irá chegar na home de baus
log("");
log("&e&l<Bulldozer Discos>&3Voltando para /home trapbaus...");
log("");
}$$/home trapbaus$${
wait(7);
do;
if((%#xt%=%XPOS%)&&(%#yt%=%YPOS%)&&(%#zt%=%ZPOS%));
break;
else;
log("");
log("&e&l<Bulldozer Discos>&cAlgo deu errado! Essas coordenadas nao sao da /home trapbaus. &fTentando ir para /home xlyz trapbaus");
log("");
}$$/home trapbaus$${
wait(7);
endif;
loop;
else;
log("");
log("&e&l<Bulldozer Discos>&c&lInventário sem discos, verificando próximo baú!");
log("");
endif;
//Se entrou aqui por causa do bau 77 e ja vendeu, ira finalizar a venda
if(%#bau_venda% = 77);
log("");
log("&e&l<Bulldozer Discos>&f&lTodos os discos dos baus foram vendidos com sucesso, &2&lfim da venda!");
#bau = 1;
set(baus_disponiveis);
log("");
break;
endif;
//Se inventario ainda nao encheu de discos
elseif(%#stack% = 0);
//Incrementa bau
if(%#bau_venda% < 77);
inc(#bau_venda);
gui();
else;
log("");
log("&e&l<Bulldozer Discos>&f&lTodos os discos dos baus foram vendidos com sucesso, &2&lfim da venda!");
#bau = 1;
set(baus_disponiveis);
log("");
break;
endif;
endif;
loop;
//Loop que irá abrir baús onde estao as pas para pegar novamente depois da venda
#cont = 0;
#bau_pa = 1;
do;
//Abre bau onde estao as pas
gui();
do;
ifmatches(%GUI%,GUICHEST);
break;
endif;
look(NORTH);
wait(1);
if(%#bau_pa% = 1);
//Bau 93
look(-75,+18);
elseif(%#bau_pa% = 2);
//Bau 92
look(-89,+19);
elseif(%#bau_pa% = 3);
//Bau 91
look(-106,+18);
elseif(%#bau_pa% = 4);
//Bau 90
look(-120,+17);
endif;
wait(1);
key(USE);
wait(3);
loop;
//Pegar pas do bau, ja aberto
//Passa pas do bau para o inventario (Somente se forem pas)
for(#i,0,53);
getslotitem(%#i%,#id);
if(%#id% = 277);
slotclick(%#i%,l,true);
inc(#cont);
wait(100ms);
endif;
//Se pas colocadas no inventario ja somaram 6 ou mais: Pare
if(%#cont% >= 6);
break;
endif;
next;
if(%#cont% >= 6);
//Para o do; until(); geral
break;
endif;
if(%#bau_pa% < 4);
inc(#bau_pa);
log("");
log("&e&l<Bulldozer>&cEsse bau nao tinha &bpas &csuficientes, procurando no proximo bau!");
log("");
else;
log("");
log("&e&l<Bulldozer>&cProcurei nos 4 baus que fui programada e dentro deles nao encontrei 6 &bpas &cpara iniciar a macro.");
log("&8___________________________________________________");
log("&e&l<Bulldozer>&4&lSuspensa!");
#cod_off = 4;
&time = "&b&l*Hora: &f&l%TIME% &0/ &b&l*Data: &f&l%DATE% &f(Ano-Mês-Dia)";
press(f2);
playsound(random.break);
wait(200ms);
playsound(random.break);
wait(100ms);
playsound(random.break);
if(%@#ups_skill% = 1);
&skill_up = "&b&l*Você upou &9&n&l%@#ups_skill%&b&l nível na ultima vez que a macro trabalhou!";
elseif(%@#ups_skill% > 1);
&skill_up = "&b&l*Você upou &9&n&l%@#ups_skill%&b&l níveis na ultima vez que a macro trabalhou!";
else;
&skill_up = "";
endif;
//Guarda money ganho
if(%@#discos% > 0);
#total = %@#discos% * 95;
&money = "&2&l*Você vendeu &a&n&l%@#discos%&2&l discos, e ganhou &b&n&l%#total%&2&l Coins!";
else;
&money = "";
endif;
log("");
unset(@xlyz);
stop();
endif;
gui();
until(%#cont% >= 6);
//Loop que irá abrir baús onde esta o material para pegar novamente depois da venda
#cont = 0;
#bau_material = 1;
do;
//Abre bau onde estao os materiais
gui();
do;
ifmatches(%GUI%,GUICHEST);
break;
endif;
look(NORTH);
wait(1);
if(%#bau_material% = 1);
//Bau 89
look(-131,+16);
elseif(%#bau_material% = 2);
//Bau 88
look(-143,+20);
elseif(%#bau_material% = 3);
//Bau 87
look(-159,+22);
elseif(%#bau_material% = 4);
//Bau 86
look(-179,+24);
elseif(%#bau_material% = 5);
//Bau 85
look(+158,+22);
elseif(%#bau_material% = 6);
//Bau 84
look(+141,+20);
elseif(%#bau_material% = 7);
//Bau 83
look(+130,+16);
endif;
wait(1);
key(USE);
wait(3);
loop;
//Pegar material do bau, ja aberto
//Passa materiais do bau para o inventario (Somente se for o material selecionado para escavar)
for(#i,0,53);
getslotitem(%#i%,#id);
if(%#id% = %#bloco%);
slotclick(%#i%,l,true);
inc(#cont);
wait(100ms);
endif;
//Se material colocado no inventario junto com o que ja tinha, somou 12 ou mais: Pare
if(%#cont% = 12);
break;
endif;
next;
//Se chegou aqui e ja somou 12, é porque parou (break) la em cima, entao precisa parar o loop de pegar material
if(%#cont% = 12);
//Para o do; until(); geral do material
break;
endif;
//Se chegou até aqui é porque nao somou 12, entao precisa verificar em outro bau
if(%#bau_material% < 7);
inc(#bau_material);
log("");
log("&e&l<Bulldozer>&cEsse bau nao tinha &bmaterial &csuficiente, procurando no proximo bau!");
log("");
else;
log("");
log("&e&l<Bulldozer>&cProcurei nos 7 baus que fui programada e dentro deles nao encontrei &bmaterial &cpara repor.");
log("&8___________________________________________________");
log("&e&l<Bulldozer>&4&lSuspensa!");
#cod_off = 8;
&time = "&b&l*Hora: &f&l%TIME% &0/ &b&l*Data: &f&l%DATE% &f(Ano-Mês-Dia)";
press(f2);
playsound(random.break);
wait(200ms);
playsound(random.break);
wait(100ms);
playsound(random.break);
if(%@#ups_skill% = 1);
&skill_up = "&b&l*Você upou &9&n&l%@#ups_skill%&b&l nível na ultima vez que a macro trabalhou!";
elseif(%@#ups_skill% > 1);
&skill_up = "&b&l*Você upou &9&n&l%@#ups_skill%&b&l níveis na ultima vez que a macro trabalhou!";
else;
&skill_up = "";
endif;
//Guarda money ganho
if(%@#discos% > 0);
#total = %@#discos% * 95;
&money = "&2&l*Você vendeu &a&n&l%@#discos%&2&l discos, e ganhou &b&n&l%#total%&2&l Coins!";
else;
&money = "";
endif;
log("");
unset(@xlyz);
stop();
endif;
until(%#cont% = 12);
//Verifica se pegou mais blocos do que deveria
#blocos_sobraram = 0;
for(#i, 54, 89);
getslotitem(%#i%,#id);
if(%#id% = %#bloco%);
inc(#blocos_sobraram);
endif;
next;
//Se blocos bugaram
if(%#blocos_sobraram% > 14);
//Passa materiais sobrando do inventario para o bau (Somente se for o material selecionado para escavar)
#blocos_removidos = 0;
for(#i,54,89);
getslotitem(%#i%,#id);
if(%#id% = %#bloco%);
slotclick(%#i%,l,true);
inc(#blocos_removidos);
wait(50ms);
endif;
if((%#blocos_sobraram% - %#blocos_removidos%) <= 12);
break;
endif;
next;
endif;
gui();
//Loop para garantir que o personagem irá chegar na home de escavar
log("");
log("&e&l<Bulldozer>&3Voltando para /home escavar...");
log("");
}$$/home escavar$${
wait(7);
do;
if((%#xe%=%XPOS%)&&(%#ye%=%YPOS%)&&(%#ze%=%ZPOS%));
break;
else;
log("");
log("&e&l<Bulldozer>&cAlgo deu errado! Essas nao sao as coordenadas da /home escavar. &fTentando ir para /home escavar");
log("");
}$$/home escavar$${
wait(7);
endif;
loop;
gui();
//Se baus estiverem cheios e o usuario nao quer vender discos
elseif((!baus_disponiveis) && (!vender_discos));
if(ta_na_trap);
unset(ta_na_trap)
//Loop para garantir que o personagem irá chegar na home de escavar
log("");
log("&e&l<Bulldozer>&3Voltando para /home escavar...");
log("");
}$$/home escavar$${
wait(7);
do;
if((%#xe%=%XPOS%)&&(%#ye%=%YPOS%)&&(%#ze%=%ZPOS%));
break;
else;
log("");
log("&e&l<Bulldozer>&cAlgo deu errado! Essas nao sao as coordenadas da /home escavar. &fTentando ir para /home escavar");
log("");
}$$/home escavar$${
wait(7);
endif;
loop;
endif;
gui();
endif;
endif;
loop;
endif;
}$$
$${
if(@xlyz);
&pl = %PLAYER%;
//Login
ifmatches(%CHATCLEAN%,"»Bem vindo de volta. Por favor digite /login sua-senha.");
set(@logando);
log("&e&l»Bulldozer»&d&lVoce esta reconectando, vou fazer login...");
}$$/login SUA-SENHA$${
endif;
//Lista de comandos
ifmatches(%CHATCLEAN%,"%&pl%: comandos");
gui(CHAT);
log("");
log("");
log("");
log("&b@&9@&b@&9@&b@&9@&b@&9@&b@&9@&b@&9@&b@&9@&b@&9@&b@&9@&b@&9@&b@&9@&b@&9@&b@&9@&b@&9@&b@&9@&b@&9@&b@&9@&b@&9@&b@&9@&b@&9@");
log("&e&l<Bulldozer>&d&lComandos da macro:");
log("");
log("&b&l»Digite:&e&lauto tell &fou &e&lat &fpara alternar entre &2ligado &fou &cdesligado &fo tell automatico!");
log("&b&l»Digite:&e&lquantos niveis &fpara saber quantos níveis de escavaçao você upou!");
log("&b&l»Digite:&e&lqlivros &fpara saber quais livros você pegou!");
log("&b&l»Digite:&e&lreset livros &fpara zerar o contador de livros!");
log("&b&l»Digite:&e&lcreditos &fpara conhecer mais sobre a &e&lBulldozer&f e pegar o link do tópico!");
log("&b@&9@&b@&9@&b@&9@&b@&9@&b@&9@&b@&9@&b@&9@&b@&9@&b@&9@&b@&9@&b@&9@&b@&9@&b@&9@&b@&9@&b@&9@&b@&9@&b@&9@&b@&9@&b@&9@&b@&9@");
log("");
endif;
//Desativar @logando
ifmatches(%CHATCLEAN%,"»Agora você está logado. NUNCA use a mesma senha do Craftlandia em outros servidores. JAMAIS passe sua senha para outras pessoas. Admins NUNCA irao pedir sua senha!");
unset(@logando);
log("&e&l»Bulldozer»&2&lVocê logou com sucesso!");
endif;
ifmatches(%CHATCLEAN%,"»Você já está logado!");
if(@logando);
unset(@logando);
log("&e&l»Bulldozer»&7&lAlarme falso!");
endif;
endif;
ifmatches(%CHATCLEAN%,"»Senha incorreta");
if(@logando);
log("&e&l»Bulldozer»&4&lNossa! Parece que você colocou a senha errada na macro. Parabéns... Nunca vai logar!!! ");
log("&e&l»Bulldozer»&7&lFATAL ERROR!!!");
endif;
endif;
//Liga ou desliga auto tell
ifmatches(%CHATCLEAN%,"%&pl%: auto tell");
if(auto_tell);
unset(auto_tell);
log("&e&l<Bulldozer>&2&l[Auto tell]&4&lOFF: &cNao irei responder tell's automaticamente...");
else;
set(auto_tell);
log("&e&l<Bulldozer>&2&l[Auto tell]&b&lON: &aIrei responder tell's automaticamente...");
endif;
endif;
ifmatches(%CHATCLEAN%,"%&pl%: at");
if(auto_tell);
unset(auto_tell);
log("&e&l<Bulldozer>&2&l[Auto tell]&4&lOFF: &cNao irei responder tell's automaticamente...");
else;
set(auto_tell);
log("&e&l<Bulldozer>&2&l[Auto tell]&b&lON: &aIrei responder tell's automaticamente...");
endif;
endif;
//Auto-tell
ifmatches(%CHATCLEAN%,"\(Mensagem de ([a-zA-Z0-9\-_]{2,16})\): .*");
if(auto_tell);
match(%CHATCLEAN%,"\(Mensagem de ([a-zA-Z0-9\-_]{2,16})\): (.*)",{&nickname,&message});
logto("[%SERVER%] Bulldozer.txt","[%DATE%][%TIME%] %&nickname%: %&message%");
playsound(random.drink);
inc(@#tell);
if(%@#tell% > 5);
unset(auto_tell);
log("&e&l<Bulldozer>&2&l[Auto tell]&d&lMuitas respostas de tell, aguardando...");
wait(10);
set(auto_tell);
@#tell = 0;
else;
}$$/r [AFK upando/macro bulldozer by xlyz]: Sua mensagem foi gravada e irei responde-la posteriormente $${
endif;
endif;
endif;
//Pausa para limpar o chao
ifmatches(%CHATCLEAN%,"\[Server\] » Limpando itens do chao em 5s");
set(@limpando);
wait(7);
unset(@limpando);
endif;
//Conta money ganho com venda de discos
ifmatches(%CHATCLEAN%,"Voce vendeu 1 Record 12 para AdminShop por 100.00 Coins.");
log("Qisso?");
inc(@#discos);
endif;
//Verifica niveis upados
ifmatches(%CHATCLEAN%,"Habilidade em Escavaçao aumentada em 1. Total");
log("");
playsound(random.orb);
wait(100ms);
playsound(random.orb);
wait(100ms);
playsound(random.orb);
log("&e&l<Bulldozer>&2&lOpa! Que bom, mais um nível upado!!!");
log("");
inc(@#ups_skill);
endif;
//Mostra niveis upados com macro ligada
ifmatches(%CHATCLEAN%,"%&pl%: quantos niveis");
if(%@#ups_skill% = 1);
log("&e&l<Bulldozer>&b&lVocê upou &b&n&l%@#ups_skill%&b&l nível até agora!");
elseif(%@#ups_skill% > 1);
log("&e&l<Bulldozer>&2&lVocê upou &2&n&l%@#ups_skill%&2&l níveis até agora!");
else;
log("&e&l<Bulldozer>&6&lVocê ainda nao upou. :'(");
endif;
endif;
//Contador de livros by Casal WIN
setlabel(LV,&7&lLivros Bulldozer: %#livro%,LV);
ifmatches(%CHATCLEAN%,"%&pl% encontrou um livro:");
#livro=%#livro%+1;
setlabel(LV,&7&lLivros Bulldozer: %#livro%,LV);
log("&e&lVocê encontrou um livro!");
ACHIEVEMENTGET("Contagem by:Casal WIN",351:4);
}$$/g [macro bulldozer by xlyz] opa, +1 livro hehe!!!$${
playsound(random.click);
wait(50ms);
playsound(tile.piston.out);
endif;
ifmatches(%CHATCLEAN%,"%&pl% encontrou um livro: Tesouro Nível 1");
#nv1=%#nv1%+1;
endif;
ifmatches(%CHATCLEAN%,"%&pl% encontrou um livro: Tesouro Nível 2");
#nv2=%#nv2%+1;
endif;
ifmatches(%CHATCLEAN%,"%&pl% encontrou um livro: Tesouro Nível 3");
#nv3=%#nv3%+1;
endif;
ifmatches(%CHATCLEAN%,"%&pl% encontrou um livro: Tesouro Nível 4");
#nv4=%#nv4%+1;
endif;
ifmatches(%CHATCLEAN%,"%&pl% encontrou um livro: Tesouro Nível 5");
#nv5=%#nv5%+1;
endif;
ifmatches(%CHATCLEAN%,"%&pl% encontrou um livro: Tesouro Nível 6");
#nv6=%#nv6%+1;
endif;
ifmatches(%CHATCLEAN%,"%&pl% encontrou um livro: Tesouro Nível 7");
#nv7=%#nv7%+1;
endif;
ifmatches(%CHATCLEAN%,"%&pl% encontrou um livro: Tesouro Nível 8");
#nv8=%#nv8%+1;
endif;
ifmatches(%CHATCLEAN%,"%&pl% encontrou um livro: Tesouro Nível 9");
#nv9=%#nv9%+1;
endif;
ifmatches(%CHATCLEAN%,"%&pl% encontrou um livro: Tesouro Nível 10");
#nv10=%#nv10%+1;
endif;
ifmatches(%CHATCLEAN%,"%&pl% encontrou um livro: Tesouro Nível 11");
#nv11=%#nv11%+1;
endif;
ifmatches(%CHATCLEAN%,"%&pl%: qlivros");
log( &a\o/ );
log(&f&lLivros pegos
;
#total=%#nv1%+%#nv2%+%#nv3%+%#nv4%+%#nv5%+%#nv6%+%#nv7%+%#nv8%+%#nv9%+%#nv10%+%#nv11%;
log(&f&fNivel &6&l1&f&l: &a&l%#nv1%);
log(&f&lNivel &6&l2&f&l: &a&l%#nv2%);
log(&f&lNivel &6&l3&f&l: &a&l%#nv3%);
log(&f&lNivel &6&l4&f&l: &a&l%#nv4%);
log(&f&lNivel &6&l5&f&l: &a&l%#nv5%);
log(&f&lNivel &6&l6&f&l: &a&l%#nv6%);
log(&f&lNivel &6&l7&f&l: &a&l%#nv7%);
log(&f&lNivel &6&l8&f&l: &a&l%#nv8%);
log(&f&lNivel &6&l9&f&l: &a&l%#nv9%);
log(&f&lNivel &c&l10&f&l: &a&l%#nv10%);
log(&f&lNivel &4&l11&f&l: &a&l%#nv11%);
log(&f&lTOTAL: &d&l%#total%);
endif;
ifmatches(%CHATCLEAN%,"%&pl%: reset livros");
#livro=0;
#nv1=0;
#nv2=0;
#nv3=0;
#nv4=0;
#nv5=0;
#nv6=0;
#nv7=0;
#nv8=0;
#nv9=0;
#nv10=0;
#nv11=0;
setlabel(LV,&7&lLivros Bulldozer: %#livro%,LV);
log(&e&lLivros resetados!);
endif;
ifmatches(%CHATCLEAN%,"%&pl%: creditos");
log("");
log("&a@&2@&a@&2@&a@&2@&a@&2@&a@&2@&a@&2@&a@&2@&a@&2@&a@&2@&a@&2@&a@&2@&a@&2@&a@&2@&a@&2@&a@&2@&a@&2@&a@&2@&a@&2@&a@&2@&a@&2@&a@&2@");
log("&e&l»Macro Principal Escavaçao 'Bulldozer' by &f&l&n&oxlyz&e&l!»");
log("&e&l»Bulldozer»&f&lXLYZ &5&lOwna!");
log("&d*Link: http://forum.craftlandia.com.br/ipb/index.php?/topic/590814-macro-escava%C3%A7%C3%A3o-bulldozer/");
log("");
log("&9&l»»SubMacro 'Contador de Livros' by &f&lJohnnyWin&9&l!»");
log("&9&l»Contador»&f&lWIN &5&lOwna!");
log("&d*Link: http://forum.craftlandia.com.br/ipb/index.php?/topic/507545-macro-contagem-de-livros-encontrados/");
log("");
log("&2&l»»SubMacro 'Auto tell' by &f&l13darkfire13&2&l!»");
log("&2&l»AutoTell»&f&l13darkfire13 &5&lOwna!");
log("&d*Link: http://forum.craftlandia.com.br/ipb/index.php?/topic/289315-macro-afk-salva-logs-shop/");
log("");
log("&9Copyleft – all rights reversed");
log("&b&lObrigado! &4<3");
log("&a@&2@&a@&2@&a@&2@&a@&2@&a@&2@&a@&2@&a@&2@&a@&2@&a@&2@&a@&2@&a@&2@&a@&2@&a@&2@&a@&2@&a@&2@&a@&2@&a@&2@&a@&2@&a@&2@&a@&2@&a@&2@");
log("");
gui(chat);
endif;
endif;
}$$