O que a macro faz:
Ela colhe sua plantação, independente do tamanho dela, e guarda nos baus no final da plantação, quando acaba esse andar ela vai para o proximo (máximo de 2 andares), terminando o segundo andar, ela volta para o primeiro e repete até você desligar ela.
Como sua plantação deve ser:
Testei a macro de 3 formas, 3 tipos de plantação e ela funcionou bem nas 3 plantações.
Tipos de plantação:
No caso de não conseguir ver o design dela, a lã em baixo mostra como é, sendo lã colorida representando areia.
![[IMG]](http://i.imgur.com/sEvXz6f.png)
Particularmente eu prefiro o design do meio, pois tem mais canas por área, ou o design da esquerda pois se economiza mais água.
Importante:
-Sua plantação deve estar cercada, ou seja deve ter um tipo qualquer de bloco circulando sua plantação num muro de pelo menos 2 de altura (na altura dos olhos), usei vidro e arenito na foto mas qualquer bloco serve (só não use areia pra não dar erro mais na frente da macro).
-Não pode ter água não coberta, toda água deve estar coberta com carpete (ou vitorias regias mas ai teria que mudar na macro, e não poderia economizar na hora de colocar água)
-Deve ter em um dos lados baus para guardar as canas.
-O segundo andar da sua plantação deve ter a mesma orientação do primeiro. Por exemplo: se no 1º os baus estão do lado norte, no 2º eles deverão estar também no lado norte.
Aonde você irá setar home:
Lembre-se sete a home olhando para longe dos baus. Caso esteja olhando para os baus set a home na frente do bau no canto esquerdo. (Faça o mesmo no 2º andar);
Nomes das home: /home cana1 e /home cana2
Para colocar baus lado a lado alterne bau normal com bau com armadilha, caso queira economizar no ferro pode-se colocar os baus assim:
![[IMG]](http://i.imgur.com/EBONpUt.png)
Ai você só usa bau normal, com um bloco separando eles.
(Se for economizar nos baus, certifique-se que colocou ele certo, aonde você setou a home não deve ter bau nas suas costas, pule um bloco e ai comece colocando os baus)
OK plantação pronta, home setada, vamos para o codigo:
(só coloque em qualquer tecla e está pronto para ir)
$${
if(cana);
log("&4[Macro]Colher Cana [OFF]");
keyup(FORWARD);
keyup(sneak);
unset(cana);
stop();
else();
log("&2[Macro]Colher Cana [ON]");
set(cana);
set(andar);
endif();
&d=%DIRECTION%;
ifmatches(%&d%,N);set(&dfrente,NORTH);set(&dtras,SOUTH);set(&desquerda,WEST);log(estou olhando para o norte);endif();
ifmatches(%&d%,S);set(&dfrente,SOUTH);set(&dtras,NORTH);set(&desquerda,EAST);log(estou olhando para o sul);endif();
ifmatches(%&d%,E);set(&dfrente,EAST);set(&dtras,WEST);set(&desquerda,NORTH);log(estou olhando para o east);endif();
ifmatches(%&d%,W);set(&dfrente,WEST);set(&dtras,EAST);set(&desquerda,SOUTH);log(estou olhando para o west);endif();
log(frente=%&dfrente%,tras=%&dtras%,esquerda=%&desquerda%)
do();
///indo
look(%&dfrente%);wait(100ms);
do();
if((%HITID%="reeds")||(%HITID%="air"));
keydown(FORWARD);
key(ATTACK);wait(100ms);
else();
key(ATTACK);wait(1000ms);
keyup(FORWARD);
BREAK();
endif();
loop();
///fazendo a curva
look(%&desquerda%);wait(100ms);
look(,50);wait(100ms);
if((%HITID%="reeds")||(%HITID%="air")||(%HITID%="sand")||(%HITID%="carpet"));
#posx=%XPOS%;
#posz=%ZPOS%;
keydown(sneak);
keydown(FORWARD);
do();
wait(10ms);
until((%XPOS%=%#posx%+1)|(%XPOS%=%#posx%-1)|(%ZPOS%=%#posz%+1)|(%ZPOS%=%#posz%- 1));
wait(120ms);
keyup(FORWARD);
keyup(sneak);
else();
if(andar);
echo(/home cana2);
unset(andar);
else();
echo(/home cana1);
set(andar);
endif();
wait(8);
endif();
///voltando
look(%&dtras%);wait(100ms);
do();
if((%HITID%="reeds")||(%HITID%="air"));
keydown(FORWARD);
key(attack);
wait(100ms);
else();
key(ATTACK);wait(1000ms);
keyup(FORWARD);
BREAK();
endif();
loop();
key(USE);
wait(1);
for(#i,54,88);
getslotitem(%#i%,&id,#stack);
if(%&id%="reeds");
slotclick(%#i%,l,true);
wait(50ms);
endif();
next();
gui();
look(%&desquerda%);wait(200ms);
look(,50);wait(100ms);
if((%HITID%="reeds")||(%HITID%="air")||(%HITID%="sand")||(%HITID%="carpet"));
#posx=%XPOS%;
#posz=%ZPOS%;
keydown(sneak);
keydown(FORWARD);
do();
until((%XPOS%=%#posx%+1)|(%XPOS%=%#posx%-1)|(%ZPOS%=%#posz%+1)|(%ZPOS%=%#posz%- 1));
wait(50ms);
keyup(FORWARD);
keyup(sneak);
look(%&dfrente%);wait(100ms);
else();
if(andar);
echo(/home cana2);
unset(andar);
else();
echo(/home cana1);
set(andar);
endif();
wait(8);
endif();
loop();
}$$
PS:
Me basei nessa macro
aqui, que eu usava no heaven para colheita de fungo.
Edit:
O código tava dando um erro, onde ele virava para o lado errado, mas alterei e corrigi, (agora funciona para qualquer orientação)