Command

Documentação da Classe Commands

A classe Commands é usada para processar comandos de jogadores, permitindo extrair números ou strings de argumentos fornecidos. Esta documentação explica as funções de forma clara, intuitiva e com exemplos práticos para facilitar o uso.


Como Usar a Classe Commands

  1. Declaração: A classe Commands já está declarada no arquivo GameServer.lua, então não é necessário declará-la novamente. Use diretamente o objeto commands para acessar suas funções.

  2. Uso de Funções: As funções são chamadas com a sintaxe commands:função(argumentos), onde os argumentos geralmente são a string do comando digitada pelo jogador.

  3. Observação:

    • Os comandos são baseados nos argumentos fornecidos pelo jogador, e as funções ajudam a extrair números ou strings de posições específicas na string do comando.

    • Os comandos são registrados usando Commands.Register, associando um comando a uma função personalizada.


Funções da Classe Commands

Abaixo estão as funções disponíveis, explicadas de forma simples com exemplos práticos:

1. getNumber(String, Position)

  • Descrição: Extrai um número da string do comando na posição especificada. Cada posição é separada por espaços.

  • Exemplo:

    Copy

    local number = commands:getNumber("addmonster 500 3", 1) -- Extrai o número na posição 1 (500)
    LogAdd(string.format("[Command] - Número extraído na posição 1: %d", number), 0)

2. getString(String, Position, FullString)

  • Descrição: Retorna a string na posição especificada da string do comando. Se FullString for true, retorna a string completa (sem o comando inicial).

  • Exemplo:

    Copy


Como Criar um Comando

Os comandos são criados em scripts Lua, geralmente em arquivos separados, e registrados com Commands.Register. Abaixo está um exemplo de como criar e registrar um comando personalizado.

Estrutura de um Comando

  • Função do Comando: Recebe o índice do jogador (aIndex) e os argumentos do comando (Args).

  • Verificações: Valide permissões (ex.: nível de Game Master) e configurações antes de executar a lógica.

  • Registro: Use Commands.Register(nomeComando, função) para associar o comando à função.


Exemplo Prático Completo

Abaixo está um exemplo fictício que cria um comando para invocar monstros no mapa do jogador, usando as funções da classe Commands. Este código verifica permissões, extrai argumentos e realiza ações com base nos dados fornecidos.

Copy


Resumo

  • A classe Commands simplifica a extração de números (getNumber) e strings (getString) de comandos digitados pelos jogadores.

  • Os comandos são registrados com Commands.Register, associando um nome a uma função personalizada.

  • O exemplo prático mostra como criar um comando para invocar monstros, verificando permissões, extraindo argumentos e logando ações com LogAdd.

Atualizado