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.
Gostaria de saber por que não funciona na versão 1.8! Algum programador explica detalhadamente ?
 
Mas com o novo sistema de homes esse macro buga na hora de guardar os fungos, poderia atualizar fazendo favor?
 
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:
É necessário configurar o seu minecraft para funcionar em segundo plano, ou deixar a tela do minecraft sempre em primeiro plano.
Veja como deixar em segundo plano aqui: http://forum.craftlandia.com.br/ipb/index.php?/topic/191827-tutorial-usando-qualquer-macro-em-segundo-plano/
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%>2);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%>2);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%>2);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;

}$$

Como usar:
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.

Vídeo: (Feito por "johgledicas")
https://www.youtube.com/watch?v=SGBW-PjF-J0

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 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
- Problema com fungos fertilizados com o novo comando "/fertilizar". Arrumado! 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 (:
faz essa macro pro propano ;D
 
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:
É necessário configurar o seu minecraft para funcionar em segundo plano, ou deixar a tela do minecraft sempre em primeiro plano.
Veja como deixar em segundo plano aqui: http://forum.craftlandia.com.br/ipb/index.php?/topic/191827-tutorial-usando-qualquer-macro-em-segundo-plano/
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%>2);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%>2);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%>2);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;

}$$

Como usar:
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.

Vídeo: (Feito por "johgledicas")
https://www.youtube.com/watch?v=SGBW-PjF-J0

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 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
- Problema com fungos fertilizados com o novo comando "/fertilizar". Arrumado! 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 (:
Vai atualizar pra 1.8 ? =D
 
Ying disse:
Ola, tem como atualizar pra versão 1.8 (propano) fazendo uma favorzão

iGrox disse:

GeoBR disse:
faz essa macro pro propano ;D

iLuanGamer disse:
macro bugou no propano '-'

Daarkzinho disse:
Mas com o novo sistema de homes esse macro buga na hora de guardar os fungos, poderia atualizar fazendo favor?

WarpZero disse:
Gostaria de saber por que não funciona na versão 1.8! Algum programador explica detalhadamente ?
O que muda nesse novo servidor?
 
BeetleJuice disse:
O que muda nesse novo servidor?
Beetle!!!! Quanto tempo!!
Muda algumas coisas kk, como o %HITID% não funciona, ele nao consegue pegar id de nenhum item do inv, nem com GETSLOTITEM, nem PICK. kk Ele ta em beta pra 1.8 ainda, tem muitos bugs haha
 
Status
Não está aberto para novas respostas.

Users who are viewing this thread

Voltar
Topo