Introdução ao Scripting rAthena
Já se perguntou como NPCs personalizados, missões e eventos únicos ganham vida no Ragnarok? Tudo isso é alimentado pela poderosa linguagem de Scripting do rAthena! Pense nela como seu conjunto de ferramentas completo, repleto de comandos e funções projetados para transformar suas ideias de jogo em realidade.
Este portal é um manual de referência abrangente, ideal tanto para iniciantes que desejam criar seus primeiros NPCs quanto para desenvolvedores experientes que buscam aprofundar seu conhecimento na sintaxe e comandos do emulador.
O que significam RID e GID?
No scripting do rAthena, RID e GID são identificadores fundamentais usados para referenciar entidades dentro do mundo do jogo.
RID (Requesting ID): Refere-se diretamente ao jogador. É o número exclusivo de identificação de conta (AID) do personagem que disparou a execução do script. Quando um script é invocado por um jogador (clicando em um NPC, pisando em uma área com OnTouch ou utilizando um item), o RID daquele personagem é automaticamente anexado ao script em execução.
- A maioria dos comandos que interagem com o jogador (como gravar variáveis, abrir diálogos, entregar itens ou modificar atributos) exige um RID anexado.
- Scripts acionados sem um jogador direto (como timers globais, eventos de relógio ou monstros morrendo sozinhos) não possuem RID anexado inicialmente. Nesses casos, comandos como
attachridassociam um jogador explicitamente, enquantoplayerattachedverifica se há alguém vinculado.
GID (Game ID): Identificador exclusivo para objetos e entidades no jogo, incluindo monstros, NPCs, clones e mascotes. É amplamente utilizado por comandos de controle de monstros (mobs) e lógicas de habilidades recentes.
- Para monstros, o GID é obtido no momento do spawn (por exemplo, através do comando
monster). - Você pode inspecionar o GID de qualquer entidade no jogo clicando com o botão direito enquanto estiver em uma conta de Game Master (GM).
- Funções como
getpetinfo,getmercinfoegethominforetornam GIDs para entidades específicas.
📚 Configurando e Carregando seu Primeiro Script
Para fazer com que um NPC funcione no seu servidor rAthena de forma permanente, você deve salvar o arquivo e declará-lo na configuração do emulador:
-
1. Criando o arquivo
meuteste.txt:Exemplo de Código:// NPC simples de teste para rAthena prontera,150,150,4 script meuteste 99,{ mes "[meuteste]"; mes "Olá, aventureiro! Bem-vindo ao servidor!"; close; } -
2. Salvando o Arquivo:
- Salve o arquivo na pasta
npc/custom/do diretório do seu servidor rAthena (ex:npc/custom/meuteste.txt).
- Salve o arquivo na pasta
-
3. Declarando no Arquivo de Configuração:
- Abra o arquivo
npc/scripts_custom.confno seu servidor. - Adicione a linha abaixo para incluir seu novo script:
- Salve o arquivo
scripts_custom.conf.
Declaração no scripts_custom.conf:// -------------------------------------------------------------- // - Scripts Custom - // -------------------------------------------------------------- npc: npc/custom/meuteste.txt
- Abra o arquivo
Como testar ou recarregar o script sem reiniciar o servidor
Para carregar ou atualizar seu NPC em tempo real com seu personagem GM dentro do jogo, utilize os comandos @loadnpc, @reloadnpcfile e @unloadnpcfile:
- Certifique-se de estar logado com uma conta de nível GM.
- Para carregar um script novo sem reiniciar o servidor: use
@loadnpc npc/custom/meuteste.txtno chat do jogo. - Se você alterou o conteúdo do arquivo
meuteste.txt, use@reloadnpcfile npc/custom/meuteste.txtpara aplicar as alterações imediatamente. - Para remover o NPC temporariamente e liberar recursos do mapa: use
@unloadnpcfile npc/custom/meuteste.txt. -
Resumo das Diferenças 🔑
@loadnpc <caminho>: Para novos scripts que ainda não foram carregados pelo servidor.@reloadnpcfile <caminho>: Para scripts existentes que foram modificados e precisam ser atualizados.@unloadnpcfile <caminho>: Remove o script da memória do emulador em tempo de execução.