$${
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;#h=; #v=; &x=+;
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%);wait(100ms);
look(-23,+0);wait(100ms);
look(+0,0);wait(100ms);
look(+0,-40);wait(100ms);
look(%&x%%#h%,%&x%%#v%);wait(200ms);
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);
#h=%#h%+45;
endif;
if(%#h%=270);
#v=%#v%+20;
#h=;
gui();
wait(500ms);
else;
gui();
endif;
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;
}$$