ENTREGUE [MACRO] Escavação com armazenamento (REPARA OU TROCA PÁS) LEGACY.

Bem-vindo!

Ao se registrar conosco, você poderá discutir, compartilhar e enviar mensagens privadas com outros membros da nossa comunidade.

Inscreva-se agora!
Status
Não está aberto para novas respostas.

DaviMinerador

Bom
VIP
Entrou
Jan 20, 2014
Mensagens
514
Cubos
0
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

KV2F6Sd.png

1 pá na hotbar
blocos que utilizará para upar

HL6r2Cf.png

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:

XNkUrlG.png


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 ; ).

EMIYWcZ.png




A home para UP

5PlFtkb.png



TRAP DE ARMAZENAMENTO DE ITENS DROPADOS / TROCA DE PÁS PARA NÃO VIPS E REABASTECIMENTO DE BLOCOS PARA REPARAÇÃO

VSZkbe9.png


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

K2DXwER.png



O BAÚ COM BLOCOS DE REPARAÇÃO FICARÁ ASSIM NA TRAP


P5mZl3k.png



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

L8XXgTU.png


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 )

5XLxBzB.png


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

sAbNmsg.png


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 )

5fVZfsE.png

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

0iIQS7a.png


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);
&notnear = south;
endif;
if(%&near%=south);
&notnear = north;
endif;
if(%&near%=east);
&notnear = west;
endif;
if(%&near%=west);
&notnear = 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).

 
Última edição:
Tenho uma sugestão, já viu o macro mobkill do sleep? Nele a uma opção na configuração q vc abre um baú contendo os itens q vc quer guardar "os itens a não for para guardar ele joga nas costas na trap q vc mata os mobs" e ele faz uma leitura, por que não tenta dar uma futricada naquele macro e tenta implementar?
(Deixa os itens q quer guardar no baú para o macro salvar)
 
Tenho uma sugestão, já viu o macro mobkill do sleep? Nele a uma opção na configuração q vc abre um baú contendo os itens q vc quer guardar "os itens a não for para guardar ele joga nas costas na trap q vc mata os mobs) e ele faz uma leitura, por que não tenta dar uma futricada naquele macro e tenta implementar?
(Deixa os itens q quer guardar no baú para o macro salvar)
Excelente sujestão, amanhã verei se implemento-a o mais rápido possível pois realmente será muito útil
 
Status
Não está aberto para novas respostas.

Users who are viewing this thread

Voltar
Topo