ENTREGUE [Tutoriais] Códigos para facilitar.

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.

MathCraft

Excelente
VIP
Entrou
Out 15, 2011
Mensagens
2,369
Cubos
0
CÓDIGOS PARA FACILITAR CRIAÇÃO DE MACROS

Olá, pessoal, tudo bem?


Pra quem não me conhece sou o MathCraft e crio macros desde o inicio das macros na craftlandia, porém não divulgava elas.
Vou começar a postar alguns mecanismos básicos que eu sempre usei e vejo que a galera ainda não conhece. Ao passar do tempo vou postando mais...

Fazer 1 única macro para VIP's e NÃO-VIP's
Para evitar fazer duas macros, uma para não-vip e outra para vip devido ao delay de teleporte...

#xatual=%XPOS%;
#yatual=%YPOS%;
#zatual=%ZPOS%;

WAIT(1);

ECHO(/home ***SUA HOME***);

DO;
IF(%#xatual%!=%XPOS%);
BREAK;
ENDIF;
IF(%#yatual%!=%YPOS%);
BREAK;
ENDIF;
IF(%#zatual%!=%ZPOS%);
BREAK;
ENDIF;
LOOP;
WAIT(500ms);

Basicamente fazer isso fará ele detectar quando o player mudou de posição, essa linhas de código só NÃO poderá ser usada em 2 ocasiões:

- Quando o player dará /home para a mesma coordenada que ele está.
- Quando o player dará o comando /home em movimento (andando, correndo, etc...)

Evitar Macro funcionando com o player caindo no infinito.
Para evitar com que as macros funcionem com os players caindo no infinito use o código abaixo após dar qualquer comando de teleporte:

WAIT(500ms);IFMATCHES(%DIRECTION%,N);
&frentehome = NORTH;
ENDIF;
IFMATCHES(%DIRECTION%,S);
&frentehome = SOUTH;
ENDIF;
IFMATCHES(%DIRECTION%,W);
&frentehome = WEST;
ENDIF;
IFMATCHES(%DIRECTION%,E);
&frentehome = EAST;
ENDIF;
WAIT(500ms);
LOOK(%&frentehome%);
LOOK(,+90);
DO;
IFMATCHES(%HIT%,TILE);
BREAK;
ENDIF;
LOOP;
WAIT(500ms);
LOOK(%&frentehome%);
WAIT(200ms);

Ao usar esse comando ao invés de você utilizar "LOOK(NORTH);" você devera passar a usar "LOOK(%&frente%)" ou para onde você queira que ele olhe como frente, atras, esquerda ou direita.

Detectar abertura de uma GUI
Pará detectar se alguma GUI foi aberta e liberar a macro somente quando ela foi detectada, evitando assim que as macros tente clicar em slots enquanto o GUI está fechado, podendo bugar as macros.

BAU
#testgui=0;
KEY(Use);
DO;
INC(#testgui);
IF(%#testgui%=100);
KEY(Use);
#testgui=0;
ENDIF;
IFMATCHES(%GUI%,GUICHEST);
BREAK;
ENDIF;
LOOP;

INVENTÁRIO
#testgui=0;
GUI(Inventory);
DO;
INC(#testgui);
IF(%#testgui%=100);
GUI(Inventory);
#testgui=0;
ENDIF;
IFMATCHES(%GUI%,GUIINVENTORY);
BREAK;
ENDIF;
LOOP;
Esse comando fará um teste sempre que vc mandar abrir um inventário caso o teste falhe ele executara o comando novamente para tentar abrir.
 
Esess são ótimos métodos, utilizo sempre.
No caso do teleporte, eu prefiro utilizar OnChat pra detectar a mensagem, fica mais preciso.

Bjos.
 
Parabéns pela atitude...
O problema é que eu não entendo nem uma virgula desses códigos :s kkkkkk
 
Ótimos códigos. Vai ajudar muito iniciantes com a programação de macros
 
SLEEPP disse:
Esess são ótimos métodos, utilizo sempre.
No caso do teleporte, eu prefiro utilizar OnChat pra detectar a mensagem, fica mais preciso.

Bjos.
Fica mais preciso mas da mais trabalho para explicar, ainda vou fazer um tutorial de regex e já ensino lá
 
Legal, boa iniciativa. Se me permite fazer uma sugestão que acho útil que quase não vejo sendo usada.

Para macros que abrem bau(s) sempre vejo as macros com:

key(use);wait(tempo); após isso faz a ação dentro do bau

O que faz com que se lagar ou não carregar rápido o suficiente bug e não guarda/pega itens no bau.

O sistema que eu uso é

Código:
key(use);
do();
wait(50ms);
until(%GUI%="GUICHEST");
wait(250ms);

Dessa forma só realiza a ação após o bau aberto e com um tempo de folga para carregar o bau.
 
Xylic disse:
Legal, boa iniciativa. Se me permite fazer uma sugestão que acho útil que quase não vejo sendo usada.

Para macros que abrem bau(s) sempre vejo as macros com:

key(use);wait(tempo); após isso faz a ação dentro do bau

O que faz com que se lagar ou não carregar rápido o suficiente bug e não guarda/pega itens no bau.

O sistema que eu uso é

key(use);
do();
wait(50ms);
until(%GUI%="GUICHEST");
wait(250ms);

Dessa forma só realiza a ação após o bau aberto e com um tempo de folga para carregar o bau.
É uma boa forma também, mas simples que a minha, porém sempre que posso contornar o comando "UNTIL" e "WHILE" eu contorno pois ja me estressei antigamente com esses comandos mas não de dar erro mas sim de eu confundia quando ia ler a macro kkk, ja cheguei a usar essa opção, depois passei a usar essa maior por conta disso kk, do; break; loop; não me confundi kkkk
E também que junto eu uso um teste para caso não abra em x tempo ele tente abrir novamente, as vezes pode ter dado perda de pacote e não registrou o comando.
 
pra quem tem q reconectar macros, na onchat vc pode usar o EXEC("suamacro.txt","nome") e na tecla vc coloca ao invés de só stop, stop("nome");stop; assim não precisa apertar aspas e parar a execução :)
 
Status
Não está aberto para novas respostas.

Users who are viewing this thread

Voltar
Topo