Bom, decidi começar o post com o que me levou a fazer esta macro, eu e uns amigos meus que estavam querendo começar a upar escavação em region estavamos procurando alguma macro que aguentasse o trabalho porém não conseguimos achar nenhuma que tivesse um funcionamento OK para o servidor legacy, e devido à minha curiosidade de programar uma macro junto com a necessidade de tal eu decidi fazer uma macro de escavação, então essa é minha primeira macro e todas críticas construtivas e denuncias de BUGS serão bem vindos(as).
O funcionamento da macro se resume em upar, vender discos se for selecionado, armazenar itens dropados e trocar as pás se assim for requisitado
Lembrando também que é extremamente recomendado que você leia o tópico todo para entender o funcionamento da macro por completo.
Antes de começar o tutorial da macro gostaria de dar agradecimentos especiais ao IsauBR que me ajudou a testar a macro, e ao meu irmão que me ajudou à programa-la no começo
Vamos iniciar pelo inv para upar
1 pá na hotbar
Blocos que utilizará para reparar a pá
Blocos que utilizará para escavar
Blocos que utilizará para reparar a pá
Blocos que utilizará para escavar
1 pá na hotbar
blocos que utilizará para upar
blocos que utilizará para upar
IMPORTANTE
O inventário para upar se alimentando não é interferido por exemplo se você está reparando a pá ou trocando você apenas irá colocar alguma comida no primeiro slot, e os blocos de diamante no slot 8 assim como na imagem a seguir:
Comidas que são recomendadas serem utilizadas
- Pão.
- Carne de boi.
- Carne de porco.
- Carne de frango.
- Peixe cozido.
(O resto a macro guarda no baú na hora de armazenar)
e também eu creio que essas são as melhores comidas para manter sua barra de fome cheia.
Começando pelas sethomes que sao 4, sendo somente 2 obrigatórias e explicadas com mais detalhes nas prints:
home esc
home bau
home discovenda
home comida
Antes do ínicio do tutorial lembrando que se for de seu desejo você pode alterar as homes no código, eu deixei indicado onde é para alterar na print ( LEMBRE-SE DE NÃO REMOVER O ; ).
A home para UP
TRAP DE ARMAZENAMENTO DE ITENS DROPADOS / TROCA DE PÁS PARA NÃO VIPS E REABASTECIMENTO DE BLOCOS PARA REPARAÇÃO
SETANDO A HOME PARA ARMAZENAR/TROCAR PÁS (É DE EXTREMA IMPORTÂNCIA SETAR A HOME NO MEIO DO BLOCO) QUE NO CASO DA MINHA TRAP É TIJOLO MAS PODE SER QUALQUER BLOCO
E TAMBÉM É DE EXTREMA IMPORTANCIA QUE OS BAÚS SEJAM VIRADOS PARA O NORTE
O BAÚ COM BLOCOS DE REPARAÇÃO FICARÁ ASSIM NA TRAP
NO BAÚS DE REABASTECIMENTO DE BLOCOS PARA A REPARAÇÃO VOCÊ IRÁ APENAS COLOCAR BLOCOS QUE IRÁ UTILIZAR PARA REPARAR (NÃO IMPORTA A QUANTIDADE NEM SE O BAÚ ESTIVER CHEIO OU NÃO
BAÚS DAS PÁS (VIRADOS PARA O O CONTRARIO DOS BAÚS DE ARMAZENAMENTO (SUL) )
( ISSO CASO SELECIONE A OPÇÃO DE TROCAR AS PÁS )
UMA OBSERVAÇÃO EXTREMAMENTE IMPORTANTE DE RESSALTAR SOBRE OS BAÚS DE PÁS NOVAS É QUE MESMO ELES NÃO ESTANDO CHEIOS DE PÁS É DE EXTREMA IMPORTÂNCIA DEIXAR UMA PÁ NO ULTIMO SLOT EXATAMENTE COMO NA IMAGEM A SEGUIR POR QUE A MACRO IRÁ VERIFICAR O ULTIMO SLOT DO BAÚ PARA PASSAR PARA O PRÓXIMO
E O BAÚ DE PÁS VELHAS NÃO É NECESSARIO NADA DE MAIS MAS LEMBRE-SE DE QUANDO FOR DEIXAR UPANDO COLOCAR PÁS NOS BAÚS
E TAMBÉM LEMBRANDO QUE SE A OPÇÃO DE TROCAR DE PÁS FOR SELECIONADA A MACRO UTILIZA SOMENTE UMA PÁ ATÉ A DURABILIDADE SELECIONADA E TROCA
SE SELECIONADA A VENDA DE DISCOS VOCÊ IRÁ SETAR HOME QUE ESTÁ SENDO MOSTRADA NA IMAGEM OLHANDO PARA A PLACA DO DISCO AZUL (O ÚNICO QUE A ESCAVAÇÃO DROPA) SE FOR VIP SETE A HOME NA WARP VIP SE NÃO FOR SETE NA WARP LOJA ( NÃO FAZ DIFERENÇA )
DA MESMA FORMA QUE NA HOME DE DISCOS VOCÊ IRÁ SETAR A HOME INDICADA NA IMAGEM OLHANDO PARA A PLACA DA COMIDA QUE DESEJA
--------> A parte de alimentação automática é recomendada para não vips, para não cancelar a /home com delay pelo dano da fome
A home para UP
TRAP DE ARMAZENAMENTO DE ITENS DROPADOS / TROCA DE PÁS PARA NÃO VIPS E REABASTECIMENTO DE BLOCOS PARA REPARAÇÃO
SETANDO A HOME PARA ARMAZENAR/TROCAR PÁS (É DE EXTREMA IMPORTÂNCIA SETAR A HOME NO MEIO DO BLOCO) QUE NO CASO DA MINHA TRAP É TIJOLO MAS PODE SER QUALQUER BLOCO
E TAMBÉM É DE EXTREMA IMPORTANCIA QUE OS BAÚS SEJAM VIRADOS PARA O NORTE
O BAÚ COM BLOCOS DE REPARAÇÃO FICARÁ ASSIM NA TRAP
NO BAÚS DE REABASTECIMENTO DE BLOCOS PARA A REPARAÇÃO VOCÊ IRÁ APENAS COLOCAR BLOCOS QUE IRÁ UTILIZAR PARA REPARAR (NÃO IMPORTA A QUANTIDADE NEM SE O BAÚ ESTIVER CHEIO OU NÃO
BAÚS DAS PÁS (VIRADOS PARA O O CONTRARIO DOS BAÚS DE ARMAZENAMENTO (SUL) )
( ISSO CASO SELECIONE A OPÇÃO DE TROCAR AS PÁS )
UMA OBSERVAÇÃO EXTREMAMENTE IMPORTANTE DE RESSALTAR SOBRE OS BAÚS DE PÁS NOVAS É QUE MESMO ELES NÃO ESTANDO CHEIOS DE PÁS É DE EXTREMA IMPORTÂNCIA DEIXAR UMA PÁ NO ULTIMO SLOT EXATAMENTE COMO NA IMAGEM A SEGUIR POR QUE A MACRO IRÁ VERIFICAR O ULTIMO SLOT DO BAÚ PARA PASSAR PARA O PRÓXIMO
E O BAÚ DE PÁS VELHAS NÃO É NECESSARIO NADA DE MAIS MAS LEMBRE-SE DE QUANDO FOR DEIXAR UPANDO COLOCAR PÁS NOS BAÚS
E TAMBÉM LEMBRANDO QUE SE A OPÇÃO DE TROCAR DE PÁS FOR SELECIONADA A MACRO UTILIZA SOMENTE UMA PÁ ATÉ A DURABILIDADE SELECIONADA E TROCA
SE SELECIONADA A VENDA DE DISCOS VOCÊ IRÁ SETAR HOME QUE ESTÁ SENDO MOSTRADA NA IMAGEM OLHANDO PARA A PLACA DO DISCO AZUL (O ÚNICO QUE A ESCAVAÇÃO DROPA) SE FOR VIP SETE A HOME NA WARP VIP SE NÃO FOR SETE NA WARP LOJA ( NÃO FAZ DIFERENÇA )
DA MESMA FORMA QUE NA HOME DE DISCOS VOCÊ IRÁ SETAR A HOME INDICADA NA IMAGEM OLHANDO PARA A PLACA DA COMIDA QUE DESEJA
--------> A parte de alimentação automática é recomendada para não vips, para não cancelar a /home com delay pelo dano da fome
Configurando a macro;
Primeiramente você irá pegar este código
$${
// DELAY DE VERIFICACAO DO INVENTARIO (ALTERE SE JULGAR NECESSÁRIO)//
#del = 700;
// HOME PARA ESCAVAR //
&homeescava = esc;
// HOME DE VENDA DE DISCOS //
&homediscos = discovenda;
// HOME DE COMPRAR COMIDA //
&homecomida = comida;
// HOME TRAP BAUS //
&dropbaus = baus;
// ALTERE AS HOMES SE QUISER, MAS ALTERE SOMENTE DEPOIS DO SINAL DE = //
if(cavando);
log( );
log("&b&l[MACRO] &4&lEscavaçao by zMrDavi &e&l (OFF)");
echo("/g &4zmrdavi &9escavacao &a1.4 &9[&4off&9].);
log( );
unset(mrd);
unset(cavando);
unset(armazena);
unset(@cavar);
unset(perg);
stop();
else;
log( );
log("&b&l[MACRO] &4&lEscavacao by zMrDavi &e&l (ON)");
log( );
set(cavando);
set(armazena);
endif;
//====================== NAO ALTERE =====================//
#bau=1;
#pasnovas = 0;
#baupasnovas = 1;
#baupasvelhas = 1;
#trocapa = 0;
#cboi = 364;
#cpeixecozido = 350;
#cporco = 320;
#cfrango = 366;
#pao = 297;
//====================== NAO ALTERE =====================//
if(%#bloco%=nothing);
set(perg);
#config=2;
endif;
if(%#pa%=nothing);
set(perg);
#config=2;
endif;
if(%#dur%=nothing);
set(perg);
#config=2;
endif;
if(%#del%=nothing);
set(perg);
#config=2;
endif;
if(%#hit%=nothing);
set(perg);
#config=2;
endif;
if(perg);
else;
PROMPT(#config,$$?,"Deseja retomar sua ultima configuração feita? [1]=SIM // [2]=NÃO");
endif;
IFBEGINSWITH(%#config%,2);
IFENDSWITH(%#config%,2);
PROMPT(#vip,$$?,DIGITE [1] = VIP(Reparar pá) // [2] = NÃO VIP(Trocar pá ou reparar se desejado));
prompt(#itens,$$?,Deseja guardar itens? [1] = SIM // [2] = NÃO);
prompt(#fome,$$?,Deseja se alimentar quando estiver com a fome baixa? [1] = SIM (RECOMENDADO PARA NÃO VIPS) ///// [2] = NÃO);
if(%#vip%=2);
prompt(#trocapa,$$?,"Deseja trocar pás ou reparar [1] = TROCAR // [2] = REPARAR");
endif;
PROMPT(#bloco,$$i,Selecione o bloco que irá utilizar para upar.);
PROMPT(#pa,$$i,Selecione a pá que usará);
if(%#pa%=277);#rep=57;#hit=1;endif;
if(%#pa%=256);#rep=42;#hit=15;endif;
if(%#pa%=284);#rep=41;#hit=15;endif;
if(%#pa%=269);#rep=17;#hit=15;endif;
if(%#pa%=273);#rep=1;#hit=15;endif;
PROMPT(#dur,$$?,Deseja reparar ou trocar sua pá em qual durabilidade?);
#dur=%#dur%;
prompt(#disc,$$?,Deseja vender discos?[1]=SIM//[2]=NAO);
if((%#bloco%=nothing)||(%#pa%=nothing)||(%#dur%=nothing)||(%#del%=nothing)||(%#vip%=nothing)||(%#config%=null)||(%#disc%=nothing)||(%#fome%=nothing));
clearchat;
log("&5&lHá alguma(s) pergunta(s) que nao foi/foram respondida(s), por favor reconfigure a macro");
unset(mrd);
unset(cavando);
unset(armazena);
unset(@cavar);
unset(perg);
stop();
endif;
ENDIF;
ENDIF;
if(%#vip%=1);
echo("/home %&homeescava%");
wait(2);
endif;
if(%#vip%=2);
echo("/home %&homeescava%");
wait(7);
endif;
echo("/g &4zmrdavi &9escavacao &a1.4 &9[&aon&9].);
IFMATCHES(%DIRECTION%,N);
&near=NORTH;
ENDIF;
IFMATCHES(%DIRECTION%,S);
&near=SOUTH;
ENDIF;
IFMATCHES(%DIRECTION%,W);
&near=WEST;
ENDIF;
IFMATCHES(%DIRECTION%,E);
&near=EAST;
ENDIF;
if(%&near%=north);
¬near = south;
endif;
if(%&near%=south);
¬near = north;
endif;
if(%&near%=east);
¬near = west;
endif;
if(%&near%=west);
¬near = east;
endif;
set(mrd);
set(@cavar);
if(mrd);
look(%&near%);
look(,30);
do;
if(%#fome%=1);
keydown(jump);
wait(500ms);
keyup(jump);
endif;
getslotitem(1,#id,#stack,#x);
if((%#fome%=1)&&(%#stack%<16));
echo("/home %&homecomida%");
if(%#vip%=1);
wait(4);
endif;
if(%#vip%=2);
wait(8);
endif;
keydown(jump);
wait(1);
keyup(jump);
wait(1);
echo("/menuloja off");
echo("/esconder");
keydown(sneak);
wait(1);
key(use);
wait(1);
keyup(sneak);
echo("/home esc");
if(%#vip%=1);
wait(3);
endif;
if(%#vip%=2);
wait(7);
endif;
else;
endif;
do(%#del%);
pick(%#bloco%);
key(use);
wait(1ms);
pick(%#pa%);
if((%#fome%=1)&&(%HUNGER%<7));
wait(1);
keydown(jump);
wait(1);
keyup(jump);
wait(1);
DO;
slot(9);
key(use);
UNTIL(%HUNGER%=20);
endif;
if((%DURABILITY%<%#dur%)&&(%#vip%=1)||(%DURABILITY%<%#dur%)&&(%#trocapa%=2));
look(%&near%);
look(,90);
key(use);
getslotitem(8,#id,#stack);
if(%#stack%<1);
wait(2);
echo("/home %&dropbaus%");
if(%#vip%=1);
wait(4);
endif;
if(%#vip%=2);
wait(8);
endif;
looks(,60);
wait(1);
key(use);
wait(2);
for(#slotbdima,0,26);
getslotitem(#slotbdima,#id,#stack);
if(%#id%=%#rep%);
slotclick(#slotbdima,l,true);
endif;
next;
echo("/home %&homeescava%");
if(%#vip%=1);
wait(4);
endif;
if(%#vip%=2);
wait(8);
endif;
endif;
endif;
if((%DURABILITY%<%#dur%)&&(%#trocapa%=1));
echo("/home %&dropbaus%");
wait(8);
keydown(jump);
wait(500ms);
keyup(jump);
if(%#baupasvelhas%=1);
looks(150,10);
wait(1);
endif;
if(%#baupasvelhas%=2);
looks(150,30);
wait(1);
endif;
key(use);
wait(2);
for(#slotpasv,54,89);
getslotitem(%#slotpasv%,#id,#stack);
if(%#id%=%#pa%);
slotclick(%#slotpasv%,l,true);
wait(30ms);
endif;
next;
wait(500ms);
getslotitem(53,#id,#stack);
wait(500ms);
if(%#stack%!=0);
inc(#baupasvelhas);
else;
endif;
gui();
if(%#baupasnovas%=1);
looks(210,10);
wait(1);
endif;
if(%#baupasnovas%=2);
looks(210,30);
wait(1);
endif;
key(use);
wait(2);
for(#slotpasn,0,53);
getslotitem(%#slotpasn%,#id,#stack);
if(%#id%=%#pa%);
slotclick(%#slotpasn%,l,true);
wait(30ms);
inc(#pasnovas);
if(%#pasnovas%=1);
#pasnovas=0;
break;
else;
endif;
endif;
next;
wait(500ms);
getslotitem(53,#id,#stack);
wait(500ms);
if(%#stack%=0);
inc(#baupasnovas);
else;
endif;
gui();
echo("/home %&homeescava%");
wait(8);
endif;
if((%#baupasnovas%>2)||(%#baupasvelhas%>2));
unset(mrd);
unset(cavando);
unset(armazena);
unset(@cavar);
unset(perg);
log("&c&lAcabaram as pás, finalizando a macro);
stop();
endif;
look(%&near%);
look(,30);
do(%#hit%);
key(attack);
loop;
loop;
if((armazena)&&(%#itens%=1));
gui(inventory);
wait(10ms);
getslotitem(35,#id,#stack);
if(%#stack%=0);
gui();
else;
if(%#disc%=1);
gui();
wait(1);
keydown(jump);
wait(1);
keyup(jump);
echo("/home %&homediscos%");
if(%#vip%=1);
wait(4);
endif;
if(%#vip%=2);
wait(8);
endif;
keydown(jump);
wait(500ms);
keyup(jump);
wait(1);
echo("/menuloja off");
key(attack);
wait(1);
key(attack);
endif;
wait(1);
echo("/home %&dropbaus%");
gui();
if(%#vip%=2);
wait(8);
endif;
if(%#vip%=1);
wait(4);
endif;
keydown(jump);
wait(1);
keyup(jump);
wait(1);
IFMATCHES(%DIRECTION%,N);
&direct=NORTH;
ENDIF;
IFMATCHES(%DIRECTION%,S);
&direct=SOUTH;
ENDIF;
IFMATCHES(%DIRECTION%,W);
&direct=WEST;
ENDIF;
IFMATCHES(%DIRECTION%,E);
&direct=EAST;
ENDIF;
do;
// DIRECIONAMENTO DOS BAUS (NAO É RECOMENDAVEL ALTERAR) //
look(%&direct%);
if(%#bau%=1);
looks(315,-25);
wait(1);
endif;
if(%#bau%=2);
looks(315,-15);
wait(1);
endif;
if(%#bau%=3);
looks(315,0);
wait(1);
endif;
if(%#bau%=4);
looks(315,15);
wait(1);
endif;
if(%#bau%=5);
looks(315,25);
wait(1);
endif;
if(%#bau%=6);
looks(325,-25);
wait(1);
endif;
if(%#bau%=7);
looks(325,-15);
wait(1);
endif;
if(%#bau%=8);
looks(325,0);
wait(1);
endif;
if(%#bau%=9);
looks(325,15);
wait(1);
endif;
if(%#bau%=10);
looks(325,30);
wait(1);
endif;
if(%#bau%=11);
looks(340,-30);
wait(1);
endif;
if(%#bau%=12);
looks(340,-20);
wait(1);
endif;
if(%#bau%=13);
looks(340,0);
wait(1);
endif;
if(%#bau%=14);
looks(340,20);
wait(1);
endif;
if(%#bau%=15);
looks(340,35);
wait(1);
endif;
if(%#bau%=16);
looks(360,-30);
wait(1);
endif;
if(%#bau%=17);
looks(360,-20);
wait(1);
endif;
if(%#bau%=18);
looks(360,0);
wait(1);
endif;
if(%#bau%=19);
looks(360,20);
wait(1);
endif;
if(%#bau%=20);
looks(360,40);
wait(1);
endif;
if(%#bau%=21);
looks(380,-35);
wait(1);
endif;
if(%#bau%=22);
looks(380,-15);
wait(1);
endif;
if(%#bau%=23);
looks(380,0);
wait(1);
endif;
if(%#bau%=24);
looks(380,15);
wait(1);
endif;
if(%#bau%=25);
looks(380,35);
wait(1);
endif;
if(%#bau%=26);
looks(400,-30);
wait(1);
endif;
if(%#bau%=27);
looks(400,-15);
wait(1);
endif;
if(%#bau%=28);
looks(400,0);
wait(1);
endif;
if(%#bau%=29);
looks(400,15);
wait(1);
endif;
if(%#bau%=30);
looks(400,30);
wait(1);
endif;
if(%#bau%=31);
looks(405,-30);
wait(1);
endif;
if(%#bau%=32);
looks(405,-15);
wait(1);
endif;
if(%#bau%=33);
looks(405,0);
wait(1);
endif;
if(%#bau%=34);
looks(405,15);
wait(1);
endif;
if(%#bau%=35);
looks(405,30);
wait(1);
endif;
// FIM DO DIRECIONAMENTO //
key(use);
wait(1);
for(#slotn,54,89);
getslotitem(%#slotn%,#id,#stack);
if((%#id%=%#pa%)|| (%#id%=%#bloco% )|| (%#id%=%#rep%)|| (%#id%=%#pao%)|| (%#id%=%#cporco%)|| (%#id%=%#cboi%)|| (%#id%=%#cpeixecozido%)|| (%#id%=%#cfrango%));
else;
slotclick(%#slotn%,l,true);
wait(30ms);
endif;
next;
wait(500ms);
getslotitem(53,#id,#stack);
wait(500ms);
if(%#stack%!=0);
inc(#bau);
else;
endif;
if(%#bau%=36);
unset(armazena);
log("&4&lTodos seus baús estão cheios, a macro só irá upar a partir de agora.");
echo("/home %&homeescava%");
gui();
else;
gui();
endif;
until(%#stack%=0);
echo("/home %&homeescava%");
endif;
gui(inventory);
wait(200ms);
for(#slot,9,35);
GETSLOTITEM(%#slot%,#id,#stack);
if((%#id%=%#pa%) )||( (%#id%=%#bloco%) )||( (%#id%=%#rep%)||(%#id%=%#cboi%)||(%#id%=%#cfrango%)||(%#id%=%#cporco%)||(%#id%=%#cpeixecozido%)||(%#id%=%#pao%));
slotclick(%#slot%,l,true);wait(30ms);
else;
endif;
endif;
next;
gui();
endif;
loop;
endif;
}$$
// DELAY DE VERIFICACAO DO INVENTARIO (ALTERE SE JULGAR NECESSÁRIO)//
#del = 700;
// HOME PARA ESCAVAR //
&homeescava = esc;
// HOME DE VENDA DE DISCOS //
&homediscos = discovenda;
// HOME DE COMPRAR COMIDA //
&homecomida = comida;
// HOME TRAP BAUS //
&dropbaus = baus;
// ALTERE AS HOMES SE QUISER, MAS ALTERE SOMENTE DEPOIS DO SINAL DE = //
if(cavando);
log( );
log("&b&l[MACRO] &4&lEscavaçao by zMrDavi &e&l (OFF)");
echo("/g &4zmrdavi &9escavacao &a1.4 &9[&4off&9].);
log( );
unset(mrd);
unset(cavando);
unset(armazena);
unset(@cavar);
unset(perg);
stop();
else;
log( );
log("&b&l[MACRO] &4&lEscavacao by zMrDavi &e&l (ON)");
log( );
set(cavando);
set(armazena);
endif;
//====================== NAO ALTERE =====================//
#bau=1;
#pasnovas = 0;
#baupasnovas = 1;
#baupasvelhas = 1;
#trocapa = 0;
#cboi = 364;
#cpeixecozido = 350;
#cporco = 320;
#cfrango = 366;
#pao = 297;
//====================== NAO ALTERE =====================//
if(%#bloco%=nothing);
set(perg);
#config=2;
endif;
if(%#pa%=nothing);
set(perg);
#config=2;
endif;
if(%#dur%=nothing);
set(perg);
#config=2;
endif;
if(%#del%=nothing);
set(perg);
#config=2;
endif;
if(%#hit%=nothing);
set(perg);
#config=2;
endif;
if(perg);
else;
PROMPT(#config,$$?,"Deseja retomar sua ultima configuração feita? [1]=SIM // [2]=NÃO");
endif;
IFBEGINSWITH(%#config%,2);
IFENDSWITH(%#config%,2);
PROMPT(#vip,$$?,DIGITE [1] = VIP(Reparar pá) // [2] = NÃO VIP(Trocar pá ou reparar se desejado));
prompt(#itens,$$?,Deseja guardar itens? [1] = SIM // [2] = NÃO);
prompt(#fome,$$?,Deseja se alimentar quando estiver com a fome baixa? [1] = SIM (RECOMENDADO PARA NÃO VIPS) ///// [2] = NÃO);
if(%#vip%=2);
prompt(#trocapa,$$?,"Deseja trocar pás ou reparar [1] = TROCAR // [2] = REPARAR");
endif;
PROMPT(#bloco,$$i,Selecione o bloco que irá utilizar para upar.);
PROMPT(#pa,$$i,Selecione a pá que usará);
if(%#pa%=277);#rep=57;#hit=1;endif;
if(%#pa%=256);#rep=42;#hit=15;endif;
if(%#pa%=284);#rep=41;#hit=15;endif;
if(%#pa%=269);#rep=17;#hit=15;endif;
if(%#pa%=273);#rep=1;#hit=15;endif;
PROMPT(#dur,$$?,Deseja reparar ou trocar sua pá em qual durabilidade?);
#dur=%#dur%;
prompt(#disc,$$?,Deseja vender discos?[1]=SIM//[2]=NAO);
if((%#bloco%=nothing)||(%#pa%=nothing)||(%#dur%=nothing)||(%#del%=nothing)||(%#vip%=nothing)||(%#config%=null)||(%#disc%=nothing)||(%#fome%=nothing));
clearchat;
log("&5&lHá alguma(s) pergunta(s) que nao foi/foram respondida(s), por favor reconfigure a macro");
unset(mrd);
unset(cavando);
unset(armazena);
unset(@cavar);
unset(perg);
stop();
endif;
ENDIF;
ENDIF;
if(%#vip%=1);
echo("/home %&homeescava%");
wait(2);
endif;
if(%#vip%=2);
echo("/home %&homeescava%");
wait(7);
endif;
echo("/g &4zmrdavi &9escavacao &a1.4 &9[&aon&9].);
IFMATCHES(%DIRECTION%,N);
&near=NORTH;
ENDIF;
IFMATCHES(%DIRECTION%,S);
&near=SOUTH;
ENDIF;
IFMATCHES(%DIRECTION%,W);
&near=WEST;
ENDIF;
IFMATCHES(%DIRECTION%,E);
&near=EAST;
ENDIF;
if(%&near%=north);
¬near = south;
endif;
if(%&near%=south);
¬near = north;
endif;
if(%&near%=east);
¬near = west;
endif;
if(%&near%=west);
¬near = east;
endif;
set(mrd);
set(@cavar);
if(mrd);
look(%&near%);
look(,30);
do;
if(%#fome%=1);
keydown(jump);
wait(500ms);
keyup(jump);
endif;
getslotitem(1,#id,#stack,#x);
if((%#fome%=1)&&(%#stack%<16));
echo("/home %&homecomida%");
if(%#vip%=1);
wait(4);
endif;
if(%#vip%=2);
wait(8);
endif;
keydown(jump);
wait(1);
keyup(jump);
wait(1);
echo("/menuloja off");
echo("/esconder");
keydown(sneak);
wait(1);
key(use);
wait(1);
keyup(sneak);
echo("/home esc");
if(%#vip%=1);
wait(3);
endif;
if(%#vip%=2);
wait(7);
endif;
else;
endif;
do(%#del%);
pick(%#bloco%);
key(use);
wait(1ms);
pick(%#pa%);
if((%#fome%=1)&&(%HUNGER%<7));
wait(1);
keydown(jump);
wait(1);
keyup(jump);
wait(1);
DO;
slot(9);
key(use);
UNTIL(%HUNGER%=20);
endif;
if((%DURABILITY%<%#dur%)&&(%#vip%=1)||(%DURABILITY%<%#dur%)&&(%#trocapa%=2));
look(%&near%);
look(,90);
key(use);
getslotitem(8,#id,#stack);
if(%#stack%<1);
wait(2);
echo("/home %&dropbaus%");
if(%#vip%=1);
wait(4);
endif;
if(%#vip%=2);
wait(8);
endif;
looks(,60);
wait(1);
key(use);
wait(2);
for(#slotbdima,0,26);
getslotitem(#slotbdima,#id,#stack);
if(%#id%=%#rep%);
slotclick(#slotbdima,l,true);
endif;
next;
echo("/home %&homeescava%");
if(%#vip%=1);
wait(4);
endif;
if(%#vip%=2);
wait(8);
endif;
endif;
endif;
if((%DURABILITY%<%#dur%)&&(%#trocapa%=1));
echo("/home %&dropbaus%");
wait(8);
keydown(jump);
wait(500ms);
keyup(jump);
if(%#baupasvelhas%=1);
looks(150,10);
wait(1);
endif;
if(%#baupasvelhas%=2);
looks(150,30);
wait(1);
endif;
key(use);
wait(2);
for(#slotpasv,54,89);
getslotitem(%#slotpasv%,#id,#stack);
if(%#id%=%#pa%);
slotclick(%#slotpasv%,l,true);
wait(30ms);
endif;
next;
wait(500ms);
getslotitem(53,#id,#stack);
wait(500ms);
if(%#stack%!=0);
inc(#baupasvelhas);
else;
endif;
gui();
if(%#baupasnovas%=1);
looks(210,10);
wait(1);
endif;
if(%#baupasnovas%=2);
looks(210,30);
wait(1);
endif;
key(use);
wait(2);
for(#slotpasn,0,53);
getslotitem(%#slotpasn%,#id,#stack);
if(%#id%=%#pa%);
slotclick(%#slotpasn%,l,true);
wait(30ms);
inc(#pasnovas);
if(%#pasnovas%=1);
#pasnovas=0;
break;
else;
endif;
endif;
next;
wait(500ms);
getslotitem(53,#id,#stack);
wait(500ms);
if(%#stack%=0);
inc(#baupasnovas);
else;
endif;
gui();
echo("/home %&homeescava%");
wait(8);
endif;
if((%#baupasnovas%>2)||(%#baupasvelhas%>2));
unset(mrd);
unset(cavando);
unset(armazena);
unset(@cavar);
unset(perg);
log("&c&lAcabaram as pás, finalizando a macro);
stop();
endif;
look(%&near%);
look(,30);
do(%#hit%);
key(attack);
loop;
loop;
if((armazena)&&(%#itens%=1));
gui(inventory);
wait(10ms);
getslotitem(35,#id,#stack);
if(%#stack%=0);
gui();
else;
if(%#disc%=1);
gui();
wait(1);
keydown(jump);
wait(1);
keyup(jump);
echo("/home %&homediscos%");
if(%#vip%=1);
wait(4);
endif;
if(%#vip%=2);
wait(8);
endif;
keydown(jump);
wait(500ms);
keyup(jump);
wait(1);
echo("/menuloja off");
key(attack);
wait(1);
key(attack);
endif;
wait(1);
echo("/home %&dropbaus%");
gui();
if(%#vip%=2);
wait(8);
endif;
if(%#vip%=1);
wait(4);
endif;
keydown(jump);
wait(1);
keyup(jump);
wait(1);
IFMATCHES(%DIRECTION%,N);
&direct=NORTH;
ENDIF;
IFMATCHES(%DIRECTION%,S);
&direct=SOUTH;
ENDIF;
IFMATCHES(%DIRECTION%,W);
&direct=WEST;
ENDIF;
IFMATCHES(%DIRECTION%,E);
&direct=EAST;
ENDIF;
do;
// DIRECIONAMENTO DOS BAUS (NAO É RECOMENDAVEL ALTERAR) //
look(%&direct%);
if(%#bau%=1);
looks(315,-25);
wait(1);
endif;
if(%#bau%=2);
looks(315,-15);
wait(1);
endif;
if(%#bau%=3);
looks(315,0);
wait(1);
endif;
if(%#bau%=4);
looks(315,15);
wait(1);
endif;
if(%#bau%=5);
looks(315,25);
wait(1);
endif;
if(%#bau%=6);
looks(325,-25);
wait(1);
endif;
if(%#bau%=7);
looks(325,-15);
wait(1);
endif;
if(%#bau%=8);
looks(325,0);
wait(1);
endif;
if(%#bau%=9);
looks(325,15);
wait(1);
endif;
if(%#bau%=10);
looks(325,30);
wait(1);
endif;
if(%#bau%=11);
looks(340,-30);
wait(1);
endif;
if(%#bau%=12);
looks(340,-20);
wait(1);
endif;
if(%#bau%=13);
looks(340,0);
wait(1);
endif;
if(%#bau%=14);
looks(340,20);
wait(1);
endif;
if(%#bau%=15);
looks(340,35);
wait(1);
endif;
if(%#bau%=16);
looks(360,-30);
wait(1);
endif;
if(%#bau%=17);
looks(360,-20);
wait(1);
endif;
if(%#bau%=18);
looks(360,0);
wait(1);
endif;
if(%#bau%=19);
looks(360,20);
wait(1);
endif;
if(%#bau%=20);
looks(360,40);
wait(1);
endif;
if(%#bau%=21);
looks(380,-35);
wait(1);
endif;
if(%#bau%=22);
looks(380,-15);
wait(1);
endif;
if(%#bau%=23);
looks(380,0);
wait(1);
endif;
if(%#bau%=24);
looks(380,15);
wait(1);
endif;
if(%#bau%=25);
looks(380,35);
wait(1);
endif;
if(%#bau%=26);
looks(400,-30);
wait(1);
endif;
if(%#bau%=27);
looks(400,-15);
wait(1);
endif;
if(%#bau%=28);
looks(400,0);
wait(1);
endif;
if(%#bau%=29);
looks(400,15);
wait(1);
endif;
if(%#bau%=30);
looks(400,30);
wait(1);
endif;
if(%#bau%=31);
looks(405,-30);
wait(1);
endif;
if(%#bau%=32);
looks(405,-15);
wait(1);
endif;
if(%#bau%=33);
looks(405,0);
wait(1);
endif;
if(%#bau%=34);
looks(405,15);
wait(1);
endif;
if(%#bau%=35);
looks(405,30);
wait(1);
endif;
// FIM DO DIRECIONAMENTO //
key(use);
wait(1);
for(#slotn,54,89);
getslotitem(%#slotn%,#id,#stack);
if((%#id%=%#pa%)|| (%#id%=%#bloco% )|| (%#id%=%#rep%)|| (%#id%=%#pao%)|| (%#id%=%#cporco%)|| (%#id%=%#cboi%)|| (%#id%=%#cpeixecozido%)|| (%#id%=%#cfrango%));
else;
slotclick(%#slotn%,l,true);
wait(30ms);
endif;
next;
wait(500ms);
getslotitem(53,#id,#stack);
wait(500ms);
if(%#stack%!=0);
inc(#bau);
else;
endif;
if(%#bau%=36);
unset(armazena);
log("&4&lTodos seus baús estão cheios, a macro só irá upar a partir de agora.");
echo("/home %&homeescava%");
gui();
else;
gui();
endif;
until(%#stack%=0);
echo("/home %&homeescava%");
endif;
gui(inventory);
wait(200ms);
for(#slot,9,35);
GETSLOTITEM(%#slot%,#id,#stack);
if((%#id%=%#pa%) )||( (%#id%=%#bloco%) )||( (%#id%=%#rep%)||(%#id%=%#cboi%)||(%#id%=%#cfrango%)||(%#id%=%#cporco%)||(%#id%=%#cpeixecozido%)||(%#id%=%#pao%));
slotclick(%#slot%,l,true);wait(30ms);
else;
endif;
endif;
next;
gui();
endif;
loop;
endif;
}$$
Após instalar a macro, quando estiver utilizando-a pela primeira vez você terá que configurá-la mas está tudo bem indicado em seu fluxo de execução, qualquer dúvida mande MP ou tell no servidor que estarei completamente a dispor para concertar / ajudar quem for necessário
Bom a única coisa que eu peço com a disponibilização da macro é que se você testou e achou interessante deixe um LIKE no post aí.
V1.0 - 13/07/2019
V1.1 - Venda de discos adicionada(sugestão de rafavterra)
V1.2 - 17/07/2019 - Sistema de alimentação e compra de alimentos adicionado na macro(sugestão de RagnarLothbrok)
V1.3 - Corrigido bugs na parte de alimentação da macro e mudança nas mensagens no global adicionando a versão da macro.
v1.4 - Adicionada a sugestão de Destruction(Opção se deseja ou não armazenar itens), Adicionada a sugestão de zShibuzem(Pegar blocos para reparar quando os mesmos acabarem).
V1.1 - Venda de discos adicionada(sugestão de rafavterra)
V1.2 - 17/07/2019 - Sistema de alimentação e compra de alimentos adicionado na macro(sugestão de RagnarLothbrok)
V1.3 - Corrigido bugs na parte de alimentação da macro e mudança nas mensagens no global adicionando a versão da macro.
v1.4 - Adicionada a sugestão de Destruction(Opção se deseja ou não armazenar itens), Adicionada a sugestão de zShibuzem(Pegar blocos para reparar quando os mesmos acabarem).
Última edição: