APRENDA A PROGRAMAR MACROS (DO ZERO)

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.
jimmyfilips disse:
Ultimo edit: Ifmatches / variáveis globais

Pra começar, você precisa entender duas coisas básicas:

1 - CONTROLES DE VARIÁVEIS
COMANDO "IF" (SE)
em português, 'if' significa "se".
o uso dela é simples:
SE uma condição for real, fazer isso.

Ok, mas tenho duas perguntas:

Que condição é essa?
um exemplo básico é:
Se 5 for maior que 2, ficaria:
if(5 > 2);

(mais detalhes sobre como montar condições vão ser dados mais a frente)

mas o que eu defino o que ele vai fazer?
Bem, logicamente, ele não vai adivinhar o que precisa fazer se a condição for verdadeira, então imagine da seguinte forma:

você tem 5 coisas pra fazer:
1
2
3
4
5

mas na segunda coisa, se algo estiver diferente, você precisa fazer algo mais, mas o 3, 4 e 5 vão ser feitos independente do que acontecer no dois

Como defino o que deve ser feito? Simples!
IMAGINE ISSO:

Se(isso = isso)
fazer isso
isso
e isso
fim"Se"

esse fim"Se" define até onde deve ser executado, SE algo for verdadeiro!

como faço isso?
na macro seria "endif;"

resumindo, ficaria +/- assim:
Código:
IF(CONDIÇÃO);
 FAÇA ISSO
 ISSO
 E ISSO
ENDIF;
Mas calma, ainda não acabou
já dá pra fazer muita coisa com isso! mas tem um comando simples que pode ajudar muito!!
Imagine isso:
Código:
Se fizer sol, vou fazer 1
Se Chover, vou fazer 2 
Se ficar nublado, tambem vou fazer 2
Se tiver caindo uma tepestade, tambem vou fazer 2
imagine a poluição (e complicação) de colocar vários "SE", condição por condição!
Não seria mais fácil dizer
Código:
Se fizer sol, vou fazer 1
Senão, faço 2
esse senão, vai abranger tempo nublado, tempestade, chuva, neve e qualquer outra condição climática que vier,
afinal, se você não demarcar TAMBÉM o senão, ele faria
Código:
Se fizer sol, vou fazer 1
vou fazer 2 (sem condições significa de qualquer forma)
útil não?
ele ficaria assim:
Código:
IF(condição);
fazer 1
ELSE;
fazer 2
ENDIF;
Hmmm, legal, mas e se eu quiser dizer "Se for assim, faça isso, mas se for assim, faça isso, se não for nenhum dos dois faça isso"?
veja bem, é um comando um tanto complexo, daria pra fazer só com if e else, mas seria um pouco chato, não concorda?
é a partir daí que outro comando que o Yao sabiamente me lembrou, entra na jogada!

COMANDO ELSEIF;

Como funciona?
Seguindo a logica dessa frase, analise o codigo de acordo com as cores:
"Se for assim, faça isso, mas se for assim, faça isso, se não for nenhum dos dois faça isso"
if(condicao);
faça isso

elseif(condicao2);
faça isso
else;
faça isso
endif;

COMANDO IFMATCHES
Espera, eu tentei usar o if com texto, mas parece que ele não funciona, porque?
Para utilizar o comando if para texto é um pouquinho diferente
ao invés de IF(condição); você usará IFMATCHES(condição);

Como faço uma condição para IFMATCHES?
Ela aceita um tipo de condição, como uma espécie de verdadeiro ou falso, ou simplesmente igual, você deve usar o comando assim:
Código:
IFMATCHES(%&var%,teste);
Dessa forma, ele verá se a variável &var é igual a "teste"

COMANDO "DO" (REPETIR)
"DO", no português mais simples seria "FAÇA"
Pegando a logica do "endif", ele funciona da seguinte forma:

do; / loop; Faça / repita
esses comandos vão fazer com que tudo repita dentro deles até que a macro seja desligada
imagine o "loop;" como o "endif;"

Exemplo:
Código:
DO;
fazer 1
fazer 2
fazer 3
loop;
do(); / loop; Faça(tantas vezes) / repita
esses comandos vão fazer com que tudo repita "tantas vezes", definindo a quantia dentro de "()"

Exemplo:
Código:
do(5);
fazer 1
fazer 2
fazer 3
loop;
do; / while(); Faça / enquanto(condiçao)
esses comandos vão fazer com que tudo repita ENQUANTO a condição for verdadeira
(mais detalhes sobre como montar condições vão ser dados mais a frente)

Exemplo:
Código:
do;
fazer 1
fazer 2
fazer 3
while(a>2);
do; / until(); Faça / até(condiçao)
esses comandos vão fazer com que tudo repita ATÉ uma condição ser verdadeira

Exemplo:
Código:
do;
fazer 1
fazer 2
fazer 3
until(a=5);
2 - CONDIÇÕES
é com isso que você vai definir coisas do tipo:
SE O PLAYER ESTIVER OLHANDO PARA O NORTE, FAÇA ISSO
REPITA ATÉ QUE A DURABILIDADE SEJA MENOR QUE 5

OPERADORES RELACIONAIS (ou só "operadores")
Não vou nem explicar, olhando já é possível entender ^^
IGUAL
=
DIFERENTE
seria a mesma coisa de dizer (se isso não for assim)
!=
MAIOR
>
MENOR
<
MAIOR OU IGUAL
>=
MENOR OU IGUAL
<=

MAS O QUE FAÇO COM ELES?
é com eles que você irá comparar números e variáveis (vou explicar sobre elas mais pra frente)

Um exemplo pratico muito usado é o de durabilidade,
por exemplo, se sua espada estiver com baixa durabilidade, a macro para, ficaria assim:
Código:
IF(%DURABILITY% < 5);  -  Se a durabilidade for menor que 5
STOP;
ENDIF;
3 - VARIÁVEIS
FLAGS
"flags" em portuguêns significa "bandeira"

Como Funcionam?
uma bandeira só tem 2 "status": Ligado ou Desligado
lembre-se dos bandeirinhas no futebol, SE estiver levantada (ligada) é impedimento, SE estiver baixada (desligada) não é nada
(lembre-se desse SE)

COMO LIGAR
Código:
set(nome_da_flag);
COMO DESLIGAR

Código:
unset(nome_da_flag);
E SE EU QUISER APENAS "INVERTER", TENHO QUE USAR IF?
Não, você pode usar um comando que define isso automaticamente!
Agradecimentos a iBieel por ter me lembrado desse comando!

COMANDO TOGGLE(nome_da_flag);
esse comando, irá inverter o status da flag

Se ela estiver desligada, irá ligar
Se estiver ligada, irá desligar

Mas onde aplico elas?
Você vai utilizá-la com o comando IF (lembre-se do exemplo dos bandeirinhas)
Código:
if(nome_da_flag);
assim, escrevendo o comando dessa forma, ele já lê como:
se a flag "nome_da_flag" estiver LIGADA

TEXTUAIS E NUMÉRICAS
essas variáveis armazenam dados que podem ser alterados durante o código, ou armazenar dados que sejam adquiridos na hora do uso, como por exemplo %ITEM%, %DIRECTION%, %PLAYER%, etc. (todas vão ser explicadas mais pra frente).

Como Funcionam?
o uso delas são simples, vou explicar uma de cada vez

NUMÉRICAS
usadas para armazenar APENAS NÚMEROS, ela não armazena texto, caso tente armazenar texto nela, ela ficará em branco.

elas são identificadas da seguinte forma:
#nome_da_variavel

automaticamente, qualquer variável numérica vem com o valor 0, para alterá-lo, é simples:

#nome_da_variavel= conteudo;

OBS:
1 - o "nome_da_variavel" é a sua escolha!
2 - o símbolo "#" deve SEMPRE estar na frente do nome da variável
3 - o conteúdo pode ser um numero
ex.: #nome_da_variavel=20;
ou pode ser outra variável
ex.: #nome_da_variavel=%#var2%;

USANDO AS VARIÁVEIS:
para usá-las é simples, elas devem ficar dentro de "%", por exemplo:
IF(%#variavel%);

(lembrando que junto com o nome é obrigatório colocar o simbolo # ou &, e ele deve ser o mesmo que você usou quando atribuiu um valor a ela).

MANIPULANDO AS VARIÁVEIS:
uma variável numerica pode ser manipulada de várias formas, como são números, contas matemáticas podem ser feitas com elas, veja

Código:
%#var1% = %#var1%+2 esse comando altera a variável var1 adicionando 2 a mesma

%#var2% = %#var1%+2 esse, altera OUTRA variável (var2) colocando nela o valor da variável var1 + 2
com elas é possível
Código:
%#var1%+5    Adicionar
%#var1%-3    Subtrair
%#var1%/7    Dividir
%#var1%*7    Multiplicar
OBS: TODO o tutorial esta sendo feito de cabeça, e muita coisa pode ser deixada pra trás, se souber de outras contas possíveis, marque nos comentários!

outra forma de manipulá-las, é através dos comandos INC e DEC

o uso deles também é bem simples e útil

COMANDO INC
é usado para ACRESCENTAR um numero a variável, desta forma:

Código:
INC(#nome_da_variavel, valor);
um exemplo simples de uso é:



Código:
INC(#var, 1);
este comando irá acrescentar 1 a variável #var

COMANDO DEC
é usado para SUBTRAIR um numero a variável, desta forma:
Código:
DEC(#nome_da_variavel, valor);
um exemplo simples de uso é:
Código:
DEC(#var, 1);
Este comando irá subtrair 1 a variável #var

TEXTUAIS

usadas para armazenar caracteres de TEXTO, com ela você pode salvar nomes e outros tipos de informações em forma de texto e/ou números.

elas são identificadas da seguinte forma:
&nome_da_variavel

automaticamente, qualquer variável numérica vem com o valor 0, para alterá-lo, é simples:

&nome_da_variavel= conteudo;

OBS:
1 - o "nome_da_variavel" é a sua escolha!
2 - o símbolo "&" deve SEMPRE estar na frente do nome da variável
3 - o conteúdo pode ser um texto
ex.: &nome_da_variavel=OLÁ;
ou pode ser outra variável
ex.: &nome_da_variavel=%&var5%;

USANDO AS VARIÁVEIS:
assim como as numéricas, para usá-las é simples, elas devem ficar dentro de "%", por exemplo:
IF(%&variavel%);

(lembrando que junto com o nome é obrigatório colocar o simbolo # ou &, e ele deve ser o mesmo que você usou quando atribuiu um valor a ela).


DESVANTAGEM: ela não pode ser manipulada.

VARIÁVEIS DO MINECRAFT
Responsáveis por obter dados do jogo, essas variáveis são separadas em seis grupos
ao contrario das demais elas não levam um caractere do tipo # ou &, mas elas tem duas características únicas:
1 - São escritas SEMPRE em letras MAIÚSCULAS
2 - SEMPRE serão escritas entre "%"

INFORMAÇÕES GERAIS
Código:
%PLAYER%               - nick do jogador
%DIMENSION%            - nome da dimensão atual (nether/mundo normal)
%SERVER%               - IP do server 
%RAIN%                 - condiçao de chuva (0 - 400)
INFORMAÇÕES DO PLAYER
Código:
%XPOS%                 - posição X atual
%YPOS%                 - posição Y atual
%ZPOS%                 - posição Z atual
%DIRECTION%            - direçao em que está olhando (apresentada atraves de uma letra  N/S/E/W)
%YAW%                  - direção horizontal em que está olhando, medida em ângulos, vai de (-90 a 0) e de (0 a 90)
%PITCH%                - direçao vertical em que está olhando, medida em ângulos, vai de (-90 a 0) e de (0 a 90)
%HEALTH%               - Sangue atual do jogador (0 - 20) sendo meio coraçao = 1
%HUNGER%               - Fome atual do jogador (0 - 20) sendo meia carne = 1
%SATURATION%           - (SEM INFORMAÇOES)
%OXYGEN%               - Oxigênio atual do jogador (0 - 400)
INFORMAÇÕES DA ARMADURA (EM USO)
Código:
%BOOTSDURABILITY%      - Durabilidade da bota
%BOOTSID%              - ID da bota usada
%LEGGINGSDURABILITY%   - Durabilidade da calça
%LEGGINGSID%           - ID da calça usada
%CHESTPLATEDURABILITY% - Durabilidade do Peitoral 
%CHESTPLATEID%         - ID do peitoral usado
%HELMDURABILITY%       - Durabilidade do capacete
%HELMID%               - ID do capacete usado
INFORMAÇÕES DO ITEM QUE ESTÁ EM SUA MÃO
Código:
%ITEM%                 - ID do item que esta em sua mão
%ITEMNAME%             - Nome do item que está em sua mão (Ex: Torch)
%DURABILITY%           - Durabilidade do item que está em sua mão 
%STACKSIZE%            - Quantia Maxima que o Item pode Ser Juntado (stackado)
Descrição da função %STACKSIZE% enviada por Manlow

INFORMAÇÕES SOBRE O QUE ESTÁ EM SUA MIRA
Código:
%HIT%                  - Tipo do que esta em sua mira (PLAYER, BLOCK, etc)
%HITID%                - ID do que esta em sua mira
%HITNAME%              - Nome do que está em sua mira (baseado no ID)
%HITDATA%              - "fase" ou "estágio" do bloco, Exemplo: Fungo pronto para colher HITDATA=3
Descrição da função %HITDATA% enviada por hiago85

INFORMAÇÕES DE "BOTÕES PRESSIONADOS"
Código:
%KEY_CTRL%             - Verifica se a tecla CTRL esta sendo pressionado
%KEY_ALT%              - Verifica se a tecla ALT esta sendo pressionado 
%KEY_SHIFT%            - Verifica se a tecla SHIFT esta sendo pressionado 
%KEY_(name)%           - Verifica se a tecla definida esta sendo pressionado (ex:%KEY_(B)%)

VARIÁVEIS DIVERSAS
ALEATÓRIAS (RANDOM)

uma variável aleatória, é gerada pelo macro, respeitando a limitações dadas pelo programador
Exemplo: "Diga-me um numero qualquer de 1 a 20".

COMO FUNCIONA
ela tem a seguinte estrutura:
RANDOM(#variavel,max,min);

Código:
#variavel:  o valor gerado pelo random será armazenado aqui.
            o nome é escolhido por você, basta deixar o "#"
            pra que assim ela seja identificada como numérica.

max:        é o valor máximo que a variável pode ter

min:        é o valor mínimo que a variável pode ter
exemplo de uso: RANDOM(#chute,100,5);


GLOBAIS
Essas variáveis não trazem nada de novo comparado ao que já foi explicado, porém, as variáveis #var e &var só podem ser usadas DENTRO DA MACRO em que elas estão sendo manipuladas

Ok, espera... Eu não entendi '-'
É mais simples do que parece, imagine que você tem duas macros rodando, e você precisa que uma pare, quando a outra fizer algo, como fazer isso?
Variáveis globais salvam um valor que pode ser usado em QUALQUER OUTRA MACRO, mesmo com a que criou o valor ainda executando.

Como usar
basta colocar um @ na frente da variável e pronto!
Exemplos:
Código:
@#var1 | @&var2

%@#var1% %@&var2%




PROXIMAS EXPLICAÇÕES:
VARIAVEIS: Strips




4 - COMANDOS BÁSICOS
Ok, você já aprendeu a trabalhar com números e condições, mas não tem graça aprender tudo isso se não tiver o que fazer com eles, certo? Então vamos a alguns comandos básicos que o macro oferece, como por exemplo, atacar, clique direito, ir para frente, para trás, para os lados, pular, etc etc etc... Para isso, leia o final deste tópico
PROGRAMADORES

Se quiserem acrescentar ou até mesmo me corrigir, FIQUEM A VONTADE!!

Este tópico ensina como dar vida ao seu macro, porém, este é só o "esqueleto" de tudo, após aprender tudo o que foi dito aqui, leia ESTE TÓPICO para aprender todos os comandos deste mod!
Veja mais tutoriais em: http://forum.craftlandia.com.br/ipb/index.php?/tags/forums/aprenda%2Ba%2Bprogramar/



O link esta off
 
Status
Não está aberto para novas respostas.

Users who are viewing this thread

Voltar
Topo