Se você procura uma macro muito bem desenvolvida e inteligente para fins de coleta de plantação (no caso, o cacau), encontrou!
Além de eficiente, seu uso é muito simples. Basta criar o local da plantação, de acordo com as instruções deste tópico, configurar o código com sua macro e começar a fazer coins no servidor! Lembrando que esta macro foi inteiramente desenvolvida na versão 1.7.10 por [member="DeathStroker"] e foi testada apenas no servidor Eclipse. Se interessou? Vamos lá!
- Veja a planta/mapa da construção:
Viu a planta da construção da fazenda? Então vamos aos detalhes:
- Seguindo a imagem da construção, você deverá levar em consideração que o "Player point" é o local onde você executará a macro. É obrigatório, que nessa área você esteja olhando para o norte, como indica a flecha em vermelho. Tenha isso em mente ao construir sua plantação!
- Dê "/sethome cacau" no Player point (Olhando para o norte).
- Cada corredor possui 2 blocos de altura de madeira da selva. O teto da plantação fica a seu critério.
- É
importantíssimo que você coloque o bloco duplo de laje de pedra no local indicado na imagem. Sem ele a macro não irá funcionar.
Observe: Escolha blocos que não seja a "Laje de pedra" para finalizar o chão. Do contrário, a macro irá entrar em conflito e, consequentemente, não irá rodar.
- Após finalizar a construção, certifique-se de que ela obedece todos os critérios, espaços entre blocos, distâncias, etc.
Sua construção deverá ficar + ou - desta forma:
- Novamente explicando, a parede (Bedrock) e o chão (exceto a área do Player point e o local da Laje de pedra) pode-se usar o bloco que quiser, exceto Laje de pedra.
Imagem dos corredores (Player point e Laje de Pedra)
Finalizando
- Finalizou a construção? Ótimo, agora basta você plantar as sementes de cacau em todos os corredores, ir para o Player point e iniciar a macro!
$${
do(9999);
toggle(cacaufarm);
if(cacaufarm);
set(cacaufarm);
// Configs
#tempo_de_espera = 3; // Tempo que a macro irá aguardar para iniciar novamente (em minutos)
#vender_itens = true; (true - ligado | false - desativado);
&home_cacau = "cacau"; // Nome da home onde você está no player point.
//Coordenadas padrões da macro, não mexa. A menos que saiba o que está fazendo.
#x = %XPOS% - 1;
#z = %ZPOS% - 1;
#zfinal = (%#z%) - 3;
#corredor = 0;
log("");
log("&6[Macro] &bCacau Farm v1.0 by DeathStroker");
log("&6[Macro] &2Verificando area [Nao se mova]...");
log("");
look(north);
wait(2);
// Detecta o corredor;
&corredor1 = getidrel(1,-1,-13);
&corredor2 = getidrel(1,-1,-9);
&corredor3 = getidrel(1,-1,-5);
&corredor4 = getidrel(1,-1,-1);
#corredor_atual = 0;
if(%&corredor1% = "double_stone_slab");
inc(#corredor_atual,1);
elseif(%&corredor2% = "double_stone_slab");
inc(#corredor_atual,2);
elseif(%&corredor3% = "double_stone_slab");
inc(#corredor_atual,3);
elseif(%&corredor4% = "double_stone_slab");
inc(#corredor_atual,4);
else;
log(&6[Macro]&4 [!] O bloco de identificao nao foi detectado!);
log("&6[Macro] &bCacau Farm desligada.");
unset(cacaufarm);
keyup(right);
keyup(left);
keyup(forward);
keyup(back);
keyup(sneak);
break;
endif;
log("&6[Macro]&b Iniciando colheita no corredor %#corredor_atual%.");
set(colher);
else;
log("&6[Macro] &cCacau Farm desligada.");
keyup(right);
keyup(left);
keyup(forward);
keyup(back);
keyup(sneak);
unset(cacaufarm);
stop();
endif;
if(colher);
set(colher);
// Colhendo
#pz = (%#z%) + 1);
do()
keydown(forward);
while(%ZPOS% != %#pz%);
keyup(forward);
wait(5t);
// Seleciona o machado, se estiver na hotbar
for(#procurar_machado,1,9);
do;
GETSLOTITEM(%#procurar_machado%,&slot_machado);
ifmatches("%&slot_machado%","wooden_axe|stone_axe|iron_axe|golden_axe|diamond_axe");
slot(%#procurar_machado%);
break;
else;
break;
endif;
loop;
next;
do;
look(north);
#xend = (%#x%) + 48;
if(%XPOS% != %#xend%);
if(%DURABILITY% <= 15);
keyup(right);
key(use);
wait(4t);
keydown(right);
endif;
&detectcocoa = getidrel(0,1,-1);
if(%&detectcocoa% != "cocoa");
keydown(right);
else;
if(%HITID% = "log");
keydown(sneak);
keydown(right);
wait(4t);
keyup(sneak);
keyup(right);
//key(attack);
else;
if(%HITDATA% >= 8);
keyup(right);
key(attack);
else;
keydown(right);
endif;
endif;
endif;
else;
keyup(right);
break;
endif;
loop;
look(0,45);
wait(1);
do;
look(0,45);
if(%XPOS% != (%#x%) + 1);
if(%DURABILITY% <= 15);
keyup(left);
key(use);
wait(4t);
keydown(left);
endif;
&detectcocoa = getidrel(0,0,-1);
if(%&detectcocoa% != "cocoa");
keydown(left);
else;
if(%HITID% = "log");
keydown(sneak);
keydown(left);
wait(4t);
keyup(sneak);
keyup(left);
//key(attack);
else;
if(%HITDATA% >= 8);
keyup(left);
key(attack);
else;
keydown(left);
endif;
endif;
endif;
else;
keyup(left);
keyup(sneak);
break;
endif;
loop;
// Plantando
wait(1);
look(north);
wait(1);
log("&6[Macro] &bReplantando cacau...");
wait(1);
do;
look(north);
key(use);
#xend = (%#x%) + 48;
if(%XPOS% != %#xend%);
keydown(right);
GETSLOT(dye,#cacauslot);
SLOT(%#cacauslot%);
if(%#cacauslot% = -1);
log("&6[Macro] &bPegando sementes no inventario..");
for(#cocoa_search,9,35);
if(%GUI% != "GUIINVENTORY");
GUI(INVENTORY);
endif;
GETSLOTITEM(%#cocoa_search%,&cocoaid);
IFMATCHES("%&cocoaid%","dye");
SLOTCLICK(%#cocoa_search%,L,TRUE);
wait(1t)
ENDIF;
next;
GUI();
wait(1);
GETSLOT(dye,#cacauslot);
SLOT(%#cacauslot%);
wait(1);
endif;
else;
keyup(right);
break;
endif;
loop;
wait(1);
look(0,45);
wait(1);
do;
look(0,45);
key(use);
if(%XPOS% != %#x% + 1);
keydown(left);
GETSLOT(dye,#cacauslot);
SLOT(%#cacauslot%);
if(%#cacauslot% = -1);
log("&6[Macro] &bPegando sementes no inventario..");
for(#cocoa_search,9,35);
if(%GUI% != "GUIINVENTORY");
GUI(INVENTORY);
endif;
GETSLOTITEM(%#cocoa_search%,&cocoaid);
IFMATCHES("%&cocoaid%","dye");
SLOTCLICK(%#cocoa_search%,L,TRUE);
wait(1t)
ENDIF;
next;
GUI();
wait(1);
GETSLOT(dye,#cacauslot);
SLOT(%#cacauslot%);
wait(1);
endif;
else;
wait(1);
keyup(left);
wait(1);
break;
endif;
loop;
// Colhendo lado 2
look(south);
wait(1);
log("&6[Macro] &bColetando lado direito...");
// Seleciona o machado, se estiver na hotbar
for(#procurar_machado,1,9);
do;
GETSLOTITEM(%#procurar_machado%,&slot_machado);
ifmatches("%&slot_machado%","wooden_axe|stone_axe|iron_axe|golden_axe|diamond_axe");
slot(%#procurar_machado%);
break;
else;
break;
endif;
loop;
next;
do;
look(south);
#xend = (%#x%) + 48;
if(%XPOS% != %#xend%);
if(%DURABILITY% <= 15);
keyup(left);
key(use);
wait(4t);
keydown(left);
endif;
&detectcocoa = getidrel(0,1,1);
if(%&detectcocoa% != "cocoa");
keydown(left);
else;
if(%HITID% = "log");
keydown(sneak);
keydown(left);
wait(4t);
keyup(sneak);
keyup(left);
//key(attack);
else;
if(%HITDATA% >= 8);
keyup(left);
key(attack);
else;
keydown(left);
endif;
endif;
endif;
else;
keyup(left);
break;
endif;
loop;
look(180,45);
wait(1);
keydown(forward);
wait(1t);
keyup(forward);
do;
look(180,45);
if(%XPOS% != (%#x%) + 1);
if(%DURABILITY% <= 15);
keyup(right);
key(use);
wait(4t);
keydown(right);
endif;
&detectcocoa = getidrel(0,0,1);
if(%&detectcocoa% != "cocoa");
keydown(right);
else;
if(%HITID% = "log");
keydown(sneak);
keydown(right);
wait(4t);
keyup(sneak);
keyup(right);
//key(attack);
else;
if(%HITDATA% >= 8);
keyup(right);
key(attack);
else;
keydown(right);
endif;
endif;
endif;
else;
keyup(right);
keyup(sneak);
break;
endif;
loop;
// Plantando lado 2
wait(1);
look(south);
wait(1);
log("&6[Macro] &bReplantando cacau...");
wait(1);
do;
look(south);
key(use);
#xend = (%#x%) + 48;
if(%XPOS% != %#xend%);
keydown(left);
GETSLOT(dye,#cacauslot);
SLOT(%#cacauslot%);
if(%#cacauslot% = -1);
log("&6[Macro] &bPegando sementes no inventario..");
for(#cocoa_search,9,35);
if(%GUI% != "GUIINVENTORY");
GUI(INVENTORY);
endif;
GETSLOTITEM(%#cocoa_search%,&cocoaid);
IFMATCHES("%&cocoaid%","dye");
SLOTCLICK(%#cocoa_search%,L,TRUE);
wait(1t)
ENDIF;
next;
GUI();
wait(1);
GETSLOT(dye,#cacauslot);
SLOT(%#cacauslot%);
wait(1);
endif;
else;
keyup(left);
break;
endif;
loop;
wait(1);
look(180,45);
wait(1);
keydown(forward);
wait(1t);
keyup(forward);
do;
look(180,45);
key(use);
if(%XPOS% != %#x% + 1);
keydown(right);
GETSLOT(dye,#cacauslot);
SLOT(%#cacauslot%);
if(%#cacauslot% = -1);
log("&6[Macro] &bPegando sementes no inventario..");
for(#cocoa_search,9,35);
if(%GUI% != "GUIINVENTORY");
GUI(INVENTORY);
endif;
GETSLOTITEM(%#cocoa_search%,&cocoaid);
IFMATCHES("%&cocoaid%","dye");
SLOTCLICK(%#cocoa_search%,L,TRUE);
wait(1t)
ENDIF;
next;
GUI();
wait(1);
GETSLOT(dye,#cacauslot);
SLOT(%#cacauslot%);
wait(1);
endif;
else;
keyup(right);
wait(1);
break;
endif;
loop;
wait(1);
look(north);
wait(1);
keydown(left);
wait(6t);
keyup(left);
wait(1);
// Se a venda de itens estiver ativada, verifica se o inventário está cheio
if(%#vender_itens% = true);
wait(1);
log("&6[Macro] &bVerificando capacidade do inventario..");
wait(2);
GUI(INVENTORY);
wait(1);
#inventario_capacidade = 36;
for(#verificar_qtde_itens, 9,44);
getslotitem(%#verificar_qtde_itens%,&itens_inventory);
if(%&itens_inventory% != "air");
dec(#inventario_capacidade,1);
endif;
next;
if(%#inventario_capacidade% < 4);
gui();
wait(5t);
echo("/warp loja");
log("");
log("&6[Macro] &bVisitando a &cWARP LOJA &bpara a venda do cacau.");
log("");
wait(3);
&detect_warp_loja = getidrel(0,-1,0);
if(%&detect_warp_loja% != "cobblestone");
do;
&detect_warp_loja = getidrel(0,-1,0);
wait(1);
while(%&detect_warp_loja% != "cobblestone");
endif;
#waypoint1 = (%ZPOS%) - 22;
do;
look(north);
keydown(forward);
while(%ZPOS% != %#waypoint1%);
keyup(forward);
look(west);
wait(5t);
#waypoint2 = (%XPOS%) - 9;
do;
keydown(forward);
while(%XPOS% != %#waypoint2%);
keyup(forward);
look(north);
wait(5t);
#waypoint3 = (%ZPOS%) - 27;
do;
keydown(forward);
while(%ZPOS% != %#waypoint3%);
keyup(forward);
look(east);
look(129,4);
do;
key(use);
while(%GUI% != "GUICHEST");
wait(1);
do(5);
slotclick(7,L,true);
wait(5t);
loop;
look(east);
wait(5t);
gui();
wait(1);
echo("/home %&home_cacau%");
wait(5);
#cooldown = (%#tempo_de_espera%) * 60;
log("&6[Macro] &9Colheita finalizada no corredor %#corredor_atual%.");wait(1);
log("&6[Macro] &cAguardando por %#tempo_de_espera% minuto(s).");
log("");
wait(%#cooldown%);
else;
if(%#corredor_atual% = 4);
gui();
wait(1);
echo("/home %&home_cacau%");
wait(5);
#cooldown = (%#tempo_de_espera%) * 60;
log("&6[Macro] &9Colheita finalizada no corredor %#corredor_atual%.");wait(1);
log("&6[Macro] &cAguardando por %#tempo_de_espera% minuto(s).");
log("");
wait(%#cooldown%);
else;
gui();
wait(5t);
do;
if(%ZPOS% != %#zfinal%);
keydown(forward);
else;
keyup(forward);
wait(1);
log();
break;
endif;
loop;
endif;
endif;
else;
gui();
wait(5t);
if(%ZPOS% != %#zfinal%);
keydown(forward);
else;
keyup(forward);
wait(1);
log("&6[Macro] &9Colheita finalizada no corredor %#corredor_atual%.");
endif;
endif;
unset(cacaufarm);
unset(colher);
else;
break;
//set(desligar);
endif;
if(desligar);
set(desligar);
unset(cacaufarm);
unset(colher);
log("&6[Macro] &bCacau Farm desligada.");
keyup(right);
keyup(left);
keyup(forward);
keyup(back);
keyup(sneak);
else;
unset(desligar);
endif;
loop;
}$$
- Aqui diz que o bloco de identificação não foi detectado, o que eu faço?
R: Veja a planta da construção aqui no tópico e certifique-se de que a Laje de pedra está posicionada no local correto. Veja também se a distância dos blocos em sua construção está de acordo com a planta da construção. Lembrando que você deve colocar os dois blocos de Lade de pedra.
Obs: A laje de pedra deve estar plana com o chão. Como muitos sabem, ao craftar laje de pedra, vem dois blocos do mesmo. Juntos, estes dois blocos partidos, tornam-se 1. Veja também se você está iniciando a macro no Player point.
- A macro não está pegando o machado.
R: O machado deve estar na Hotbar e é recomendável que tenha apenas 1 único machado. Caso haja 1 machado de madeira e 1 de diamante, a macro irá pegar o machado de diamante.
- É possível iniciar a macro no corredor 2, 3 e 4?
R: Sim. Desde que você esteja encostado na parede da plantação e esteja exatamente ao lado dos blocos de cacau do corredor (lado direito) que você deseja inciar. Como no Player point.
- Como faço para desligar a venda itens na warp loja?
R: No código da macro, basta alterar a seguinte linha:
#vender_itens = true; (true - ligado | false - desativado);
Por exemplo: para desativar, ficaria assim:
#vender_itens = false; (true - ligado | false - desativado);
- Como mudo o nome da home que a macro vai?
R: No código da macro, basta alterar a seguinte linha:
&home_cacau = "SUA HOME AQUI"; // Nome da home onde você está no player point.
- Como mudo o tempo de espera da macro?
R: No código da macro, basta alterar a seguinte linha:
#tempo_de_espera = 3; // Tempo que a macro irá aguardar para iniciar novamente (em minutos)
Reforçando que o tempo é em minutos!
- Tenho um problema e não encontrei aqui no FAQ, o que fazer?
R: Me envie uma MP (Mensagem privada) no fórum ou deixe sua dúvida/problema nos comentários do tópico.
- Posso enviar sugestões de melhorias e performances da macro?
R: Sim. Fique a vontade e de prefêrencia envie sua sugestão por MP.