Esta postagem foi revisada e corrigida em 28/12/2017.
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 algo.
Ok, mas tenho duas perguntas:
Que condição é essa?
um exemplo:
Se 5 for maior que 2:
if(5 > 2);
if(5 > 2);
Mas como eu defino o que ele vai fazer?
Logicamente, ele não vai adivinhar o que vai ser feito se a condição for verdadeira, vamos supor:
você precisa quebrar um bloco de terra e colocar uma grama no lugar, na grama você vai colocar uma flor:
1 Quebrar a terra
2 Colocar a grama
3 Colocar a flor
3 Colocar a flor
Se você não precisar quebrar a terra, você vai colocar a flor de qualquer forma, então essa função não precisa estar no "se". VEJA:
Se(bloco = terra)
quebrar a terra
colocar a grama
fim"Se"
colocar a flor
esse fim"Se" define até onde deve ser executado, SE algo for verdadeiro! Isso significa que, se o bloco não for de terra, ele não vai quebrar o bloco nem colocar um novo, apenas vai colocar a flor!
Na macro, isso seria "endif;", ficaria +/- assim:
IF(bloco = terra);
quebrar a terra
colocar a grama
ENDIF;
Mas calma, ainda não acabou
Já dá pra fazer muita coisa com isso, mas e se eu precisar fazer mais de uma verificação?
Imagine isso:
Se for um bloco de terra , vou quebrar ele e colocar um de grama.
Se não for terra só vou colocar a flor
imagine a poluição (e complicação) de colocar vários "SE", condição por condição!
Não seria mais fácil dizer
Se for um bloco de terra, vou quebrar ele e colocar um de grama.
SENÃO, vou colocar a flor
esse "senão" quer dizer, se o primeiro for FALSO (ou seja, não for terra) eu coloco a flor, tudo com apenas um comando! Útil não? ele ficaria assim:
IF(bloco = terra);
quebrar terra
colocar grama
ELSE;
colocar flor
ENDIF;
Hmmm, legal, mas e se eu quiser dizer "Se for terra, quebre e coloque grama, se for grama, coloque uma flor, se não for nenhum dos dois, diga ok"?
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 entra na jogada!
COMANDO ELSEIF;
Como funciona?
Seguindo a logica dessa frase, analise o codigo de acordo com as cores:
"Se for terra, quebre e coloque a grama, mas se for grama, coloque a flor, se não for nenhum dos dois diga ok!"
if(bloco = terra);
quebrar o bloco
colocar a grama
elseif(bloco = grama);
colocar a flor
else;
diga "ok"
endif;
quebrar o bloco
colocar a grama
elseif(bloco = grama);
colocar a flor
else;
diga "ok"
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 só funciona para COMPARAR VALORES, você deve usar o comando assim:
IFMATCHES(%&var%,teste);
Esse comando esse comando funciona apenas para texto e é o mesmo que usar
IF(%&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, vamos supor que está pescando:
DO;
jogar a isca
puxar a isca
ver se veio um peixe
loop;
do(); / loop; Faça(5 vezes) / repita
esses comandos vão fazer com que tudo repita "tantas vezes", definindo a quantia dentro de "()", por exemplo, e se você quiser pescar 5 vezes antes de verificar se veio algum peixe?
Exemplo:
do(5);
jogar a isca
puxar a isca
loop;
ver se veio um peixe
do; / while(); Faça / enquanto(condiçao)
esses comandos vão fazer com que tudo repita ENQUANTO a condição for verdadeira, por exemplo, continuar pescando enquanto a durabilidade da vara for maior que 10
Exemplo:
do;
jogar a isca
puxar a isca
while(durabilidade > 10);
do; / until(); Faça / até(condiçao)
esses comandos vão fazer com que tudo repita ATÉ uma condição ser verdadeira, por exemplo, pescar ATÉ a vara quase quebrar
Exemplo:
do;
jogar a isca
puxar a isca
until(durabilidade = 1);
2 - CONDIÇÕES
é com isso que você vai definir coisas do tipo:
SE O PLAYER ESTIVER OLHANDO PARA O NORTE, VÁ EM FRENTE
ou REPITA ATÉ QUE A DURABILIDADE SEJA MENOR QUE 5
OPERADORES RELACIONAIS (ou só "operadores")
Não vou nem explicar, apenas observando 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
<=
=
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:
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 desse SE)
COMO LIGAR
set(nome_da_flag);
COMO DESLIGAR
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!
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)
if(nome_da_flag);
IMPEDIMENTO!
else;
segue o jogo...
endif;
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, 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
%#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, por exemplo
%#var1%+5 Adicionar
%#var1%-3 Subtrair
%#var1%/7 Dividir
%#var1%*7 Multiplicar
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:
INC(#nome_da_variavel, valor);
um exemplo simples de uso é:
INC(#var, 1);
este comando irá acrescentar 1 a variável #var
COMANDO DEC
é usado para SUBTRAIR um numero a variável, desta forma:
DEC(#nome_da_variavel, valor);
um exemplo simples de uso é:
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 (ou até pode, mas é bem complicado).
VARIÁVEIS DO MINECRAFT (Variáveis de Ambiente)
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 "%"
Todas elas podem ser encontradas aqui: http://mkb-wiki.herokuapp.com/wiki/variables
Todas elas podem ser encontradas aqui: http://mkb-wiki.herokuapp.com/wiki/variables
INFORMAÇÕES GERAIS
%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
%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)
%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
%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 de itens na mão do jogador (stackado)
INFORMAÇÕES SOBRE O QUE ESTÁ EM SUA MIRA
%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
INFORMAÇÕES DE "BOTÕES PRESSIONADOS"
%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);
#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:
@#var1 | @&var2
%@#var1% %@&var2%
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!!
Esta postagem ensina como dar vida ao seu macro, porém, este é só o "esqueleto" de tudo, após aprender tudo o que foi dito aqui, é hora de se aprofundar nos milhares de comandos oferecidos por este macro. Até a próxima! ;)
LEIA AGORA: TODOS OS COMANDOS DO MOD MACRO KEYBIND
LEIA AGORA: TODOS OS COMANDOS DO MOD MACRO KEYBIND
Agradecimentos especiais a Xtycon pelas observações importantes para revisão!
Comente com o Facebook: