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 disse:
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 por [member="DeathStroker"] e foi 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.
irmao ta mt show de bola mais sera que vc pode fazer uma modificação ?
tipo da pra dar sethome no npc que compra sementes na cidade da pra ter uma home tipo
/sethome vendercacau
em frente o npc ai ja clica e ja vende
 
rafapelzinho disse:
construe olhando para EASTH e não para NORTH, como arrumo o macro para aceitar assim mesmo ?
Teria que mudar muitas linhas no código, mas posso ver o que faço.

bruno18 disse:
irmao ta mt show de bola mais sera que vc pode fazer uma modificação ?
tipo da pra dar sethome no npc que compra sementes na cidade da pra ter uma home tipo
/sethome vendercacau
em frente o npc ai ja clica e ja vende
Desconhecia essa possibilidade. Mas sim, é possível. Essa função será adicionada. ^^
Obrigado pela sugestão.
 
iPain disse:
Teria que mudar muitas linhas no código, mas posso ver o que faço.


Desconhecia essa possibilidade. Mas sim, é possível. Essa função será adicionada. ^^
Obrigado pela sugestão.
Quando tiver pronto, me cita por favor, para eu ver, ou se você achar melhor, você poderia me falar onde eu tenho que modificar que eu tento dar um jeito, Vlw ai
 
rafapelzinho disse:
Quando tiver pronto, me cita por favor, para eu ver, ou se você achar melhor, você poderia me falar onde eu tenho que modificar que eu tento dar um jeito, Vlw ai
Posso citar sim.

N1xon1 disse:
Funciona na 1.7.2?
Olha, de acordo com um pessoal que testou nessa versão, funciona sim.
Eu particularmente ainda não fiz esse teste.
 
Não testei a macro, "mas vou testar", porém, está de parabéns pelo post, ficou muito bem explicado e organizado.
 
onevbm disse:
Não testei a macro, "mas vou testar", porém, está de parabéns pelo post, ficou muito bem explicado e organizado.
Meu caro, testei a macro e gostei muito, porém, há alguns pontos que gostaria que vc verificasse:

* a partir do segundo corredor, ele está colhendo um sim e um não, quando ele faz a verificação se o cacau está maduro ou não ae que acho que está a falha e ele acaba pulando sempre um durante a colheita

se consertar isso, me avise, vlw
 
macro parece muito boa so tenho umas duvida: lagura vi que tem tamanho .
complimento qual seria o maximo ?
 
Macro parece ser boa, porém não consegui utiliza-la. Faço tudo certo na instalação da macro, porém o nome do Arquivo tem que ser igual do que você coloca, ex: cacaufarm.txt você mandou colocar nome no arquivo de cacau só, e não funcionou, tem que colocar cacaufarm, ai sim ela funciona. Porém quando a macro inicia ele fica batendo no cacau maduro mas sem colher ele, só bate e não colhe, refiz todo o processo de instalação de novo mas não foi. Alguma solução? ç.ç

Obs, ele só quebra os cacaus sem tiver com machado, testei colocar um machado com eficiência e fortuna e agora foi, porém sem machado não rola.
 
Status
Não está aberto para novas respostas.

Users who are viewing this thread

Voltar
Topo