ENTREGUE [Macro] Cacau Farm - Eclipse 1.7.10

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.

iPain

Neutro
Entrou
Ago 29, 2014
Mensagens
18
Cubos
0
H1Zz2t2.png

[Última atualização em: 02/05/2017]

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 e testada apenas no servidor Eclipse. Se interessou? Vamos lá!

Requisitos:
- É altamente recomendável que você use essa macro na versão 1.7.10 do Minecraft.
- Alguns itens básicos são fundamentais:
  • 7 Packs e 2 unidades de madeira da selva
  • 1 bloco duplo de laje de pedra
  • Sementes de cacau

O que a macro faz?
Veja algumas características presente na versão 1.0 desta macro:
  • Verifica, após a coleta de um corredor, a capacidade do inventário.
  • Sistema de "waypoints" na warp loja, ou seja, ela caminha até o NPC que compra as sementes.
  • Vende as sementes de cacau na warp loja (Pode ser desligado).
  • Se tiver um machado na hotbar, a macro irá selecioná-lo para quebrar os blocos de cacau.
  • Aguarda um determinado período, após chegar no 4º corredor (Tempo configurável em minutos).
  • A macro identifica e quebra apenas cacau maduro.
  • Replanta o cacau em todos os corredores.
  • Caso use machado, periodicamente a macro irá verificar se o item está com baixa durabilidade. Caso esteja, irá clicar com o direito do mouse automaticamente. (Sugestão enviada por [member="capotao211"])

Criando a área de plantação:
- Veja a planta/mapa da construção:
yrnWo4q.png

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:
tHqfJpq.png
- 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)
0DwZhNG.png

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!

Instalando a macro:
- Acesse "Opções" -> "Controles" -> "Macro Settings..."
- Clique na tecla que você deseja iniciar a macro.
- Na área "Editando Macro em <N>" digite:

$$<cacaufarm.txt>
- Clique no botão "Arquivos..."
- Em "Criar um novo arquivo" digite "cacau" (Sem aspas)
- Clique no botão "Criar" e cole o código da macro.

Código da 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;
}$$

ChangeLog:
~~ [30/04/2017] Corrigido bug na verificação do inventário.
~~ [30/04/2017] Corrigido bug na verificação de cacau da plantação.
~~ [02/05/2017] Adicionado função que verifica a durabilidade do machado e clica com o direito do mouse (Sugestão enviada por: [member="capotao211"])

FAQ:
- 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.
 
Se não me engano alguém ontem tava pedindo uma macro assim no servidor Eclipse. Achei ótimo essa macro =]
 
Excelente tópico e macro. Vai ajudar muitos que querem farmar money
 
Boa já salvei essa macro parabéns ao developer e.e.
 
bom macro , mas fica dando bloco n identificado msm tando tudo certo ;-; help mi
 
junhio disse:
bom macro , mas fica dando bloco n identificado msm tando tudo certo ;-; help mi
a laje de pedra tem que estar no chão não encima do chão (me enrolei mas espero que entenda kk)
 
Status
Não está aberto para novas respostas.

Users who are viewing this thread

Voltar
Topo