@Edit: corrigido - corredores para norte e para sul não vêem quando chegam ao final. faltaram poucos comandos
Como muitos sabem, os macros de reparação antigos não funcionam na 1.7 devido a novas configurações do próprio minecraft.
O ultimo que postei, ainda sim demorava muito para upar e pensando nisso, criei uma alternativa, para a reparação, espero que dela novas ideias surjam e programadores melhorem essa ideia afim de upar ainda mais rápido.
COMO USAR
1 - monte um CORREDOR, como na imagem abaixo, lembre de deixar fechado ao final, para o macro entender que o corredor acabou.
LEMBRANDO: Se colocar blocos em cima de qualquer um a ser arado, AQUELE BLOCO NÃO SERÁ ARADO! Então lembre-se de deixar todos livres.
blocos a ser arados:
Ja adianto que o minecraft não permite reparar blocos olhando o mesmo por baixo, por isso não coloquei nenhum em cima
2 - sete uma home chamada "rep" (/sethome rep) olhando para um bloco de ferro, assim:
3 - deixe o inventário desta forma
4 - ele perguntará o delay após dar /home, se é vip, recomendo 3, se não é, recomendo 6, mas use o que preferir
Pronto!
DICA: Não é vip?? de "/sethome reptemp" e "/sethome repinicio" em qualquer lugar, essas homes o macro vai setar sozinho, não precisa se preocupar, mas deixe elas separadas.
Se tem preguiça de ler, não precisa ler daqui pra frente rsrs
CURIOSIDADE: COMO FUNCIONA?
- Ao iniciar, ele seta a /sethome repinicio
- Ele andará pelo corredor arando TODOS os blocos ao seu redor, até achar um bloco em sua frente, e retorna ao início, na home "repinicio"
- A todo momento ele verifica a durabilidade da enxada, se estiver baixa, pula para a próxima, ate gastar todas as 9 enxadas, quando gasta as 9, ele dá /sethome reptemp, vai a home rep, repara e volta a home reptemp, após isso, continua normalmente
- Quando chegar ao fim, o começo já terá voltado ao normal
ATENÇÃO
- com chuva o bloco continua arado, então cubra o local
- você pode começar do meio, mas ele voltará sempre no ponto em que você ativou a macro
- o corredor ideal é de no minimo 50 blocos (terreno médio)
MACRO
Código:
$${
if(repjimmy);log("&4[%PLAYER%] &6Reparação &2OFF");unset(repjimmy);keyup(forward);keyup(back);keyup(right);keyup(sneak);stop();
else;set(repjimmy);log(&3[%PLAYER%] &6Reparação &4ON);#nslot=1;slot(1);#status=0;endif;
PROMPT(#delay,$$?,"quantos segundos de espera para ir a home? (somente numeros)");
}$$/sethome repinicio$${
&ff = %DIRECTION%;
ifmatches(%&ff%,N);&ff=NORTH;&fa=SOUTH;&fd=EAST;&fe=WEST;#xf=0;#zf=-1;endif;
ifmatches(%&ff%,S);&fa=NORTH;&ff=SOUTH;&fe=EAST;&fd=WEST;#xf=0;#zf=1;endif;
ifmatches(%&ff%,E);&fe=NORTH;&fd=SOUTH;&ff=EAST;&fa=WEST;#xf=1;#zf=0;endif;
ifmatches(%&ff%,W);&fd=NORTH;&fe=SOUTH;&fa=EAST;&ff=WEST;#xf=-1;#zf=0;endif;
do;
//reparar
if(%DURABILITY%<10);logto(debug,%#nslot%);
if(%#nslot%=9);keyup(forward);keyup(back);}$$/sethome reptemp$${wait(1t);}$$/home rep$${wait(%#delay%);
//selecionando enxadas
slot(1);do(4);key(use);wait(250ms);loop;
slot(2);do(4);key(use);wait(250ms);loop;
slot(3);do(4);key(use);wait(250ms);loop;
slot(4);do(4);key(use);wait(250ms);loop;
slot(5);do(4);key(use);wait(250ms);loop;
slot(6);do(4);key(use);wait(250ms);loop;
slot(7);do(4);key(use);wait(250ms);loop;
slot(8);do(4);key(use);wait(250ms);loop;
slot(9);do(4);key(use);wait(250ms);loop;
#nslot=1;slot(1);}$$/home reptemp$${wait(%#delay%);
else;INC(#nslot,1);logto(debug,agora no slot: %#nslot%);slot(%#nslot%);
endif;
endif;
if(%DURABILITY%>8);
//usar
look(%&ff%);look(,90);wait(1t);key(use);wait(1t);
look(%&fd%);look(,50);wait(1t);key(use);wait(1t);
look(%&fd%);wait(1t);key(use);wait(1t);
look(%&fd%);look(,-50);wait(1t);key(use);wait(1t);
look(%&fe%);look(,50);wait(1t);key(use);wait(1t);
look(%&fe%);wait(1t);key(use);wait(1t);
look(%&fe%);look(,-50);wait(1t);key(use);wait(1t);
//verificar bloco
getidrel(%#xf%,0,%#zf%,&bloco);ifmatches(%&bloco%,air);#status=0;else;#status=1;endif;
if(%#status%=0);
//andar
#px=%XPOS%;#pz=%ZPOS%;look(%&ff%);
do;keydown(forward);until((%XPOS%=%#px%+1)|(%XPOS%=%#px%-1)|(%ZPOS%=%#pz%+1)|(%ZPOS%=%#pz%-1));keyup(forward);
else;
//voltar
}$$/home repinicio$${wait(%#delay%);
endif;endif;endif;
loop;
}$$