ENTREGUE Colheita do besouro

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.
alguem poderia alterar esse macro pra mim poder minimizar o minecraft? tipo, eu aperto E, clico em algum programa (google chrome), ele fica colhendo e plantando normalmente.
 
DeveloperTeam disse:
alguem poderia alterar esse macro pra mim poder minimizar o minecraft? tipo, eu aperto E, clico em algum programa (google chrome), ele fica colhendo e plantando normalmente.
Você quer deixar o macro em segundo plano( minimizar e continuar rodando o mine)? Se for, experimenta apertar F3+P antes de minimizar
 
Poderia modificar para fazer com que o macro guarde os fungos se o inventário estiver quase cheio ao invés de esperar lotar todo o inventário? Porque eu estive testando o macro e ele "desperdiça" os fungos que não são recolhidos se o inventário estiver cheio, e o macro só checa ao final de cada fileira.
 
neek190 disse:
Você quer deixar o macro em segundo plano( minimizar e continuar rodando o mine)? Se for, experimenta apertar F3+P antes de minimizar
não funcionou aqu e.e
eu aperto F3 + P e o maximo q faz é abrir as cordenadas e o macro para(o atalho pra pausar o macro é P)
 
DeveloperTeam disse:
não funcionou aqu e.e
eu aperto F3 + P e o maximo q faz é abrir as cordenadas e o macro para(o atalho pra pausar o macro é P)
Se já apertou F3+ P, aperta Alt+ Tab para mudar de janela. Eu faço isso e funciona.
 
Pra mim, o macro bugou, fui ver e o meu char tava andando na mesma fileira.
Não sei se é porque eu movi o cursor no meio do procedimento de colheita/plantio, mas que tava andando na mesmo fileira, tava.
 
LordMagnata disse:
O macro bugo ele não fica com fortune 3 na mão.. ele fica trocando
Ta certo ele quebra o fungo e depois troca pra plantar so que bem rapido que vc nem percebe
 
SE EU QUISER tiver um conjuto de bau e quiser mais um,eu fasso o outro conjunto , e qual o nome da home que eu seto pra ele?
 
BeetleJuice disse:
[MACRO] Colheita do besouro (1.5.2 e 1.7.2+)

Depois de muito tempo sem postar nada o/
Desculpem o nome do tópico, mas já usaram os normais e beetle significa besouro u.u

O que esta macro faz?
Colhe e planta 2 vezes mais rápido que as macros convencionais, muda de andares sozinho (se houver mais de um andar) e guarda em 24 baús duplos.
Permite parar e continuar e raramente deu algum bug aqui, mesmo com lag.

Vantagens:
- Sinceramente, acho que é o método mais rápido e eficiente possível.
- A plantação e cada andar podem ser de QUALQUER tamanho, você não precisa informar.
- Você pode PAUSAR a colheita segurando a tecla "P" e continuar de onde parou segurando "P" novamente.
- Você pode PARAR a macro e continuar de onde parou quando ligá-la novamente.
- Guardar em baús agrupados, o que facilita muito a venda depois.
- Ao abrir o chat ou o inventário, a macro espera você fechar para continuar.
- Usa qualquer ferramenta que você deixar na hotbar.
- Apenas colhe se o fungo estiver totalmente crescido!

/sethomes:
- Obrigatórias:
/home fungof1 - Andar 1 (ou andar único) - Marque no começo da plantação olhando para qualquer lado que tenha fungos!
/home fungobaus - Baús - Marque no centro do conjunto de baús, olhando para os baús da esquerda, como mostrado no print abaixo!
/home fungotemp (Essa vocês não precisam marcar, mas precisam ter espaço nas setomes para ela, porque a macro marca sozinha)
- Opcionais:
/home fungof2 - Andar 2
/home fungof3 - Andar 3
/home fungof4 - Andar 4
/home fungof5 - Andar 5
/home fungof6 - Andar 6

Macro:
Basta colar em uma tecla qualquer em "Macro bindings", como qualquer outra macro:
1.5.2 (30/03/2014)
$${
if(@neth3);
keyup(forward);
unset(@neth3);
}$$
/sethome fungotemp
$${
#snposx1=%XPOS%; #snposx2=%ZPOS%;
log("&d» &6Plantação Automática &c[OFF]");
stop();
else;
set(@neth3);
#delay=8;#nbau=1;
log("&d» &6Plantação Automática &a[ON]");
PROMPT(&return,$$?,"Continuar de onde estava quando desligou? (S ou N)");
ifmatches(%&return%,^[S|s]);
set(return);
log("&d» &6Continuando a partir de onde foi desligado!");
else;
unset(return);
PROMPT(#fxv,$$?,"Quantos andares são? (O máximo são 6 andares!)"); if(%#fxv%=0);unset(@neth3);stop();endif;
#hfl=1;
if(%#fxv%>1);
&tm=;
if(%#fxv%=2);&tm=1 ou 2?;endif;if(%#fxv%=3);&tm=1, 2 ou 3?;endif;if(%#fxv%=4);&tm=1, 2, 3 ou 4?;endif;if(%#fxv%=5);&tm=1, 2, 3, 4 ou 5?;endif;if(%#fxv%=6);&tm=1, 2, 3, 4, 5 ou 6?;endif;
if(%#fxv%>6);
log("&d» &cOps! &6Número de andares maior que o possível &3(6)&6!");
log("&d» &6Plantação Automática &c[OFF]");
unset(@neth3);
stop();
endif;
PROMPT(#flror,$$?,"Começar por qual andar? %&tm%"); if(%#flror%=0);unset(@neth3);stop();endif;
else;
#flror=1;
endif;
if(%#flror%>%#fxv%);
log(&d» &cOps! &6Andar escolhido para começar é maior que o número de andares que você escolheu! Preste mais atenção nas perguntas &3:/);
log("&d» &6Plantação Automática &c[OFF]");
unset(@neth3);
stop();
endif;
log("&d» &6As sethomes devem ser no estilo: &3/home fungof1 /home fungof2&6 ...");
log("&d» &6A sethome dos baús deve ser &3/home fungobaus &6...");
log("&d» &6Se quiser parar só por um tempo, segure a &3tecla P&6 até parar!");
set(first);
endif;

do;
for(#hfl,%#flror%,%#fxv%);
wait(1);
if(return);
#hfltemp=%#hfl%;#hfl=8000;
}$$
/home fungotemp
$${
do;until((%XPOS%=%#snposx1%)&&(%ZPOS%=%#snposx2%));wait(1);
unset(return);
else;
}$$
$${if(%#hfl%=1);}$$/home fungof1$${endif;}$$
$${if(%#hfl%=2);}$$/home fungof2$${endif;}$$
$${if(%#hfl%=3);}$$/home fungof3$${endif;}$$
$${if(%#hfl%=4);}$$/home fungof4$${endif;}$$
$${if(%#hfl%=5);}$$/home fungof5$${endif;}$$
$${if(%#hfl%=6);}$$/home fungof6$${endif;}$$
$${
wait(8);
set(first);
endif;

keydown(jump);wait(100ms);keyup(jump);wait(1);
&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;

gui();
for(#in,1,9);
getslotitem(%#in%,#idk,#stack);
ifmatches(%#idk%,^269$|^270$|^271$|^273$|^274$|^275$|^277$|^278$|^279$|^284$|^285$|^286$|^256$|^257$|^258$);
#slotl=%#in%;
endif;
next;

look(%&dir%);
look(,+89);
key(attack);
unset(nextfloor);

do;
#stack=0;
keyup(forward);
gui(inventory);
wait(450ms);
getslot(372,#fghot);
getslotitem(35,#id,#stack);
if(%#fghot%<36);
slotclick(%#fghot%,l,true);
endif;
wait(450ms);
gui();

if(%#stack%>0);
#nposx1=%XPOS%; #nposx2=%ZPOS%;
}$$
/sethome fungotemp
$${}$$
/home fungobaus
$${
do;until((%XPOS%!=%#nposx1%)|(%ZPOS%!=%#nposx2%));wait(3);
keydown(jump);wait(100ms);keyup(jump);wait(1);
&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;
do;
look(%&dir%);
if(%#nbau%=1);look(-26,-40);endif;
if(%#nbau%=2);look(+26,-40);endif;
if(%#nbau%=3);look(+65,-40);endif;
if(%#nbau%=4);look(+116,-40);endif;
if(%#nbau%=5);look(+155,-40);endif;
if(%#nbau%=6);look(+206,-40);endif;
if(%#nbau%=7);look(-26,-20);endif;
if(%#nbau%=8);look(+26,-20);endif;
if(%#nbau%=9);look(+65,-20);endif;
if(%#nbau%=10);look(+116,-20);endif;
if(%#nbau%=11);look(+155,-20);endif;
if(%#nbau%=12);look(+206,-20);endif;
if(%#nbau%=13);look(-26,-0);endif;
if(%#nbau%=14);look(+26,-0);endif;
if(%#nbau%=15);look(+65,-0);endif;
if(%#nbau%=16);look(+116,-0);endif;
if(%#nbau%=17);look(+155,-0);endif;
if(%#nbau%=18);look(+206,-0);endif;
if(%#nbau%=19);look(-26,+25);endif;
if(%#nbau%=20);look(+26,+25);endif;
if(%#nbau%=21);look(+65,+25);endif;
if(%#nbau%=22);look(+116,+25);endif;
if(%#nbau%=23);look(+155,+25);endif;
if(%#nbau%=24);look(+206,+25);endif;
wait(1);
key(use);
wait(4);
for(#i,54,87);
getslotitem(%#i%,#ide,#stacke);
if(%#ide%=372);
slotclick(%#i%,l,true);
wait(30ms);
endif;
next;
wait(250ms);
getslotitem(53,#id,#stack);
wait(250ms);
if(%#stack%!=0);
#nbau=%#nbau%+1;
if(%#nbau%=25);
unset(@neth3);
log("&d» &6Baús cheios?");
log("&d» &6Plantação Automática &c[OFF]");
stop();
endif;
endif;
gui();
until(%#stack%=0);
}$$
/home fungotemp
$${
wait(%#delay%);
keydown(jump);wait(100ms);keyup(jump);wait(1);
else;
gui();
endif;

do;
&dir=%DIRECTION%;
ifmatches(%&dir%,N);&dir=NORTH;&z=-1;&x=+0;&z1=+0;&z2=+0;&x1=-1;&x2=+1;endif;
ifmatches(%&dir%,S);&dir=SOUTH;&z=+1;&x=+0;&z1=+0;&z2=+0;&x1=+1;&x2=-1;endif;
ifmatches(%&dir%,E);&dir=EAST;&z=+0;&x=+1;&x1=+0;&x2=+0;&z1=-1;&z2=+1;endif;
ifmatches(%&dir%,W);&dir=WEST;&z=+0;&x=-1;&x1=+0;&x2=+0;&z1=+1;&z2=-1;endif;

ifmatches(%GUI%,chat|inventory);
keyup(forward);
log(&d» &6Chat ou inventório detectado. &3Macro pausado!);
do;
ifmatches(%GUI%,CHAT|INVENTORY);
else;
#g=0;
endif;
until(%#g%=0);
#g=1;
log(&d» &6Chat ou inventório fechado. &3Continuando!);
endif;

if(KEY_P);
keyup(forward);
wait(200ms);
#nposx1=%XPOS%;#nposx2=%ZPOS%;
}$$
/sethome fungotemp
$${
log(&d» &6Plantação automática &3interrompida&6!);
log(&d» &6Para continuar, segure a &3tecla P &6por 3 segundos!);
do;
if(KEY_P);
wait(3);
if(KEY_P);
wait(200ms);
if(KEY_P);
set(resume);
endif;
endif;
endif;
until(resume);
unset(resume);
}$$
/home fungotemp
$${
log("&d» &6Plantação automática &3retomada&6!");
log("&d» &6Não mexa o mouse, oki? &3:)");
do;until((%XPOS%=%#nposx1%)&&(%ZPOS%=%#nposx2%));
wait(2);
endif;

&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;

look(%&dir%);
look(,+89);
#nposx1=%XPOS%; #nposx2=%ZPOS%;
do;
keydown(forward);
pick(372);
key(use);
getidrel(%&x%,+0,%&z%,#blockd);
getidrel(%&x%,+1,%&z%,#blocku);
until((%XPOS%!=%#nposx1%)|(%ZPOS%!=%#nposx2%)|(%#blockd%!=88)|(%#blocku%!=115)&&(%#blocku%!=0));
slot(%#slotl%);
if(%HITDATA%=3);key(attack);wait(10ms);endif;
until((%#blockd%!=88)|(%#blocku%!=115)&&(%#blocku%!=0));

key(use);
keyup(forward);

if(first);
getidrel(%&x1%,+0,%&z1%,#block1);getidrel(%&x2%,+0,%&z2%,#block2);
getidrel(%&x1%,+1,%&z1%,#block3);getidrel(%&x2%,+1,%&z2%,#block4);
if((%#block1%=88)|(%#block3%=88));&sn=-;endif;
if((%#block2%=88)|(%#block4%=88));&sn=+;endif;
&dirc=%DIRECTION%;
ifmatches(%&sn%,[\+]);&sn1=+;&sn2=-;endif;
ifmatches(%&sn%,[\-]);&sn1=-;&sn2=+;endif;
unset(first);
endif;

&dir=%DIRECTION%;
ifmatches(%&dirc%,N);ifmatches(%&dir%,N);&sn=%&sn1%;endif;ifmatches(%&dir%,S);&sn=%&sn2%;endif;endif;
ifmatches(%&dirc%,S);ifmatches(%&dir%,N);&sn=%&sn2%;endif;ifmatches(%&dir%,S);&sn=%&sn1%;endif;endif;
ifmatches(%&dirc%,W);ifmatches(%&dir%,W);&sn=%&sn1%;endif;ifmatches(%&dir%,E);&sn=%&sn2%;endif;endif;
ifmatches(%&dirc%,E);ifmatches(%&dir%,W);&sn=%&sn2%;endif;ifmatches(%&dir%,E);&sn=%&sn1%;endif;endif;

look(%&sn%90,);
wait(100ms);

&dir=%DIRECTION%;
ifmatches(%&dir%,N);&dir=NORTH;&z=-1;&x=+0;&z1=+0;&z2=+0;&x1=-1;&x2=+1;endif;
ifmatches(%&dir%,S);&dir=SOUTH;&z=+1;&x=+0;&z1=+0;&z2=+0;&x1=+1;&x2=-1;endif;
ifmatches(%&dir%,E);&dir=EAST;&z=+0;&x=+1;&x1=+0;&x2=+0;&z1=-1;&z2=+1;endif;
ifmatches(%&dir%,W);&dir=WEST;&z=+0;&x=-1;&x1=+0;&x2=+0;&z1=+1;&z2=-1;endif;

getidrel(%&x%,+0,%&z%,#block1);
getidrel(%&x%,+1,%&z%,#block3);

if(((%#block3%!=0)&&(%#block3%!=115))|(%#block1%!=88));
set(nextfloor);
endif;

if(nextfloor);
else;
#nposx1 = %XPOS%; #nposx2 = %ZPOS%;
do;
keydown(forward);
pick(372);
key(use);
until((%XPOS%!=%#nposx1%)|(%ZPOS%!=%#nposx2%));
keyup(forward);
key(attack);
look(%&sn%90,);
endif;
until(nextfloor);
keyup(FORWARD);
next;
#flror=1;
loop;
endif;
}$$
1.7.2+ (26/03/2014) (PS: A versão BETA do macro está instável, não é garantido que sempre funcione.)
$${
if(@neth3);
keyup(forward);
unset(@neth3);
}$$
/sethome fungotemp
$${
#snposx1=%XPOS%; #snposx2=%ZPOS%;
log("&d» &6Plantação Automática &c[OFF]");
stop();
else;
set(@neth3);
#delay=8;#nbau=1;
log("&d» &6Plantação Automática &a[ON]");
PROMPT(&return,$$?,"Continuar de onde estava quando desligou? (S ou N)");
ifmatches(%&return%,^[S|s]);
set(return);
log("&d» &6Continuando a partir de onde foi desligado!");
else;
unset(return);
PROMPT(#fxv,$$?,"Quantos andares são? (O máximo são 6 andares!)"); if(%#fxv%=0);unset(@neth3);stop();endif;
#hfl=1;
if(%#fxv%>1);
&tm=;
if(%#fxv%=2);&tm=1 ou 2?;endif;if(%#fxv%=3);&tm=1, 2 ou 3?;endif;if(%#fxv%=4);&tm=1, 2, 3 ou 4?;endif;if(%#fxv%=5);&tm=1, 2, 3, 4 ou 5?;endif;if(%#fxv%=6);&tm=1, 2, 3, 4, 5 ou 6?;endif;
if(%#fxv%>6);
log("&d» &cOps! &6Número de andares maior que o possível &3(6)&6!");
log("&d» &6Plantação Automática &c[OFF]");
unset(@neth3);
stop();
endif;
PROMPT(#flror,$$?,"Começar por qual andar? %&tm%"); if(%#flror%=0);unset(@neth3);stop();endif;
else;
#flror=1;
endif;
if(%#flror%>%#fxv%);
log(&d» &cOps! &6Andar escolhido para começar é maior que o número de andares que você escolheu! Preste mais atenção nas perguntas &3:/);
log("&d» &6Plantação Automática &c[OFF]");
unset(@neth3);
stop();
endif;
log("&d» &6As sethomes devem ser no estilo: &3/home fungof1 /home fungof2&6 ...");
log("&d» &6A sethome dos baús deve ser &3/home fungobaus &6...");
log("&d» &6Se quiser parar só por um tempo, segure a &3tecla P&6 até parar!");
set(first);
endif;

do;
for(#hfl,%#flror%,%#fxv%);
wait(1);
if(return);
#hfltemp=%#hfl%;#hfl=8000;
}$$
/home fungotemp
$${
do;until((%XPOS%=%#snposx1%)&&(%ZPOS%=%#snposx2%));wait(1);
unset(return);
else;
}$$
$${if(%#hfl%=1);}$$/home fungof1$${endif;}$$
$${if(%#hfl%=2);}$$/home fungof2$${endif;}$$
$${if(%#hfl%=3);}$$/home fungof3$${endif;}$$
$${if(%#hfl%=4);}$$/home fungof4$${endif;}$$
$${if(%#hfl%=5);}$$/home fungof5$${endif;}$$
$${if(%#hfl%=6);}$$/home fungof6$${endif;}$$
$${
wait(8);
set(first);
endif;

keydown(jump);wait(100ms);keyup(jump);wait(1);
&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;

gui();
for(#in,1,9);
getslotitem(%#in%,&idk,#stack);
ifmatches(%&idk%,shovel|pickaxe|axe);
#slotl=%#in%;
endif;
next;

look(%&dir%);
look(,+89);
key(attack);
unset(nextfloor);

do;
#stack=0;
keyup(forward);
gui(inventory);
wait(450ms);
getslot(372,#fghot);
getslotitem(35,&id,#stack);
if(%#fghot%<36);
slotclick(%#fghot%,l,true);
endif;
wait(450ms);
gui();

if(%#stack%>0);
#nposx1=%XPOS%; #nposx2=%ZPOS%;
}$$
/sethome fungotemp
$${}$$
/home fungobaus
$${
do;until((%XPOS%!=%#nposx1%)|(%ZPOS%!=%#nposx2%));wait(3);
keydown(jump);wait(100ms);keyup(jump);wait(1);
&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;
do;
look(%&dir%);
if(%#nbau%=1);look(-26,-40);endif;
if(%#nbau%=2);look(+26,-40);endif;
if(%#nbau%=3);look(+65,-40);endif;
if(%#nbau%=4);look(+116,-40);endif;
if(%#nbau%=5);look(+155,-40);endif;
if(%#nbau%=6);look(+206,-40);endif;
if(%#nbau%=7);look(-26,-20);endif;
if(%#nbau%=8);look(+26,-20);endif;
if(%#nbau%=9);look(+65,-20);endif;
if(%#nbau%=10);look(+116,-20);endif;
if(%#nbau%=11);look(+155,-20);endif;
if(%#nbau%=12);look(+206,-20);endif;
if(%#nbau%=13);look(-26,-0);endif;
if(%#nbau%=14);look(+26,-0);endif;
if(%#nbau%=15);look(+65,-0);endif;
if(%#nbau%=16);look(+116,-0);endif;
if(%#nbau%=17);look(+155,-0);endif;
if(%#nbau%=18);look(+206,-0);endif;
if(%#nbau%=19);look(-26,+25);endif;
if(%#nbau%=20);look(+26,+25);endif;
if(%#nbau%=21);look(+65,+25);endif;
if(%#nbau%=22);look(+116,+25);endif;
if(%#nbau%=23);look(+155,+25);endif;
if(%#nbau%=24);look(+206,+25);endif;
wait(1);
key(use);
wait(4);
for(#i,54,87);
getslotitem(%#i%,&ide,#stacke);
ifmatches(%&ide%,nether_wart);
slotclick(%#i%,l,true);
wait(30ms);
endif;
next;
wait(250ms);
getslotitem(53,&id,#stack);
wait(250ms);
if(%#stack%!=0);
#nbau=%#nbau%+1;
if(%#nbau%=25);
unset(@neth3);
log("&d» &6Baús cheios?");
log("&d» &6Plantação Automática &c[OFF]");
stop();
endif;
endif;
gui();
until(%#stack%=0);
}$$
/home fungotemp
$${
wait(%#delay%);
keydown(jump);wait(100ms);keyup(jump);wait(1);
else;
gui();
endif;

do;
&dir=%DIRECTION%;
ifmatches(%&dir%,N);&dir=NORTH;&z=-1;&x=+0;&z1=+0;&z2=+0;&x1=-1;&x2=+1;endif;
ifmatches(%&dir%,S);&dir=SOUTH;&z=+1;&x=+0;&z1=+0;&z2=+0;&x1=+1;&x2=-1;endif;
ifmatches(%&dir%,E);&dir=EAST;&z=+0;&x=+1;&x1=+0;&x2=+0;&z1=-1;&z2=+1;endif;
ifmatches(%&dir%,W);&dir=WEST;&z=+0;&x=-1;&x1=+0;&x2=+0;&z1=+1;&z2=-1;endif;

ifmatches(%GUI%,chat|inventory);
keyup(forward);
log(&d» &6Chat ou inventório detectado. &3Macro pausado!);
do;
ifmatches(%GUI%,CHAT|INVENTORY);
else;
#g=0;
endif;
until(%#g%=0);
#g=1;
log(&d» &6Chat ou inventório fechado. &3Continuando!);
endif;

if(KEY_P);
keyup(forward);
wait(200ms);
#nposx1=%XPOS%;#nposx2=%ZPOS%;
}$$
/sethome fungotemp
$${
log(&d» &6Plantação automática &3interrompida&6!);
log(&d» &6Para continuar, segure a &3tecla P &6por 3 segundos!);
do;
if(KEY_P);
wait(3);
if(KEY_P);
wait(200ms);
if(KEY_P);
set(resume);
endif;
endif;
endif;
until(resume);
unset(resume);
}$$
/home fungotemp
$${
log("&d» &6Plantação automática &3retomada&6!");
log("&d» &6Não mexa o mouse, oki? &3:)");
do;until((%XPOS%=%#nposx1%)&&(%ZPOS%=%#nposx2%));
wait(2);
endif;

&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;

look(%&dir%);
look(,+89);
#nposx1=%XPOS%; #nposx2=%ZPOS%;
do;
keydown(forward);
pick(nether_wart);
key(use);
getidrel(%&x%,+0,%&z%,&blockd);
getidrel(%&x%,+1,%&z%,&blocku);
ifmatches(%&blockd%,soul_sand);#cond1=0;else;#cond1=1;endif;
ifmatches(%&blocku%,nether_wart);#cond2=0;else;#cond2=1;endif;
ifmatches(%&blocku%,air);#cond3=0;else;#cond3=1;endif;
until((%XPOS%!=%#nposx1%)|(%ZPOS%!=%#nposx2%)|(%#cond1%=1)|(%#cond2%=1)&&(%#cond3%=1));
slot(%#slotl%);
if(%HITDATA%=3);key(attack);wait(10ms);endif;
ifmatches(%&blockd%,soul_sand);#cond1=0;else;#cond1=1;endif;
ifmatches(%&blocku%,nether_wart);#cond2=0;else;#cond2=1;endif;
ifmatches(%&blocku%,air);#cond3=0;else;#cond3=1;endif;
until((%#cond1%=1)|(%#cond2%=1)&&(%#cond3%=1));

key(use);
keyup(forward);

if(first);
getidrel(%&x1%,+0,%&z1%,&block1);getidrel(%&x2%,+0,%&z2%,&block2);
getidrel(%&x1%,+1,%&z1%,&block3);getidrel(%&x2%,+1,%&z2%,&block4);
ifmatches(%&block1%,soul_sand);&sn=-;endif;ifmatches(%&block3%,soul_sand);&sn=-;endif;
ifmatches(%&block2%,soul_sand);&sn=+;endif;ifmatches(%&block4%,soul_sand);&sn=+;endif;
&dirc=%DIRECTION%;
ifmatches(%&sn%,[\+]);&sn1=+;&sn2=-;endif;
ifmatches(%&sn%,[\-]);&sn1=-;&sn2=+;endif;
unset(first);
endif;

&dir=%DIRECTION%;
ifmatches(%&dirc%,N);ifmatches(%&dir%,N);&sn=%&sn1%;endif;ifmatches(%&dir%,S);&sn=%&sn2%;endif;endif;
ifmatches(%&dirc%,S);ifmatches(%&dir%,N);&sn=%&sn2%;endif;ifmatches(%&dir%,S);&sn=%&sn1%;endif;endif;
ifmatches(%&dirc%,W);ifmatches(%&dir%,W);&sn=%&sn1%;endif;ifmatches(%&dir%,E);&sn=%&sn2%;endif;endif;
ifmatches(%&dirc%,E);ifmatches(%&dir%,W);&sn=%&sn2%;endif;ifmatches(%&dir%,E);&sn=%&sn1%;endif;endif;

look(%&sn%90,);
wait(100ms);

&dir=%DIRECTION%;
ifmatches(%&dir%,N);&dir=NORTH;&z=-1;&x=+0;&z1=+0;&z2=+0;&x1=-1;&x2=+1;endif;
ifmatches(%&dir%,S);&dir=SOUTH;&z=+1;&x=+0;&z1=+0;&z2=+0;&x1=+1;&x2=-1;endif;
ifmatches(%&dir%,E);&dir=EAST;&z=+0;&x=+1;&x1=+0;&x2=+0;&z1=-1;&z2=+1;endif;
ifmatches(%&dir%,W);&dir=WEST;&z=+0;&x=-1;&x1=+0;&x2=+0;&z1=+1;&z2=-1;endif;

getidrel(%&x%,+0,%&z%,&block1);
getidrel(%&x%,+1,%&z%,&block3);

#rf=0;
ifmatches(%&block3%,air);else;inc(#rf,1);endif;
ifmatches(%&block3%,nether_wart);else;inc(#rf,1);endif;
ifmatches(%&block1%,soul_sand);else;#rf=2;endif;
endif;

if(%#rf%=2);
else;
#nposx1 = %XPOS%; #nposx2 = %ZPOS%;
do;
keydown(forward);
pick(nether_wart);
key(use);
until((%XPOS%!=%#nposx1%)|(%ZPOS%!=%#nposx2%));
keyup(forward);
key(attack);
look(%&sn%90,);
endif;
until(%#rf%=2);
keyup(FORWARD);
next;
#flror=1;
loop;
endif;
}$$
1.7.2+ (2 conjuntos de baús)
$${
if(@neth3);
keyup(forward);
unset(@neth3);
}$$
/sethome fungotemp
$${
#snposx1=%XPOS%; #snposx2=%ZPOS%;
log("&d» &6Plantação Automática &c[OFF]");
stop();
else;
set(@neth3);
#delay=8;#nbau=1;
log("&d» &6Plantação Automática &a[ON]");
PROMPT(&return,$$?,"Continuar de onde estava quando desligou? (S ou N)");
ifmatches(%&return%,^[S|s]);
set(return);
log("&d» &6Continuando a partir de onde foi desligado!");
else;
#ch=1;
unset(return);
PROMPT(#fxv,$$?,"Quantos andares são? (O máximo são 6 andares!)"); if(%#fxv%=0);unset(@neth3);stop();endif;
#hfl=1;
if(%#fxv%>1);
&tm=;
if(%#fxv%=2);&tm=1 ou 2?;endif;if(%#fxv%=3);&tm=1, 2 ou 3?;endif;if(%#fxv%=4);&tm=1, 2, 3 ou 4?;endif;if(%#fxv%=5);&tm=1, 2, 3, 4 ou 5?;endif;if(%#fxv%=6);&tm=1, 2, 3, 4, 5 ou 6?;endif;
if(%#fxv%>6);
log("&d» &cOps! &6Número de andares maior que o possível &3(6)&6!");
log("&d» &6Plantação Automática &c[OFF]");
unset(@neth3);
stop();
endif;
PROMPT(#flror,$$?,"Começar por qual andar? %&tm%"); if(%#flror%=0);unset(@neth3);stop();endif;
else;
#flror=1;
endif;
if(%#flror%>%#fxv%);
log(&d» &cOps! &6Andar escolhido para começar é maior que o número de andares que você escolheu! Preste mais atenção nas perguntas &3:/);
log("&d» &6Plantação Automática &c[OFF]");
unset(@neth3);
stop();
endif;
log("&d» &6As sethomes devem ser no estilo: &3/home fungof1 /home fungof2&6 ...");
log("&d» &6A sethome dos baús deve ser &3/home fungobaus &6...");
log("&d» &6Se quiser parar só por um tempo, segure a &3tecla P&6 até parar!");
set(first);
endif;

do;
for(#hfl,%#flror%,%#fxv%);
wait(1);
if(return);
#hfltemp=%#hfl%;#hfl=8000;
}$$
/home fungotemp
$${
do;until((%XPOS%=%#snposx1%)&&(%ZPOS%=%#snposx2%));wait(1);
unset(return);
else;
}$$
$${if(%#hfl%=1);}$$/home fungof1$${endif;}$$
$${if(%#hfl%=2);}$$/home fungof2$${endif;}$$
$${if(%#hfl%=3);}$$/home fungof3$${endif;}$$
$${if(%#hfl%=4);}$$/home fungof4$${endif;}$$
$${if(%#hfl%=5);}$$/home fungof5$${endif;}$$
$${if(%#hfl%=6);}$$/home fungof6$${endif;}$$
$${
wait(8);
set(first);
endif;

keydown(jump);wait(100ms);keyup(jump);wait(1);
&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;

gui();
for(#in,1,9);
getslotitem(%#in%,&idk,#stack);
ifmatches(%&idk%,shovel|pickaxe|axe);
#slotl=%#in%;
endif;
next;

look(%&dir%);
look(,+89);
key(attack);
unset(nextfloor);

do;
#stack=0;
keyup(forward);
gui(inventory);
wait(450ms);
getslot(372,#fghot);
getslotitem(35,&id,#stack);
if(%#fghot%<36);
slotclick(%#fghot%,l,true);
endif;
wait(450ms);
gui();

if(%#stack%>0);
#nposx1=%XPOS%; #nposx2=%ZPOS%;
}$$
/sethome fungotemp
$${
if(%#ch%=1);}$$/home fungobaus1$${endif;
if(%#ch%=2);}$$/home fungobaus2$${endif;
do;until((%XPOS%!=%#nposx1%)|(%ZPOS%!=%#nposx2%));wait(3);
keydown(jump);wait(100ms);keyup(jump);wait(1);
&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;
do;
look(%&dir%);
if(%#nbau%=1);look(-26,-40);endif;
if(%#nbau%=2);look(+26,-40);endif;
if(%#nbau%=3);look(+65,-40);endif;
if(%#nbau%=4);look(+116,-40);endif;
if(%#nbau%=5);look(+155,-40);endif;
if(%#nbau%=6);look(+206,-40);endif;
if(%#nbau%=7);look(-26,-20);endif;
if(%#nbau%=8);look(+26,-20);endif;
if(%#nbau%=9);look(+65,-20);endif;
if(%#nbau%=10);look(+116,-20);endif;
if(%#nbau%=11);look(+155,-20);endif;
if(%#nbau%=12);look(+206,-20);endif;
if(%#nbau%=13);look(-26,-0);endif;
if(%#nbau%=14);look(+26,-0);endif;
if(%#nbau%=15);look(+65,-0);endif;
if(%#nbau%=16);look(+116,-0);endif;
if(%#nbau%=17);look(+155,-0);endif;
if(%#nbau%=18);look(+206,-0);endif;
if(%#nbau%=19);look(-26,+25);endif;
if(%#nbau%=20);look(+26,+25);endif;
if(%#nbau%=21);look(+65,+25);endif;
if(%#nbau%=22);look(+116,+25);endif;
if(%#nbau%=23);look(+155,+25);endif;
if(%#nbau%=24);look(+206,+25);endif;
wait(1);
key(use);
wait(4);
for(#i,54,87);
getslotitem(%#i%,&ide,#stacke);
ifmatches(%&ide%,nether_wart);
slotclick(%#i%,l,true);
wait(30ms);
endif;
next;
wait(250ms);
getslotitem(53,&id,#stack);
wait(250ms);
if(%#stack%!=0);
#nbau=%#nbau%+1;
if(%#nbau%=25);
unset(@neth3);
log("&d» &6Baús cheios?");
if(%#ch%=1);
log("&d» &6Segundo conjunto de baús!");
#ch=2;
#nbau=1;
}$$/home fungobaus2$${
do;until((%XPOS%!=%#nposx1%)|(%ZPOS%!=%#nposx2%));wait(3);
keydown(jump);wait(100ms);keyup(jump);wait(1);
&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;
else;
log("&d» &6Plantação Automática &c[OFF]");
stop();
endif;
endif;
endif;
gui();
until(%#stack%=0);
}$$
/home fungotemp
$${
wait(%#delay%);
keydown(jump);wait(100ms);keyup(jump);wait(1);
else;
gui();
endif;

do;
&dir=%DIRECTION%;
ifmatches(%&dir%,N);&dir=NORTH;&z=-1;&x=+0;&z1=+0;&z2=+0;&x1=-1;&x2=+1;endif;
ifmatches(%&dir%,S);&dir=SOUTH;&z=+1;&x=+0;&z1=+0;&z2=+0;&x1=+1;&x2=-1;endif;
ifmatches(%&dir%,E);&dir=EAST;&z=+0;&x=+1;&x1=+0;&x2=+0;&z1=-1;&z2=+1;endif;
ifmatches(%&dir%,W);&dir=WEST;&z=+0;&x=-1;&x1=+0;&x2=+0;&z1=+1;&z2=-1;endif;

ifmatches(%GUI%,chat|inventory);
keyup(forward);
log(&d» &6Chat ou inventório detectado. &3Macro pausado!);
do;
ifmatches(%GUI%,CHAT|INVENTORY);
else;
#g=0;
endif;
until(%#g%=0);
#g=1;
log(&d» &6Chat ou inventório fechado. &3Continuando!);
endif;

if(KEY_P);
keyup(forward);
wait(200ms);
#nposx1=%XPOS%;#nposx2=%ZPOS%;
}$$
/sethome fungotemp
$${
log(&d» &6Plantação automática &3interrompida&6!);
log(&d» &6Para continuar, segure a &3tecla P &6por 3 segundos!);
do;
if(KEY_P);
wait(3);
if(KEY_P);
wait(200ms);
if(KEY_P);
set(resume);
endif;
endif;
endif;
until(resume);
unset(resume);
}$$
/home fungotemp
$${
log("&d» &6Plantação automática &3retomada&6!");
log("&d» &6Não mexa o mouse, oki? &3:)");
do;until((%XPOS%=%#nposx1%)&&(%ZPOS%=%#nposx2%));
wait(2);
endif;

&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;

look(%&dir%);
look(,+89);
#nposx1=%XPOS%; #nposx2=%ZPOS%;
do;
keydown(forward);
pick(nether_wart);
key(use);
getidrel(%&x%,+0,%&z%,&blockd);
getidrel(%&x%,+1,%&z%,&blocku);
ifmatches(%&blockd%,soul_sand);#cond1=0;else;#cond1=1;endif;
ifmatches(%&blocku%,nether_wart);#cond2=0;else;#cond2=1;endif;
ifmatches(%&blocku%,air);#cond3=0;else;#cond3=1;endif;
until((%XPOS%!=%#nposx1%)|(%ZPOS%!=%#nposx2%)|(%#cond1%=1)|(%#cond2%=1)&&(%#cond3%=1));
slot(%#slotl%);
if(%HITDATA%=3);key(attack);endif;
ifmatches(%&blockd%,soul_sand);#cond1=0;else;#cond1=1;endif;
ifmatches(%&blocku%,nether_wart);#cond2=0;else;#cond2=1;endif;
ifmatches(%&blocku%,air);#cond3=0;else;#cond3=1;endif;
until((%#cond1%=1)|((%#cond2%=1)&&(%#cond3%=1)));

key(use);
keyup(forward);

if(first);
getidrel(%&x1%,+0,%&z1%,&block1);getidrel(%&x2%,+0,%&z2%,&block2);
getidrel(%&x1%,+1,%&z1%,&block3);getidrel(%&x2%,+1,%&z2%,&block4);
ifmatches(%&block1%,soul_sand);&sn=-;endif;ifmatches(%&block3%,soul_sand);&sn=-;endif;
ifmatches(%&block2%,soul_sand);&sn=+;endif;ifmatches(%&block4%,soul_sand);&sn=+;endif;
&dirc=%DIRECTION%;
ifmatches(%&sn%,[\+]);&sn1=+;&sn2=-;endif;
ifmatches(%&sn%,[\-]);&sn1=-;&sn2=+;endif;
unset(first);
endif;

&dir=%DIRECTION%;
ifmatches(%&dirc%,N);ifmatches(%&dir%,N);&sn=%&sn1%;endif;ifmatches(%&dir%,S);&sn=%&sn2%;endif;endif;
ifmatches(%&dirc%,S);ifmatches(%&dir%,N);&sn=%&sn2%;endif;ifmatches(%&dir%,S);&sn=%&sn1%;endif;endif;
ifmatches(%&dirc%,W);ifmatches(%&dir%,W);&sn=%&sn1%;endif;ifmatches(%&dir%,E);&sn=%&sn2%;endif;endif;
ifmatches(%&dirc%,E);ifmatches(%&dir%,W);&sn=%&sn2%;endif;ifmatches(%&dir%,E);&sn=%&sn1%;endif;endif;

look(%&sn%90,);
wait(100ms);

&dir=%DIRECTION%;
ifmatches(%&dir%,N);&dir=NORTH;&z=-1;&x=+0;&z1=+0;&z2=+0;&x1=-1;&x2=+1;endif;
ifmatches(%&dir%,S);&dir=SOUTH;&z=+1;&x=+0;&z1=+0;&z2=+0;&x1=+1;&x2=-1;endif;
ifmatches(%&dir%,E);&dir=EAST;&z=+0;&x=+1;&x1=+0;&x2=+0;&z1=-1;&z2=+1;endif;
ifmatches(%&dir%,W);&dir=WEST;&z=+0;&x=-1;&x1=+0;&x2=+0;&z1=+1;&z2=-1;endif;

getidrel(%&x%,+0,%&z%,&block1);
getidrel(%&x%,+1,%&z%,&block3);

#rf=0;
ifmatches(%&block3%,air);else;inc(#rf,1);endif;
ifmatches(%&block3%,nether_wart);else;inc(#rf,1);endif;
ifmatches(%&block1%,soul_sand);else;#rf=2;endif;
endif;

if(%#rf%=2);
else;
#nposx1 = %XPOS%; #nposx2 = %ZPOS%;
do;
keydown(forward);
pick(nether_wart);
key(use);
until((%XPOS%!=%#nposx1%)|(%ZPOS%!=%#nposx2%));
keyup(forward);
key(attack);
look(%&sn%90,);
endif;
until(%#rf%=2);
keyup(FORWARD);
next;
#flror=1;
loop;
endif;

}$$

Vídeo [Tutorial/Explicação]
Esperando vídeo do JimmyFilips :3
O que fazer (Temporário até o vídeo)
Depois de pegar a macro, basta marcar a /home fungof1 no começo do primeiro andar (ou do único andar), marcar as outras nos próximos andares (se houver) e marcar a /home fungobaus bem no meio do conjunto de baús, como mostrado na imagem abaixo.

Imagens:
Conjunto de baús:
F5IGOHQ.gif

SETHOME no meio, olhando para os baús da esquerda.

Dicas:
- É mais fácil a macro trabalhar em regiões retangulares ou quadradas, até pode funcionar se não for, mas não é garantido.
- É verificado se o inventário está lotado ao fim de cada fileira, ou seja, plantações MUITO maiores que 100x100 não são indicadas.
- Encheu os baús? Dê /sethome fungobaus em um novo conjunto, se quiser acumular o/

Futuras prováveis atualizações:
- Colher apenas se o fungo estiver totalmente crescido. Adicionado! 17/03/2014
- Poder usar qualquer ferramenta para colher. Adicionado! 17/03/2014
- Corrigido bug ao guardar nos baús para alguns. Resolvido! 26/03/2014
- Poder usar ferramentas de ferro para colher (esqueci :{). Adicionado! 30/03/2014
- Delay ao trocar de ferramenta para quebrar os fungos . Adicionado! 06/04/2014

Testei a macro durante meses antes de resolver postar (1.5.2), então tentem usar direitinho antes de apontarem erros o/
Agradecimentos ao faahyoshi, jimmyfilips e xpkill por terem testado a macro várias e várias vezes pra mim *-*
E ao M4K4R0V por apontar um bug importantíssimo. Obg pela paciência (:
tem uma posiçao certa para por as soul sands?
 
Olá amigo, tudo bem?

Eu sou grande fã de seus macros, o seu macro de colheita é um dos melhores, senão, o melhor macro de colheita.

Ele parou de funcionar no TITAN.

Gostaria que você desse uma olhadinha..

De modo que ele nao está mais quebrando o fundo.. mesmo inteiro.

Não é só cmg, tanto que alguns ja foram no seu post dizer isso..

ele falha 90% das vezes.. depois dessa mudança que teve com os fungos ou slá oq.

Grato
 
cara estou usando seu macro (muito bem feito, parabens pelo talento) mas tenho uma duvida, ao colher o macro fica alternando entre o fungo no slot 1 e o machado no slot9 creio q ele so selecione o machado quando detecta um fungo totalmente crescido, mas isso é muito rapido logo nao consigo ver se ele realmente usa o machado pra colher em toda plantaçao. pode me tirar essa duvida ?
obrigado pela atenção.
 
BeetleJuice disse:
[MACRO] Colheita do besouro (1.5.2 e 1.7.2+)

Depois de muito tempo sem postar nada o/
Desculpem o nome do tópico, mas já usaram os normais e beetle significa besouro u.u

O que esta macro faz?
Colhe e planta 2 vezes mais rápido que as macros convencionais, muda de andares sozinho (se houver mais de um andar) e guarda em 24 baús duplos.
Permite parar e continuar e raramente deu algum bug aqui, mesmo com lag.

Vantagens:
- Sinceramente, acho que é o método mais rápido e eficiente possível.
- A plantação e cada andar podem ser de QUALQUER tamanho, você não precisa informar.
- Você pode PAUSAR a colheita segurando a tecla "P" e continuar de onde parou segurando "P" novamente.
- Você pode PARAR a macro e continuar de onde parou quando ligá-la novamente.
- Guardar em baús agrupados, o que facilita muito a venda depois.
- Ao abrir o chat ou o inventário, a macro espera você fechar para continuar.
- Usa qualquer ferramenta que você deixar na hotbar.
- Apenas colhe se o fungo estiver totalmente crescido!

/sethomes:
- Obrigatórias:
/home fungof1 - Andar 1 (ou andar único) - Marque no começo da plantação olhando para qualquer lado que tenha fungos!
/home fungobaus - Baús - Marque no centro do conjunto de baús, olhando para os baús da esquerda, como mostrado no print abaixo!
/home fungotemp (Essa vocês não precisam marcar, mas precisam ter espaço nas setomes para ela, porque a macro marca sozinha)
- Opcionais:
/home fungof2 - Andar 2
/home fungof3 - Andar 3
/home fungof4 - Andar 4
/home fungof5 - Andar 5
/home fungof6 - Andar 6

Macro:
Basta colar em uma tecla qualquer em "Macro bindings", como qualquer outra macro:
1.5.2 (30/03/2014)
$${
if(@neth3);
keyup(forward);
unset(@neth3);
}$$
/sethome fungotemp
$${
#snposx1=%XPOS%; #snposx2=%ZPOS%;
log("&d» &6Plantação Automática &c[OFF]");
stop();
else;
set(@neth3);
#delay=8;#nbau=1;
log("&d» &6Plantação Automática &a[ON]");
PROMPT(&return,$$?,"Continuar de onde estava quando desligou? (S ou N)");
ifmatches(%&return%,^[S|s]);
set(return);
log("&d» &6Continuando a partir de onde foi desligado!");
else;
unset(return);
PROMPT(#fxv,$$?,"Quantos andares são? (O máximo são 6 andares!)"); if(%#fxv%=0);unset(@neth3);stop();endif;
#hfl=1;
if(%#fxv%>1);
&tm=;
if(%#fxv%=2);&tm=1 ou 2?;endif;if(%#fxv%=3);&tm=1, 2 ou 3?;endif;if(%#fxv%=4);&tm=1, 2, 3 ou 4?;endif;if(%#fxv%=5);&tm=1, 2, 3, 4 ou 5?;endif;if(%#fxv%=6);&tm=1, 2, 3, 4, 5 ou 6?;endif;
if(%#fxv%>6);
log("&d» &cOps! &6Número de andares maior que o possível &3(6)&6!");
log("&d» &6Plantação Automática &c[OFF]");
unset(@neth3);
stop();
endif;
PROMPT(#flror,$$?,"Começar por qual andar? %&tm%"); if(%#flror%=0);unset(@neth3);stop();endif;
else;
#flror=1;
endif;
if(%#flror%>%#fxv%);
log(&d» &cOps! &6Andar escolhido para começar é maior que o número de andares que você escolheu! Preste mais atenção nas perguntas &3:/);
log("&d» &6Plantação Automática &c[OFF]");
unset(@neth3);
stop();
endif;
log("&d» &6As sethomes devem ser no estilo: &3/home fungof1 /home fungof2&6 ...");
log("&d» &6A sethome dos baús deve ser &3/home fungobaus &6...");
log("&d» &6Se quiser parar só por um tempo, segure a &3tecla P&6 até parar!");
set(first);
endif;

do;
for(#hfl,%#flror%,%#fxv%);
wait(1);
if(return);
#hfltemp=%#hfl%;#hfl=8000;
}$$
/home fungotemp
$${
do;until((%XPOS%=%#snposx1%)&&(%ZPOS%=%#snposx2%));wait(1);
unset(return);
else;
}$$
$${if(%#hfl%=1);}$$/home fungof1$${endif;}$$
$${if(%#hfl%=2);}$$/home fungof2$${endif;}$$
$${if(%#hfl%=3);}$$/home fungof3$${endif;}$$
$${if(%#hfl%=4);}$$/home fungof4$${endif;}$$
$${if(%#hfl%=5);}$$/home fungof5$${endif;}$$
$${if(%#hfl%=6);}$$/home fungof6$${endif;}$$
$${
wait(8);
set(first);
endif;

keydown(jump);wait(100ms);keyup(jump);wait(1);
&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;

gui();
for(#in,1,9);
getslotitem(%#in%,#idk,#stack);
ifmatches(%#idk%,^269$|^270$|^271$|^273$|^274$|^275$|^277$|^278$|^279$|^284$|^285$|^286$|^256$|^257$|^258$);
#slotl=%#in%;
endif;
next;

look(%&dir%);
look(,+89);
key(attack);
unset(nextfloor);

do;
#stack=0;
keyup(forward);
gui(inventory);
wait(450ms);
getslot(372,#fghot);
getslotitem(35,#id,#stack);
if(%#fghot%<36);
slotclick(%#fghot%,l,true);
endif;
wait(450ms);
gui();

if(%#stack%>0);
#nposx1=%XPOS%; #nposx2=%ZPOS%;
}$$
/sethome fungotemp
$${}$$
/home fungobaus
$${
do;until((%XPOS%!=%#nposx1%)|(%ZPOS%!=%#nposx2%));wait(3);
keydown(jump);wait(100ms);keyup(jump);wait(1);
&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;
do;
look(%&dir%);
if(%#nbau%=1);look(-26,-40);endif;
if(%#nbau%=2);look(+26,-40);endif;
if(%#nbau%=3);look(+65,-40);endif;
if(%#nbau%=4);look(+116,-40);endif;
if(%#nbau%=5);look(+155,-40);endif;
if(%#nbau%=6);look(+206,-40);endif;
if(%#nbau%=7);look(-26,-20);endif;
if(%#nbau%=8);look(+26,-20);endif;
if(%#nbau%=9);look(+65,-20);endif;
if(%#nbau%=10);look(+116,-20);endif;
if(%#nbau%=11);look(+155,-20);endif;
if(%#nbau%=12);look(+206,-20);endif;
if(%#nbau%=13);look(-26,-0);endif;
if(%#nbau%=14);look(+26,-0);endif;
if(%#nbau%=15);look(+65,-0);endif;
if(%#nbau%=16);look(+116,-0);endif;
if(%#nbau%=17);look(+155,-0);endif;
if(%#nbau%=18);look(+206,-0);endif;
if(%#nbau%=19);look(-26,+25);endif;
if(%#nbau%=20);look(+26,+25);endif;
if(%#nbau%=21);look(+65,+25);endif;
if(%#nbau%=22);look(+116,+25);endif;
if(%#nbau%=23);look(+155,+25);endif;
if(%#nbau%=24);look(+206,+25);endif;
wait(1);
key(use);
wait(4);
for(#i,54,87);
getslotitem(%#i%,#ide,#stacke);
if(%#ide%=372);
slotclick(%#i%,l,true);
wait(30ms);
endif;
next;
wait(250ms);
getslotitem(53,#id,#stack);
wait(250ms);
if(%#stack%!=0);
#nbau=%#nbau%+1;
if(%#nbau%=25);
unset(@neth3);
log("&d» &6Baús cheios?");
log("&d» &6Plantação Automática &c[OFF]");
stop();
endif;
endif;
gui();
until(%#stack%=0);
}$$
/home fungotemp
$${
wait(%#delay%);
keydown(jump);wait(100ms);keyup(jump);wait(1);
else;
gui();
endif;

do;
&dir=%DIRECTION%;
ifmatches(%&dir%,N);&dir=NORTH;&z=-1;&x=+0;&z1=+0;&z2=+0;&x1=-1;&x2=+1;endif;
ifmatches(%&dir%,S);&dir=SOUTH;&z=+1;&x=+0;&z1=+0;&z2=+0;&x1=+1;&x2=-1;endif;
ifmatches(%&dir%,E);&dir=EAST;&z=+0;&x=+1;&x1=+0;&x2=+0;&z1=-1;&z2=+1;endif;
ifmatches(%&dir%,W);&dir=WEST;&z=+0;&x=-1;&x1=+0;&x2=+0;&z1=+1;&z2=-1;endif;

ifmatches(%GUI%,chat|inventory);
keyup(forward);
log(&d» &6Chat ou inventório detectado. &3Macro pausado!);
do;
ifmatches(%GUI%,CHAT|INVENTORY);
else;
#g=0;
endif;
until(%#g%=0);
#g=1;
log(&d» &6Chat ou inventório fechado. &3Continuando!);
endif;

if(KEY_P);
keyup(forward);
wait(200ms);
#nposx1=%XPOS%;#nposx2=%ZPOS%;
}$$
/sethome fungotemp
$${
log(&d» &6Plantação automática &3interrompida&6!);
log(&d» &6Para continuar, segure a &3tecla P &6por 3 segundos!);
do;
if(KEY_P);
wait(3);
if(KEY_P);
wait(200ms);
if(KEY_P);
set(resume);
endif;
endif;
endif;
until(resume);
unset(resume);
}$$
/home fungotemp
$${
log("&d» &6Plantação automática &3retomada&6!");
log("&d» &6Não mexa o mouse, oki? &3:)");
do;until((%XPOS%=%#nposx1%)&&(%ZPOS%=%#nposx2%));
wait(2);
endif;

&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;

look(%&dir%);
look(,+89);
#nposx1=%XPOS%; #nposx2=%ZPOS%;
do;
keydown(forward);
pick(372);
key(use);
getidrel(%&x%,+0,%&z%,#blockd);
getidrel(%&x%,+1,%&z%,#blocku);
until((%XPOS%!=%#nposx1%)|(%ZPOS%!=%#nposx2%)|(%#blockd%!=88)|(%#blocku%!=115)&&(%#blocku%!=0));
slot(%#slotl%);
if(%HITDATA%=3);key(attack);wait(10ms);endif;
until((%#blockd%!=88)|(%#blocku%!=115)&&(%#blocku%!=0));

key(use);
keyup(forward);

if(first);
getidrel(%&x1%,+0,%&z1%,#block1);getidrel(%&x2%,+0,%&z2%,#block2);
getidrel(%&x1%,+1,%&z1%,#block3);getidrel(%&x2%,+1,%&z2%,#block4);
if((%#block1%=88)|(%#block3%=88));&sn=-;endif;
if((%#block2%=88)|(%#block4%=88));&sn=+;endif;
&dirc=%DIRECTION%;
ifmatches(%&sn%,[\+]);&sn1=+;&sn2=-;endif;
ifmatches(%&sn%,[\-]);&sn1=-;&sn2=+;endif;
unset(first);
endif;

&dir=%DIRECTION%;
ifmatches(%&dirc%,N);ifmatches(%&dir%,N);&sn=%&sn1%;endif;ifmatches(%&dir%,S);&sn=%&sn2%;endif;endif;
ifmatches(%&dirc%,S);ifmatches(%&dir%,N);&sn=%&sn2%;endif;ifmatches(%&dir%,S);&sn=%&sn1%;endif;endif;
ifmatches(%&dirc%,W);ifmatches(%&dir%,W);&sn=%&sn1%;endif;ifmatches(%&dir%,E);&sn=%&sn2%;endif;endif;
ifmatches(%&dirc%,E);ifmatches(%&dir%,W);&sn=%&sn2%;endif;ifmatches(%&dir%,E);&sn=%&sn1%;endif;endif;

look(%&sn%90,);
wait(100ms);

&dir=%DIRECTION%;
ifmatches(%&dir%,N);&dir=NORTH;&z=-1;&x=+0;&z1=+0;&z2=+0;&x1=-1;&x2=+1;endif;
ifmatches(%&dir%,S);&dir=SOUTH;&z=+1;&x=+0;&z1=+0;&z2=+0;&x1=+1;&x2=-1;endif;
ifmatches(%&dir%,E);&dir=EAST;&z=+0;&x=+1;&x1=+0;&x2=+0;&z1=-1;&z2=+1;endif;
ifmatches(%&dir%,W);&dir=WEST;&z=+0;&x=-1;&x1=+0;&x2=+0;&z1=+1;&z2=-1;endif;

getidrel(%&x%,+0,%&z%,#block1);
getidrel(%&x%,+1,%&z%,#block3);

if(((%#block3%!=0)&&(%#block3%!=115))|(%#block1%!=88));
set(nextfloor);
endif;

if(nextfloor);
else;
#nposx1 = %XPOS%; #nposx2 = %ZPOS%;
do;
keydown(forward);
pick(372);
key(use);
until((%XPOS%!=%#nposx1%)|(%ZPOS%!=%#nposx2%));
keyup(forward);
key(attack);
look(%&sn%90,);
endif;
until(nextfloor);
keyup(FORWARD);
next;
#flror=1;
loop;
endif;
}$$
1.7.2+ (26/03/2014) (PS: A versão BETA do macro está instável, não é garantido que sempre funcione.)
$${
if(@neth3);
keyup(forward);
unset(@neth3);
}$$
/sethome fungotemp
$${
#snposx1=%XPOS%; #snposx2=%ZPOS%;
log("&d» &6Plantação Automática &c[OFF]");
stop();
else;
set(@neth3);
#delay=8;#nbau=1;
log("&d» &6Plantação Automática &a[ON]");
PROMPT(&return,$$?,"Continuar de onde estava quando desligou? (S ou N)");
ifmatches(%&return%,^[S|s]);
set(return);
log("&d» &6Continuando a partir de onde foi desligado!");
else;
unset(return);
PROMPT(#fxv,$$?,"Quantos andares são? (O máximo são 6 andares!)"); if(%#fxv%=0);unset(@neth3);stop();endif;
#hfl=1;
if(%#fxv%>1);
&tm=;
if(%#fxv%=2);&tm=1 ou 2?;endif;if(%#fxv%=3);&tm=1, 2 ou 3?;endif;if(%#fxv%=4);&tm=1, 2, 3 ou 4?;endif;if(%#fxv%=5);&tm=1, 2, 3, 4 ou 5?;endif;if(%#fxv%=6);&tm=1, 2, 3, 4, 5 ou 6?;endif;
if(%#fxv%>6);
log("&d» &cOps! &6Número de andares maior que o possível &3(6)&6!");
log("&d» &6Plantação Automática &c[OFF]");
unset(@neth3);
stop();
endif;
PROMPT(#flror,$$?,"Começar por qual andar? %&tm%"); if(%#flror%=0);unset(@neth3);stop();endif;
else;
#flror=1;
endif;
if(%#flror%>%#fxv%);
log(&d» &cOps! &6Andar escolhido para começar é maior que o número de andares que você escolheu! Preste mais atenção nas perguntas &3:/);
log("&d» &6Plantação Automática &c[OFF]");
unset(@neth3);
stop();
endif;
log("&d» &6As sethomes devem ser no estilo: &3/home fungof1 /home fungof2&6 ...");
log("&d» &6A sethome dos baús deve ser &3/home fungobaus &6...");
log("&d» &6Se quiser parar só por um tempo, segure a &3tecla P&6 até parar!");
set(first);
endif;

do;
for(#hfl,%#flror%,%#fxv%);
wait(1);
if(return);
#hfltemp=%#hfl%;#hfl=8000;
}$$
/home fungotemp
$${
do;until((%XPOS%=%#snposx1%)&&(%ZPOS%=%#snposx2%));wait(1);
unset(return);
else;
}$$
$${if(%#hfl%=1);}$$/home fungof1$${endif;}$$
$${if(%#hfl%=2);}$$/home fungof2$${endif;}$$
$${if(%#hfl%=3);}$$/home fungof3$${endif;}$$
$${if(%#hfl%=4);}$$/home fungof4$${endif;}$$
$${if(%#hfl%=5);}$$/home fungof5$${endif;}$$
$${if(%#hfl%=6);}$$/home fungof6$${endif;}$$
$${
wait(8);
set(first);
endif;

keydown(jump);wait(100ms);keyup(jump);wait(1);
&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;

gui();
for(#in,1,9);
getslotitem(%#in%,&idk,#stack);
ifmatches(%&idk%,shovel|pickaxe|axe);
#slotl=%#in%;
endif;
next;

look(%&dir%);
look(,+89);
key(attack);
unset(nextfloor);

do;
#stack=0;
keyup(forward);
gui(inventory);
wait(450ms);
getslot(372,#fghot);
getslotitem(35,&id,#stack);
if(%#fghot%<36);
slotclick(%#fghot%,l,true);
endif;
wait(450ms);
gui();

if(%#stack%>0);
#nposx1=%XPOS%; #nposx2=%ZPOS%;
}$$
/sethome fungotemp
$${}$$
/home fungobaus
$${
do;until((%XPOS%!=%#nposx1%)|(%ZPOS%!=%#nposx2%));wait(3);
keydown(jump);wait(100ms);keyup(jump);wait(1);
&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;
do;
look(%&dir%);
if(%#nbau%=1);look(-26,-40);endif;
if(%#nbau%=2);look(+26,-40);endif;
if(%#nbau%=3);look(+65,-40);endif;
if(%#nbau%=4);look(+116,-40);endif;
if(%#nbau%=5);look(+155,-40);endif;
if(%#nbau%=6);look(+206,-40);endif;
if(%#nbau%=7);look(-26,-20);endif;
if(%#nbau%=8);look(+26,-20);endif;
if(%#nbau%=9);look(+65,-20);endif;
if(%#nbau%=10);look(+116,-20);endif;
if(%#nbau%=11);look(+155,-20);endif;
if(%#nbau%=12);look(+206,-20);endif;
if(%#nbau%=13);look(-26,-0);endif;
if(%#nbau%=14);look(+26,-0);endif;
if(%#nbau%=15);look(+65,-0);endif;
if(%#nbau%=16);look(+116,-0);endif;
if(%#nbau%=17);look(+155,-0);endif;
if(%#nbau%=18);look(+206,-0);endif;
if(%#nbau%=19);look(-26,+25);endif;
if(%#nbau%=20);look(+26,+25);endif;
if(%#nbau%=21);look(+65,+25);endif;
if(%#nbau%=22);look(+116,+25);endif;
if(%#nbau%=23);look(+155,+25);endif;
if(%#nbau%=24);look(+206,+25);endif;
wait(1);
key(use);
wait(4);
for(#i,54,87);
getslotitem(%#i%,&ide,#stacke);
ifmatches(%&ide%,nether_wart);
slotclick(%#i%,l,true);
wait(30ms);
endif;
next;
wait(250ms);
getslotitem(53,&id,#stack);
wait(250ms);
if(%#stack%!=0);
#nbau=%#nbau%+1;
if(%#nbau%=25);
unset(@neth3);
log("&d» &6Baús cheios?");
log("&d» &6Plantação Automática &c[OFF]");
stop();
endif;
endif;
gui();
until(%#stack%=0);
}$$
/home fungotemp
$${
wait(%#delay%);
keydown(jump);wait(100ms);keyup(jump);wait(1);
else;
gui();
endif;

do;
&dir=%DIRECTION%;
ifmatches(%&dir%,N);&dir=NORTH;&z=-1;&x=+0;&z1=+0;&z2=+0;&x1=-1;&x2=+1;endif;
ifmatches(%&dir%,S);&dir=SOUTH;&z=+1;&x=+0;&z1=+0;&z2=+0;&x1=+1;&x2=-1;endif;
ifmatches(%&dir%,E);&dir=EAST;&z=+0;&x=+1;&x1=+0;&x2=+0;&z1=-1;&z2=+1;endif;
ifmatches(%&dir%,W);&dir=WEST;&z=+0;&x=-1;&x1=+0;&x2=+0;&z1=+1;&z2=-1;endif;

ifmatches(%GUI%,chat|inventory);
keyup(forward);
log(&d» &6Chat ou inventório detectado. &3Macro pausado!);
do;
ifmatches(%GUI%,CHAT|INVENTORY);
else;
#g=0;
endif;
until(%#g%=0);
#g=1;
log(&d» &6Chat ou inventório fechado. &3Continuando!);
endif;

if(KEY_P);
keyup(forward);
wait(200ms);
#nposx1=%XPOS%;#nposx2=%ZPOS%;
}$$
/sethome fungotemp
$${
log(&d» &6Plantação automática &3interrompida&6!);
log(&d» &6Para continuar, segure a &3tecla P &6por 3 segundos!);
do;
if(KEY_P);
wait(3);
if(KEY_P);
wait(200ms);
if(KEY_P);
set(resume);
endif;
endif;
endif;
until(resume);
unset(resume);
}$$
/home fungotemp
$${
log("&d» &6Plantação automática &3retomada&6!");
log("&d» &6Não mexa o mouse, oki? &3:)");
do;until((%XPOS%=%#nposx1%)&&(%ZPOS%=%#nposx2%));
wait(2);
endif;

&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;

look(%&dir%);
look(,+89);
#nposx1=%XPOS%; #nposx2=%ZPOS%;
do;
keydown(forward);
pick(nether_wart);
key(use);
getidrel(%&x%,+0,%&z%,&blockd);
getidrel(%&x%,+1,%&z%,&blocku);
ifmatches(%&blockd%,soul_sand);#cond1=0;else;#cond1=1;endif;
ifmatches(%&blocku%,nether_wart);#cond2=0;else;#cond2=1;endif;
ifmatches(%&blocku%,air);#cond3=0;else;#cond3=1;endif;
until((%XPOS%!=%#nposx1%)|(%ZPOS%!=%#nposx2%)|(%#cond1%=1)|(%#cond2%=1)&&(%#cond3%=1));
slot(%#slotl%);
if(%HITDATA%=3);key(attack);wait(10ms);endif;
ifmatches(%&blockd%,soul_sand);#cond1=0;else;#cond1=1;endif;
ifmatches(%&blocku%,nether_wart);#cond2=0;else;#cond2=1;endif;
ifmatches(%&blocku%,air);#cond3=0;else;#cond3=1;endif;
until((%#cond1%=1)|(%#cond2%=1)&&(%#cond3%=1));

key(use);
keyup(forward);

if(first);
getidrel(%&x1%,+0,%&z1%,&block1);getidrel(%&x2%,+0,%&z2%,&block2);
getidrel(%&x1%,+1,%&z1%,&block3);getidrel(%&x2%,+1,%&z2%,&block4);
ifmatches(%&block1%,soul_sand);&sn=-;endif;ifmatches(%&block3%,soul_sand);&sn=-;endif;
ifmatches(%&block2%,soul_sand);&sn=+;endif;ifmatches(%&block4%,soul_sand);&sn=+;endif;
&dirc=%DIRECTION%;
ifmatches(%&sn%,[\+]);&sn1=+;&sn2=-;endif;
ifmatches(%&sn%,[\-]);&sn1=-;&sn2=+;endif;
unset(first);
endif;

&dir=%DIRECTION%;
ifmatches(%&dirc%,N);ifmatches(%&dir%,N);&sn=%&sn1%;endif;ifmatches(%&dir%,S);&sn=%&sn2%;endif;endif;
ifmatches(%&dirc%,S);ifmatches(%&dir%,N);&sn=%&sn2%;endif;ifmatches(%&dir%,S);&sn=%&sn1%;endif;endif;
ifmatches(%&dirc%,W);ifmatches(%&dir%,W);&sn=%&sn1%;endif;ifmatches(%&dir%,E);&sn=%&sn2%;endif;endif;
ifmatches(%&dirc%,E);ifmatches(%&dir%,W);&sn=%&sn2%;endif;ifmatches(%&dir%,E);&sn=%&sn1%;endif;endif;

look(%&sn%90,);
wait(100ms);

&dir=%DIRECTION%;
ifmatches(%&dir%,N);&dir=NORTH;&z=-1;&x=+0;&z1=+0;&z2=+0;&x1=-1;&x2=+1;endif;
ifmatches(%&dir%,S);&dir=SOUTH;&z=+1;&x=+0;&z1=+0;&z2=+0;&x1=+1;&x2=-1;endif;
ifmatches(%&dir%,E);&dir=EAST;&z=+0;&x=+1;&x1=+0;&x2=+0;&z1=-1;&z2=+1;endif;
ifmatches(%&dir%,W);&dir=WEST;&z=+0;&x=-1;&x1=+0;&x2=+0;&z1=+1;&z2=-1;endif;

getidrel(%&x%,+0,%&z%,&block1);
getidrel(%&x%,+1,%&z%,&block3);

#rf=0;
ifmatches(%&block3%,air);else;inc(#rf,1);endif;
ifmatches(%&block3%,nether_wart);else;inc(#rf,1);endif;
ifmatches(%&block1%,soul_sand);else;#rf=2;endif;
endif;

if(%#rf%=2);
else;
#nposx1 = %XPOS%; #nposx2 = %ZPOS%;
do;
keydown(forward);
pick(nether_wart);
key(use);
until((%XPOS%!=%#nposx1%)|(%ZPOS%!=%#nposx2%));
keyup(forward);
key(attack);
look(%&sn%90,);
endif;
until(%#rf%=2);
keyup(FORWARD);
next;
#flror=1;
loop;
endif;
}$$
1.7.2+ (2 conjuntos de baús)
$${
if(@neth3);
keyup(forward);
unset(@neth3);
}$$
/sethome fungotemp
$${
#snposx1=%XPOS%; #snposx2=%ZPOS%;
log("&d» &6Plantação Automática &c[OFF]");
stop();
else;
set(@neth3);
#delay=8;#nbau=1;
log("&d» &6Plantação Automática &a[ON]");
PROMPT(&return,$$?,"Continuar de onde estava quando desligou? (S ou N)");
ifmatches(%&return%,^[S|s]);
set(return);
log("&d» &6Continuando a partir de onde foi desligado!");
else;
#ch=1;
unset(return);
PROMPT(#fxv,$$?,"Quantos andares são? (O máximo são 6 andares!)"); if(%#fxv%=0);unset(@neth3);stop();endif;
#hfl=1;
if(%#fxv%>1);
&tm=;
if(%#fxv%=2);&tm=1 ou 2?;endif;if(%#fxv%=3);&tm=1, 2 ou 3?;endif;if(%#fxv%=4);&tm=1, 2, 3 ou 4?;endif;if(%#fxv%=5);&tm=1, 2, 3, 4 ou 5?;endif;if(%#fxv%=6);&tm=1, 2, 3, 4, 5 ou 6?;endif;
if(%#fxv%>6);
log("&d» &cOps! &6Número de andares maior que o possível &3(6)&6!");
log("&d» &6Plantação Automática &c[OFF]");
unset(@neth3);
stop();
endif;
PROMPT(#flror,$$?,"Começar por qual andar? %&tm%"); if(%#flror%=0);unset(@neth3);stop();endif;
else;
#flror=1;
endif;
if(%#flror%>%#fxv%);
log(&d» &cOps! &6Andar escolhido para começar é maior que o número de andares que você escolheu! Preste mais atenção nas perguntas &3:/);
log("&d» &6Plantação Automática &c[OFF]");
unset(@neth3);
stop();
endif;
log("&d» &6As sethomes devem ser no estilo: &3/home fungof1 /home fungof2&6 ...");
log("&d» &6A sethome dos baús deve ser &3/home fungobaus &6...");
log("&d» &6Se quiser parar só por um tempo, segure a &3tecla P&6 até parar!");
set(first);
endif;

do;
for(#hfl,%#flror%,%#fxv%);
wait(1);
if(return);
#hfltemp=%#hfl%;#hfl=8000;
}$$
/home fungotemp
$${
do;until((%XPOS%=%#snposx1%)&&(%ZPOS%=%#snposx2%));wait(1);
unset(return);
else;
}$$
$${if(%#hfl%=1);}$$/home fungof1$${endif;}$$
$${if(%#hfl%=2);}$$/home fungof2$${endif;}$$
$${if(%#hfl%=3);}$$/home fungof3$${endif;}$$
$${if(%#hfl%=4);}$$/home fungof4$${endif;}$$
$${if(%#hfl%=5);}$$/home fungof5$${endif;}$$
$${if(%#hfl%=6);}$$/home fungof6$${endif;}$$
$${
wait(8);
set(first);
endif;

keydown(jump);wait(100ms);keyup(jump);wait(1);
&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;

gui();
for(#in,1,9);
getslotitem(%#in%,&idk,#stack);
ifmatches(%&idk%,shovel|pickaxe|axe);
#slotl=%#in%;
endif;
next;

look(%&dir%);
look(,+89);
key(attack);
unset(nextfloor);

do;
#stack=0;
keyup(forward);
gui(inventory);
wait(450ms);
getslot(372,#fghot);
getslotitem(35,&id,#stack);
if(%#fghot%<36);
slotclick(%#fghot%,l,true);
endif;
wait(450ms);
gui();

if(%#stack%>0);
#nposx1=%XPOS%; #nposx2=%ZPOS%;
}$$
/sethome fungotemp
$${
if(%#ch%=1);}$$/home fungobaus1$${endif;
if(%#ch%=2);}$$/home fungobaus2$${endif;
do;until((%XPOS%!=%#nposx1%)|(%ZPOS%!=%#nposx2%));wait(3);
keydown(jump);wait(100ms);keyup(jump);wait(1);
&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;
do;
look(%&dir%);
if(%#nbau%=1);look(-26,-40);endif;
if(%#nbau%=2);look(+26,-40);endif;
if(%#nbau%=3);look(+65,-40);endif;
if(%#nbau%=4);look(+116,-40);endif;
if(%#nbau%=5);look(+155,-40);endif;
if(%#nbau%=6);look(+206,-40);endif;
if(%#nbau%=7);look(-26,-20);endif;
if(%#nbau%=8);look(+26,-20);endif;
if(%#nbau%=9);look(+65,-20);endif;
if(%#nbau%=10);look(+116,-20);endif;
if(%#nbau%=11);look(+155,-20);endif;
if(%#nbau%=12);look(+206,-20);endif;
if(%#nbau%=13);look(-26,-0);endif;
if(%#nbau%=14);look(+26,-0);endif;
if(%#nbau%=15);look(+65,-0);endif;
if(%#nbau%=16);look(+116,-0);endif;
if(%#nbau%=17);look(+155,-0);endif;
if(%#nbau%=18);look(+206,-0);endif;
if(%#nbau%=19);look(-26,+25);endif;
if(%#nbau%=20);look(+26,+25);endif;
if(%#nbau%=21);look(+65,+25);endif;
if(%#nbau%=22);look(+116,+25);endif;
if(%#nbau%=23);look(+155,+25);endif;
if(%#nbau%=24);look(+206,+25);endif;
wait(1);
key(use);
wait(4);
for(#i,54,87);
getslotitem(%#i%,&ide,#stacke);
ifmatches(%&ide%,nether_wart);
slotclick(%#i%,l,true);
wait(30ms);
endif;
next;
wait(250ms);
getslotitem(53,&id,#stack);
wait(250ms);
if(%#stack%!=0);
#nbau=%#nbau%+1;
if(%#nbau%=25);
unset(@neth3);
log("&d» &6Baús cheios?");
if(%#ch%=1);
log("&d» &6Segundo conjunto de baús!");
#ch=2;
#nbau=1;
}$$/home fungobaus2$${
do;until((%XPOS%!=%#nposx1%)|(%ZPOS%!=%#nposx2%));wait(3);
keydown(jump);wait(100ms);keyup(jump);wait(1);
&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;
else;
log("&d» &6Plantação Automática &c[OFF]");
stop();
endif;
endif;
endif;
gui();
until(%#stack%=0);
}$$
/home fungotemp
$${
wait(%#delay%);
keydown(jump);wait(100ms);keyup(jump);wait(1);
else;
gui();
endif;

do;
&dir=%DIRECTION%;
ifmatches(%&dir%,N);&dir=NORTH;&z=-1;&x=+0;&z1=+0;&z2=+0;&x1=-1;&x2=+1;endif;
ifmatches(%&dir%,S);&dir=SOUTH;&z=+1;&x=+0;&z1=+0;&z2=+0;&x1=+1;&x2=-1;endif;
ifmatches(%&dir%,E);&dir=EAST;&z=+0;&x=+1;&x1=+0;&x2=+0;&z1=-1;&z2=+1;endif;
ifmatches(%&dir%,W);&dir=WEST;&z=+0;&x=-1;&x1=+0;&x2=+0;&z1=+1;&z2=-1;endif;

ifmatches(%GUI%,chat|inventory);
keyup(forward);
log(&d» &6Chat ou inventório detectado. &3Macro pausado!);
do;
ifmatches(%GUI%,CHAT|INVENTORY);
else;
#g=0;
endif;
until(%#g%=0);
#g=1;
log(&d» &6Chat ou inventório fechado. &3Continuando!);
endif;

if(KEY_P);
keyup(forward);
wait(200ms);
#nposx1=%XPOS%;#nposx2=%ZPOS%;
}$$
/sethome fungotemp
$${
log(&d» &6Plantação automática &3interrompida&6!);
log(&d» &6Para continuar, segure a &3tecla P &6por 3 segundos!);
do;
if(KEY_P);
wait(3);
if(KEY_P);
wait(200ms);
if(KEY_P);
set(resume);
endif;
endif;
endif;
until(resume);
unset(resume);
}$$
/home fungotemp
$${
log("&d» &6Plantação automática &3retomada&6!");
log("&d» &6Não mexa o mouse, oki? &3:)");
do;until((%XPOS%=%#nposx1%)&&(%ZPOS%=%#nposx2%));
wait(2);
endif;

&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;

look(%&dir%);
look(,+89);
#nposx1=%XPOS%; #nposx2=%ZPOS%;
do;
keydown(forward);
pick(nether_wart);
key(use);
getidrel(%&x%,+0,%&z%,&blockd);
getidrel(%&x%,+1,%&z%,&blocku);
ifmatches(%&blockd%,soul_sand);#cond1=0;else;#cond1=1;endif;
ifmatches(%&blocku%,nether_wart);#cond2=0;else;#cond2=1;endif;
ifmatches(%&blocku%,air);#cond3=0;else;#cond3=1;endif;
until((%XPOS%!=%#nposx1%)|(%ZPOS%!=%#nposx2%)|(%#cond1%=1)|(%#cond2%=1)&&(%#cond3%=1));
slot(%#slotl%);
if(%HITDATA%=3);key(attack);endif;
ifmatches(%&blockd%,soul_sand);#cond1=0;else;#cond1=1;endif;
ifmatches(%&blocku%,nether_wart);#cond2=0;else;#cond2=1;endif;
ifmatches(%&blocku%,air);#cond3=0;else;#cond3=1;endif;
until((%#cond1%=1)|((%#cond2%=1)&&(%#cond3%=1)));

key(use);
keyup(forward);

if(first);
getidrel(%&x1%,+0,%&z1%,&block1);getidrel(%&x2%,+0,%&z2%,&block2);
getidrel(%&x1%,+1,%&z1%,&block3);getidrel(%&x2%,+1,%&z2%,&block4);
ifmatches(%&block1%,soul_sand);&sn=-;endif;ifmatches(%&block3%,soul_sand);&sn=-;endif;
ifmatches(%&block2%,soul_sand);&sn=+;endif;ifmatches(%&block4%,soul_sand);&sn=+;endif;
&dirc=%DIRECTION%;
ifmatches(%&sn%,[\+]);&sn1=+;&sn2=-;endif;
ifmatches(%&sn%,[\-]);&sn1=-;&sn2=+;endif;
unset(first);
endif;

&dir=%DIRECTION%;
ifmatches(%&dirc%,N);ifmatches(%&dir%,N);&sn=%&sn1%;endif;ifmatches(%&dir%,S);&sn=%&sn2%;endif;endif;
ifmatches(%&dirc%,S);ifmatches(%&dir%,N);&sn=%&sn2%;endif;ifmatches(%&dir%,S);&sn=%&sn1%;endif;endif;
ifmatches(%&dirc%,W);ifmatches(%&dir%,W);&sn=%&sn1%;endif;ifmatches(%&dir%,E);&sn=%&sn2%;endif;endif;
ifmatches(%&dirc%,E);ifmatches(%&dir%,W);&sn=%&sn2%;endif;ifmatches(%&dir%,E);&sn=%&sn1%;endif;endif;

look(%&sn%90,);
wait(100ms);

&dir=%DIRECTION%;
ifmatches(%&dir%,N);&dir=NORTH;&z=-1;&x=+0;&z1=+0;&z2=+0;&x1=-1;&x2=+1;endif;
ifmatches(%&dir%,S);&dir=SOUTH;&z=+1;&x=+0;&z1=+0;&z2=+0;&x1=+1;&x2=-1;endif;
ifmatches(%&dir%,E);&dir=EAST;&z=+0;&x=+1;&x1=+0;&x2=+0;&z1=-1;&z2=+1;endif;
ifmatches(%&dir%,W);&dir=WEST;&z=+0;&x=-1;&x1=+0;&x2=+0;&z1=+1;&z2=-1;endif;

getidrel(%&x%,+0,%&z%,&block1);
getidrel(%&x%,+1,%&z%,&block3);

#rf=0;
ifmatches(%&block3%,air);else;inc(#rf,1);endif;
ifmatches(%&block3%,nether_wart);else;inc(#rf,1);endif;
ifmatches(%&block1%,soul_sand);else;#rf=2;endif;
endif;

if(%#rf%=2);
else;
#nposx1 = %XPOS%; #nposx2 = %ZPOS%;
do;
keydown(forward);
pick(nether_wart);
key(use);
until((%XPOS%!=%#nposx1%)|(%ZPOS%!=%#nposx2%));
keyup(forward);
key(attack);
look(%&sn%90,);
endif;
until(%#rf%=2);
keyup(FORWARD);
next;
#flror=1;
loop;
endif;

}$$

Vídeo [Tutorial/Explicação]
Esperando vídeo do JimmyFilips :3
O que fazer (Temporário até o vídeo)
Depois de pegar a macro, basta marcar a /home fungof1 no começo do primeiro andar (ou do único andar), marcar as outras nos próximos andares (se houver) e marcar a /home fungobaus bem no meio do conjunto de baús, como mostrado na imagem abaixo.

Imagens:
Conjunto de baús:
F5IGOHQ.gif

SETHOME no meio, olhando para os baús da esquerda.

Dicas:
- É mais fácil a macro trabalhar em regiões retangulares ou quadradas, até pode funcionar se não for, mas não é garantido.
- É verificado se o inventário está lotado ao fim de cada fileira, ou seja, plantações MUITO maiores que 100x100 não são indicadas.
- Encheu os baús? Dê /sethome fungobaus em um novo conjunto, se quiser acumular o/

Futuras prováveis atualizações:
- Colher apenas se o fungo estiver totalmente crescido. Adicionado! 17/03/2014
- Poder usar qualquer ferramenta para colher. Adicionado! 17/03/2014
- Corrigido bug ao guardar nos baús para alguns. Resolvido! 26/03/2014
- Poder usar ferramentas de ferro para colher (esqueci :{). Adicionado! 30/03/2014
- Delay ao trocar de ferramenta para quebrar os fungos . Adicionado! 06/04/2014

Testei a macro durante meses antes de resolver postar (1.5.2), então tentem usar direitinho antes de apontarem erros o/
Agradecimentos ao faahyoshi, jimmyfilips e xpkill por terem testado a macro várias e várias vezes pra mim *-*
E ao M4K4R0V por apontar um bug importantíssimo. Obg pela paciência (:
Cara, no titan não ta quebrando os fungos, ta passando reto, adoro seu macro, teria como arrumar?
 
Status
Não está aberto para novas respostas.

Users who are viewing this thread

Voltar
Topo