[Tutorial] Guia de macro para iniciantes

Bem-vindo!

Ao se registrar conosco, você poderá discutir, compartilhar e enviar mensagens privadas com outros membros da nossa comunidade.

Registrar agora!
Status
Não está aberto para novas respostas.
só uma duvida no comando TYPE como eu coloco o botao direito do mouse? o botao de por blocos.
 
Pow, sou meio que novo no CraftLandia tópico muito bem encinado, valews mesmo ;)
 
É como faz pra ligar o auto click com o inv aberto ?
 
DeathStrokerBR disse:
1_zpse55c0917.png
Afinal o que é "macro" e o que é "bind"?

Algumas pessoas possuem dificuldades em distinguir ou apenas acham que essas duas funções são as mesmas, e é por isso que irei explicar suas "responsabilidades" no mod.

Macro: Esta função é responsável por ações "automáticas" dentro do jogo, seja para andar, abrir baús, escrever no chat global ou local, trocar de ferramenta, avisar sobre a durabilidade de um item, etc.

O macro é o código que você cria, para realizar uma tarefa dentro do jogo.
Em alguns casos, pode ser considerado um "robo" por assumir tarefas que seriam realizadas por um player.

Bind: Esta função é responsável apenas pela ação de pressionar uma tecla, como executar um texto por exemplo.

Ou seja, sem a bind não seria possível executar um código de macro.




2_zpsee747ff6.png
Para aprender a utilizar o mod, é necessário conhecer pelo menos sua estrutura principal ou seja, a interface gráfica que ele possui e o que ela tem a oferecer.
Como eu acesso essa interace?

Você pode acessa-lo através das teclas de atalho que você definiu quando iniciou o mod pela primeira vez, ou simplesmente ir em:
>Controles > Macro Settings


hfbfB5c.png


zjEjcnK.png

A imagem acima, mostra o menu principal do mod.
Como pode ser notado, é exibido o layout de um teclado e de um mouse.

- As teclas em vermelho indicam que as mesmas já possuem funções dentro do jogo, é possível utiliza-las, porém não é recomendável.
- As teclas em amarelo indicam que o usuário já inseriu algum tipo de função, ou seja, já está em uso.
- As tecla em cinza indicam que estão livre para uso.


Mais acima é possível notar a presença de 3 funções:

1° Função:

phFfXjW.png


- Clicando sobre este ícone, serão exibido um mini menu, que permite alterar configurações, alterar janela de interface e outros.

2° Função:

eEAIouL.png


- Clicando na seta que indica para a direita, você poderá mexer em outras funções que o mod permite, como o menu "Events/Eventos" que irei explicar mais abaixo.

3° Função:

V4aSquc.png


- É possível definir várias configurações dentro do mod, é como se fosse um "save" de outras configurações do mod, pode ser utilizado para testar macros, etc.




3_zps8a1e3ce2.png
Mas o que seria esse "Evento" dentro do mod de macros?
Poucos conhecem esse menu, e alguns simplesmente não entendem pra que serve.

Pois bem, este menu permite a você configurar um determinado código para ser ativado assim que ocorrer alguma ação dentro do jogo.

PoXu48h.png


Ok, mas quais são estes tipos de ações?
Alguns são bem simples, irei citar dois exemplos e irei explicar como deve-se entende-los:

- OnJoinGame: É possível definir um código nesta ação, que assim que você acessar o servidor o macro digite sua senha automaticamente, etc.

Isso depende da sua criatividade, além de digitar a senha ainda é possível ir para uma determinada /home de sua escolha, como citei anteriormente isso depende da sua criatividade e é claro, de sua necessidade.

- onChat: Você deve entender esta função da seguinte forma "no chat", "quando abrir o chat", etc.
Assim que ocorrer alguma ação dentro do chat, a macro definida irá ativar.

Por exemplo: Você pode construir uma macro para ler as mensagens do global, e definir que quando mostrar a palavra "evento no servidor" o macro te avise com uma cor forte, ou faça alguma coisa no jogo.

- onHealthChange: Você deve entender esta função da seguinte forma "quando a vida mudar", "quando perder vida" executar tal ação.

- onFoodChange: Você deve entender esta função da seguinte forma "quando alterar o nivel de fome", "quando ficar com fome" executar tal ação.

- onArmourChange: Você deve entender esta função da seguinte forma "quando trocar de armadura" executar tal ação.

- onWorldChange: Você deve entender esta função da seguinte forma "Quando mudar/alterar de mundo" executar tal ação.

- onModeChange: Você deve entender esta função da seguinte forma "quando trocar a configuração do jogo" executar tal ação.

- onInventorySlotChange: Você deve entender esta função da seguinte forma "quando trocar alguma coisa de algum slot" executar tal ação.

- onArmourDurabilityChange: Você deve entender esta função da seguinte forma "quando mudar a durabilidade da armadura" executar tal ação.

- onOxygenChange: Você deve entender esta função da seguinte forma "quando sumir uma determinada quantia de bolha de respiração" executar tal ação.

- onXPChange: Você deve entender esta função da seguinte forma "Quando o nível de XP mudar/alterar/abaixar" executar tal ação.

- onLevelChange: Você deve entender esta função da seguinte forma "Quando mudar de nível" executar tal ação.
[Lembrando que isso não se aplica aos níveis de stats dentro da craftlandia]

- onWeatherChange: Você deve entender esta função da seguinte forma "Quando mudar o clima do jogo" executar tal ação.

- onPíckupItem: Você deve entender esta função da seguinte forma "Quando pegar/receber um item" executar tal ação.

- onPlayerJoined: Você deve entender esta função da seguinte forma "Quando algum jogador entrar/acessar o servidor" executar tal ação.

- onShowGui: Você deve entender esta função da seguinte forma "Quando exibir algum tipo de janela, ex: inventário, itens dentro de um baú..." executar tal ação.

- onAutoCraftingComplete: Você deve entender esta função da seguinte forma "Quando terminar de "craftar" algo " executar tal ação.

- onConfigChange: Você deve entender esta função da seguinte forma "quando for feita alguma alteração de configuração" executar tal ação.

- onSendChatMessage [Novo]: Entende-se esta função como "Ao enviar mensagem no chat" executar tal ação.
Obs: Essa função foi implementada na versão 1.7.2.


Para utilizar/criar uma bind é super fácil, primeiro você precisa clicar na tecla que você deseja executar um texto ou chamar um código de macro e inserir sua respectiva função, deixarei 2 exemplos abaixo.

Criando uma bind para mostrar uma mensagem na tela:

Acesse a interface principal do mod, e clique ou pressione alguma tecla.
Será mostrado o seguinte:

waYou97.jpg

- Como pode-se notar, estou configurando a bind na tecla "M"
E neste exemplo, iremos exibir apenas a frase "Olá craftlandia" então para isso, basta adicionar a frase:

M5PFiuW.png


- E em seguida clicar no botão "Save"

DhfjmlT.png


- Agora é só pressionar a tecla que você definiu, no exemplo utilizei a tecla "M" e ver o resultado dentro do jogo.

twOSCx1.png


2° Utilizando uma bind para chamar um código de macro.

- Existem dois modos de executar um código macro em uma bind.

O primeiro permite que ao pressionar uma tecla, o mesmo execute um código macro pré definido na bind.
O segundo permite que você "chame" um arquivo .txt que tenha uma "programação" de macro dentro dele, ou seja um código extenso.

Mostrarei os dois exemplo, veja abaixo:

O macro postado recentemente pelo nosso querido ex-sub-diretor ([member='MatheusUzumaki']) é um exemplo de código de macro pré definido dentro de uma bind (tecla) e não de um texto ".txt":

aON1mGl.png


Pode-se notar que o código está dentro da tecla "M".

- Porque eu tenho que colocar estes comandos " $${ }$$ " no código?
R: O macro também é uma plataforma para "programação" porém essa "programação" é apenas para o minecraft, e como toda linguagem de programação, é necessário que o sistema que vai executar o código entenda onde começar a ler uma função.

E é justamente disso que trata-se estes cifões/chaves, eles indicam que dentro daquelas chaves existe um código macro, se você não colocasse essas chaves ($${ }$$) o mod simplesmente iria mostrar todo esse código na tela como se fosse um texto, o que não seria muito agradável.

Para que a bind reconheça que você está querendo executar um código macro e não um texto, é necessário iniciar o código com "$${" e terminar com "$$}"

- Ok, mas porque eu vou querer escrever o código dentro de um arquivo .txt ??
R: Simplesmente por que o espaço para digitar um código dentro de uma bind é pequeno, imagine escrever um código de macro extenso dentro dessa caixa de textos?

- Como faça para "chamar" um arquivo .txt cujo o código de programação de macro esteja dentro dele?
R: Primeiramente quero esclarecer que já existe uma pasta pré-definida do mod para executar arquivos .txt.
Então não adianta querer incluir um comando para procurar o arquivo ".txt" em seu computador.

- Qual pasta ficam os arquivos (.txt) da macro?
R: .minecraft/mods/macros

- Eu posso construir o código no bloco de notas (Notepad) e salvar nesta pasta?
R: Sim

Para chamar um arquivo ".txt" é necessário inserir o comando "$$<arquivo.txt>" sem aspas.

PmMN2uc.png


- Mas e aquelas chaves ($${ }$$) ?
R: Como disse anteriormente, essas chaves servem para indicar que o código trata-se de uma macro.

- Tudo bem, mas o arquivo que estamos chamando tem um código de macro dentro certo? onde vamos colocar essas chaves?
R: Bom, isso fica a critério do "programador".
Ou a pessoa coloca estas chaves dentro do arquivo .txt ou já insere na própria bind, evitando o uso das chaves dentro do arquivo ".txt", por exemplo:

0E1xsoo.png





5_zps749b9209.png
Mostrei anteriormente como utilizar binds, agora irei mostrar como editar/criar um código macro dentro do mod.

- Após definir a bind para "chamar" um código macro, clique em "Edit File..."

EgL1GUd.png


- Em seguida, dê o nome do arquivo que você definiu na bind.

No exemplo anterior o nome do arquivo era "macro.txt", lembrando que não é necessário adicionar a extensão .txt no final, depois clique no botão "Create" :

aAMgBrx.png


- Será aberto um editor de textos, e é nele que você irá construir seu código inteiro.

srhDx7H.png



6_zps6e01dfd1.png
Vamos tratar um pouco sobre o assunto "Comandos" também conhecidos como "Sintaxe" e são estas sintaxe que definem uma linguagem de programação.

O que é uma sintaxe?
Em termo informal, a sintaxe é uma palavra "chave" que possui uma instrução/função dentro do mod.
Se não existisse essa palavra chave, o programador teria que escrever uma série de códigos binários, para fazer o minecraft entender o que ele pretender fazer dentro do jogo.

Obs: Decidi colocar todas as funções abaixo em inglês até porque algumas sintaxes não fazem sentido nenhum em português:

CRAFT
CRAFT(<item[:damage]>,[amount],[throw],[verbose])
Descrição: Cria uma lista de itens para serem craftados.

CRAFTANDWAIT
CRAFTANDWAIT(<item[:id]>,[amount],[throw],[verbose])
Descrição: Cria uma lista de itens para serem craftados e aguarda por um tempo pré-definido.

DISCONNECT
DISCONNECT()
Descrição: Desconecta do jogo ou servidor.

GETID
GETID(<x>,<y>,<z>,<#idvar>,[#datavar])
Descrição: Obtém a ID e opcionalmente os valores de dados de um bloco em uma coordenada específica no mundo.

GETIDREL
GETIDREL(<xoffset>,<yoffset>,<zoffset>,<#idvar>,[#datavar])
Descrição: Obtém a ID e opcionalmente os valores de dados de um bloco em uma determinada coordenada relativa ao jogador.

GETITEMINFO
GETITEMINFO(<item[:damage]>,<&namevar>,[#maxstacksize],[&type],[#dropid])
Descrição: Obtém o nome e outras informações de um item, retorna o valor "None" caso o item seja inválido.

GETSLOT
GETSLOT(<item[:damage]>,<#idvar>,[startfromslotid])
Descrição: Obtém a id de um slot que contenha um item compatível, retorna -1 se não for encontrado.

GETSLOTITEM
GETSLOTITEM(<slotid>,<#idvar>,[#stacksizevar],[#datavar])
Descrição: Obtém informações sobre o item em um determinado slot.

INVENTORYDOWN
INVENTORYDOWN([amount])
Descrição: Desce uma específica quantia de slots na hotbar

INVENTORYUP
INVENTORYUP([amount])
Descrição: Sobe uma específica quantia de slots na hotbar

LOOK
LOOK(<yaw>,[pitch],[time])
Descrição: Faz o player olhar para uma direção específica, use ângulos prefixos com + ou - para movimentos relativos.

LOOKS
LOOKS(<yaw>,[pitch],[time])
Descrição: Vira o player suavemente para uma direção específica, use ângulos prefixos com + ou - para movimentos relativos.

PICK
PICK(<item[:damage]>,[item[:damage]],...)
Descrição: Seleciona a id de um item se o mesmo estiver na hotbar, especifique outros itens a serem apanhados de acordo com sua preferência.

PLACESIGN
PLACESIGN([line1],[line2],[line3],[line4],[showgui])
Descrição: Coloca uma placa com o texto designado (se você tiver um)

PLAYSOUND
PLAYSOUND(<sound>)
Descrição: Reproduz um som

RESPAWN
RESPAWN()
Descrição: Ressuscita um player caso ele tenha morrido.

SETSLOTITEM
SETSLOTITEM([item[:damage]],[slot],[amount])
Descrição: Apenas para o modo criativo, seleciona um conteúdo em um slot na hot bar.

SLOT
SLOT(<slot>)
Descrição: Seleciona um slot pré-definido na hot bar.

SLOTCLICK
SLOTCLICK(<slot>,[button],[shift])
Descrição: Simula o clique em um determinado slot na interface atual, é possível utilizar RMB e shiftkey

SPRINT
SPRINT()
Descrição: Faz o player correr se tiver estamina suficiente (comida)

UNSPRINT
UNSPRINT()
Descrição: Faz com que o player pare de correr.

KEY
KEY(<bind>)
Descrição: Ativa uma determinar tecla de atalho 1 vez.

KEYDOWN
KEYDOWN(<bind>)
Descrição: Define o estado de uma tecla de atalho para "pressionada", funciona apenas com atalhos pressionáveis.

KEYUP
KEYUP(<bind>)
Descrição: Define o estado de uma tecla de atalho para "sem pressionamento", funciona apenas com atalhos pressionáveis.

TOGGLEKEY
TOGGLEKEY(<bind>)
Descrição: Alterna o estado de uma tecla de atalho, funciona apenas com atalhos pressionáveis.

PRESS
PRESS(<lwjgl_name>)
Descrição: Realiza a função manual de uma determinada tecla.

TYPE
TYPE(<text>)
Descrição: Realiza a função manual de uma determinada tecla em sequências.

ASSIGN
<var> = <value>
Descrição: Função interna.

BREAK
BREAK
Descrição: Interrompe uma função interna que esteja sendo executada continuamente.

CALCYAWTO
CALCYAWTO(<xpos>,<zpos>,[#yaw],[#distance])
Descrição: Calcula o ângulo preciso de uma determinada coordenada.

DEC
DEC(<#var>,[amount])
Description: Decrements the specified counter by 1 or by the specified amount
Descrição: Desconta uma específica contagem por 1 ou por um outro valor.

DO
DO([count])
Description: Begins a loop, specify a number of loops to limit the loop count
Descrição: Inicia um loop, é possível definir um valor para o limite de loop.

ECHO
ECHO(<text>)
Description: Sends the specified message as a chat packet
Descrição: Envia uma mensagem no chat do jogo.

ELSE
ELSE
Description: ELSE clause
Descrição: (SE NÃO) <condição>

ELSEIF
ELSEIF(<condition>)
Description: ELSEIF clause
Descrição: (SE NÃO FOR) <condição>

ENDIF
ENDIF
Description: ENDIF clause
Descrição: (FIM DO MÉTODO IF) <condição>

EXEC
EXEC(<file.txt>,[taskname],[params],...)
Description: Creates a task by running the specified script file
Descrição: Cria uma tarefa para executar determinado arquivo de script.

FOR
FOR(<#var>,<start>,<end>)
Description: Begins a FOR->NEXT loop using the specified var as a loop counter, #var can be used inside the loop
Descrição: Inicia um FOR->NEXT utilizando uma específica variável como loop em contagem, #var pode ser usada dentro do loop.

FOREACH
FOREACH(<iterator>)
Description: Runs a loop over the specified iterator
Descrição: Executa um loop em um iterator.

IF
IF(<condition>)
Description: IF clause
Descrição: (SE) <condição>

IFBEGINSWITH
IFBEGINSWITH(<haystack>,<needle>)
Description: IFBEGINSWITH clause
Descrição: (SE INICIAR COM) <condição>

IFCONTAINS
IFCONTAINS(<haystack>,<needle>)
Description: IFCONTAINS clause
Descrição: (SE CONTER) <condição>

IFENDSWITH
IFENDSWITH(<haystack>,<needle>)
Description: IFENDSWITH clause
Descrição: (SE TERMINAR COM) <condição>

IFMATCHES
IFMATCHES(<subject>,<pattern>,[&target],[group])
Description: IFMATCHES clause
Descrição: (SE CORRESPONDER) <condição>

IIF
IIF(<condition>,<truetext>,[falsetext])
Description: Inline IF statement, sends truetext as a chat message if condition succeeds, or sends falsetext if not
Descrição: Utiliza a função IF em uma linha, envia um texto (True/Verdadeiro) se a condição obtiver sucesso, ou envia um (False/Falso) caso não obtenha.

INC
INC(<#var>,[amount])
Description: Increments the specified counter by 1 or by the specified amount
Descrição: Incrementa uma determinada contagem, em 1 ou por outro valor determinado.

LOG
LOG(<text>)
Description: Outputs the specified text into the local chat stream
Descrição: Retorna um determinado texto no chat local.

LOGTO
LOGTO(<target>,<text>)
Description: Outputs the specified text into the specified target, target can be a text file name or the name of a textarea
Descrição: Retorna um determinado texto em um local/alvo, o local/alvo pode ser um arquivo de texto ou uma área de texto.

LOOP
LOOP
Description: Ends a loop that was started with DO
Descrição: Finaliza um loop que foi iniciado com DO.

MATCH
MATCH(<subject>,<pattern>,[&target],[group],[default])
Description: Runs a regular expression match on the subject and puts the result in &target
Descrição: Inicia a expressão regular de comparação em um assunto e coloca o resultado em &alvo/local.

NEXT
NEXT
Description: Completes a FOR->NEXT loop
Descrição: Completa um loop do tipo FOR->NEXT.

PROMPT
PROMPT(<&target>,<paramstring>,[prompt],[override],[default])
Descrição: Displays a prompt (or prompts) by parsing the params in paramstring

RAMDOM
RANDOM(<#target>,[max],[min])
Descrição: Assigns a random number between min and max to target

REPLACE
REPLACE(<&subject>,<search>,[replace])
Descrição: Replace all occurrences of search with replace in &subject

SET
SET(<target>,[value])
Descrição: Sets the value of target to value (or TRUE if value is omitted)

SETLABEL
SETLABEL(<labelname>,<text>,[binding])
Descrição: Sets the text (and optionally binding) of the specified label

SQRT
SQRT(<value>,[#outvar])
Descrição: Calculate the square root of value and store it in #outvar

STOP
STOP([id])
Descrição: Stops the current macro, or macros matching the specified ID

STRIP
STRIP(<&target>,<text>)
Descrição: Strips all formatting codes from the specified text and assigns the result to &target

TOGGLE
TOGGLE([flag])
Descrição: Toggles the specified boolean flag's value

UNSET
UNSET(<flag>)
Descrição: Un-sets the specified variable

UNTIL
UNTIL(<condition>)
Descrição: Completes a loop started with DO but exits the loop if condition is met

WAIT
WAIT(<time>)
Descrição: Pauses the script for the time specified, suffix "ms" for a wait in milliseconds or "t" to wait in ticks

WHILE
WHILE(<condition>)
Descrição: Completes a loop started with DO but exits the loop if condition is not met

ARRAYSIZE
ARRAYSIZE(<array>,<outvar>)
Descrição: Stores the size of the specified array in outvar

INDEXOF
INDEXOF(<array>,<outvar>,<searchfor>)
Descrição:Gets the first index of searchfor in array and stores it in outvar, returns -1 on failure

POP
POP(<array>,<outvar>)
Descrição: Removes the last entry from the tail of array and stores it in outvar

PUSH
PUSH(<array>,<value>)
Descrição: Appends value to the end of array

PUT
PUT(<array>,<value>)
Descrição: Inserts value at the first empty point in array

CONFIG
CONFIG(<configname>)
Descrição: Switch to the specified configuration

IMPORT
IMPORT(<configname>)
Descrição: Overlay the specified configuration

UNIMPORT
UNIMPORT()
Descrição: Remove the specified configuration overlay if active

BIND
BIND(<bind>,<keycode>)
Descrição: Set the specified key binding to the specified key code

CHATHEIGHT
CHATHEIGHT(<value>,[time])
Descrição: Set height of the Minecraft chat whilst ingame 20-180

CHATHEIGHTFOCUSED
CHATHEIGHTFOCUSED(<value>,[time])
Descrição: Set height of the Minecraft chat whilst in the chat GUI 20-180

CHATOPACITY
CHATOPACITY(<value>,[time])
Descrição: Set opacity of the Minecraft chat 0-100

CHATSCALE
CHATSCALE(<value>,[time])
Descrição: Set scale of the Minecraft chat 0-100

CHATVISIBLE
CHATVISIBLE(<value>)
Descrição: Set visibility of minecraft chat

CHATWIDTH
CHATWIDTH(<value>,[time])
Descrição: Set width of the Minecraft chat 40-320

FOG
FOG([value])
Descrição: Toggles render distance, or optionally specify render distance

FOV
FOV(<value>,[time])
Descrição: Sets the FOV angle in degrees, specifying time causes the value to change smoothly

GAMMA
GAMMA(<value>,[time])
Descrição: Sets the brightness value (percent), specifying time causes the value to change smoothly

MUSIC
MUSIC(<value>,[time])
Descrição: Sets the music volume, specifying time causes the value to change smoothly

RESOURCEPACK
RESOURCEPACK([pattern])
Descrição: Sets the resource pack to the pack matching pattern

SENSITIVITY
SENSITIVITY(<value>,[time])
Descrição: Sets the mouse sensitivity (between 0 and 200), specifying time causes the value to change smoothly

SETRES
SETRES(<width>,<height>)
Descrição: Sets the size of the minecraft game window

TEXTUREPACK
TEXTUREPACK([pattern])
Descrição: Sets the resource pack to the pack matching pattern

VOLUME
VOLUME(<value>,[time])
Descrição: Sets the sound volume, specifying time causes the value to change smoothly

ACHIEVEMENTGET
ACHIEVEMENTGET(<text>,[itemid[:damage]])
Descrição: Displays the "achievment get" popup with a custom message

BINDGUI
BINDGUI(<slot>,<screen>)
Descrição: Binds the specified custom screen to the slot specified

CLEARCHAT
CLEARCHAT()
Descrição: Clears the current chat stream

GUI
GUI([name])
Descrição: Show (or hide) a gui screen

SHOWGUI
SHOWGUI(<screen>,[esc_screen])
Descrição: Show a custom gui screen

STORE
STORE(<type>,[name])
Descrição: Store a value into a list using the current environment

STOREOVER
STOREOVER(<type>,[name])
Descrição: Store a value into a list using the current environment and overwrite it if exists

TIME
TIME(<&target>,[format])
Descrição: Stores the current time and date into &target, optionally using format specified


Obs: Todas as sintaxe do mod, foram cedidas por Mumfrey - Criador do mod.
Última atualização do Tópico em: 17 /08/2014 - | ATENÇÃO! Algumas sintaxes não estão disponíveis na versão antiga (1.5.2)|
**TODOS OS COMANDOS DISPONÍVEIS NA MACROS FORAM ADICIONADOS AO TÓPICO**







legal ajudou muito
 
Uhm fiquei sabendo de uma coisa q nao sabia ME AJUDO :D :D :D
 
Mais tem alguma opção de macro que faz com que puxe os itens pra você? Tipo: to no spawn e um cara dropa um item, daí eu ativo o macro e o macro recolhe o item, como se fosse um ímã?
 
Onde você encontrou essa lista de comandos?? Provavelmente pegou de alguma documentação oficial. Onde eu encontro a documentação oficial, o arquivo original de onde você pegou esses comandos e as descrições em inglês???
 
Foi com esse post qie comecei a programar. ...

Enviado de meu GT-I9082L usando Tapatalk
 
Status
Não está aberto para novas respostas.

Usuários que estão visualizando este tópico

Voltar
Topo