Follow along with the video below to see how to install our site as a web app on your home screen.
Note: This feature may not be available in some browsers.
Ao se registrar conosco, você poderá discutir, compartilhar e enviar mensagens privadas com outros membros da nossa comunidade.
Registrar agora!X4ndy disse:Muito bom o tutorial,vai ajudar muitos que não sabem mexer com ele.
DeathStrokerBR disse: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.
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
![]()
![]()
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:
![]()
- Clicando sobre este ícone, serão exibido um mini menu, que permite alterar configurações, alterar janela de interface e outros.
2° Função:
![]()
- 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:
![]()
- É 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.
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.
![]()
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.
1° 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:
![]()
- 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:
![]()
- E em seguida clicar no botão "Save"
![]()
- Agora é só pressionar a tecla que você definiu, no exemplo utilizei a tecla "M" e ver o resultado dentro do jogo.
![]()
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 postadorecentementepelo 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":
![]()
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.
![]()
- 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:
![]()
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..."
![]()
- 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" :
![]()
- Será aberto um editor de textos, e é nele que você irá construir seu código inteiro.
![]()
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**
Giooovani disse:Sem desculpas agora que nem todos jogadores sabem usar macro![]()