PT-BR/AddCommandHandler: Difference between revisions
m (Alteração da posição das sintaxes da função callback do command handler) |
mNo edit summary |
||
(4 intermediate revisions by 3 users not shown) | |||
Line 17: | Line 17: | ||
<section name="Lado servidor" class="server" show="true"> | <section name="Lado servidor" class="server" show="true"> | ||
<syntaxhighlight lang="lua"> | <syntaxhighlight lang="lua"> | ||
bool addCommandHandler ( string | bool addCommandHandler ( string commandName, function handlerFunction [, bool restricted = false, bool caseSensitive = true ] ) | ||
</syntaxhighlight> | </syntaxhighlight> | ||
===Argumentos Necessários=== | ===Argumentos Necessários=== | ||
*''' | *'''commandName:''' Este é o nome do comando ao qual você deseja anexar um manipulador. É isso que deve ser digitado no console para ativar a função. | ||
*'''handlerFunction:''' Essa é a função que você deseja que o comando seja acionado, que deve ser definida antes da adição do manipulador. Esta função pode ter dois parâmetros, | *'''handlerFunction:''' Essa é a função que você deseja que o comando seja acionado, que deve ser definida antes da adição do manipulador. Esta função pode ter dois parâmetros, ''playerSource'' e ''commandName'', seguidos de quantos parâmetros você espera após o seu comando (veja abaixo). Tudo isso é opcional. | ||
====Parâmetros da função callback==== | ====Parâmetros da função callback==== | ||
:Esses são os parâmetros que serão definidos na função quando o comando for executado | :Esses são os parâmetros que serão definidos na função quando o comando for executado | ||
:<syntaxhighlight lang="lua">player | :<syntaxhighlight lang="lua">player playerSource, string commandName [, string arg1, string arg2, ... ] </syntaxhighlight> | ||
:* ''' | :* '''playerSource:''' O jogador que acionou o comando ou o [[Element/Console|server console]]. Se não for acionado por um jogador e nem pelo console do servidor, isso será '' false ''. | ||
:* ''' | :* '''commandName:''' O nome do comando acionado. Isso é útil se vários comandos acionam uma só função. | ||
:* '''arg1, arg2, ...:''' Cada palavra após o nome do comando no comando original é passada aqui em uma variável separada. Se não houver valor para um argumento, sua variável conterá [[nil]]. Você pode lidar com um número variável de argumentos usando a expressão vararg, conforme mostrado em '''Exemplo 2 (server-side)''' abaixo. | :* '''arg1, arg2, ...:''' Cada palavra após o nome do comando no comando original é passada aqui em uma variável separada. Se não houver valor para um argumento, sua variável conterá [[nil]]. Você pode lidar com um número variável de argumentos usando a expressão vararg, conforme mostrado em '''Exemplo 2 (server-side)''' abaixo. | ||
</br> | </br> | ||
===Argumentos Opcionais=== | ===Argumentos Opcionais=== | ||
{{BR/ArgOpcional}} | {{BR/ArgOpcional}} | ||
*''' | *'''restricted:''' Especifique se esse comando deve ou não ser restrito por padrão. Use isso em comandos que devem estar inacessíveis para todos como padrão, exceto usuários especiais especificados na ACL (Lista de controle de acesso). Isso é para garantir que comandos de administração, como por exemplo: 'punish' não estará disponível para todos se um administrador de servidor esquecer de mascará-lo na ACL. Certifique-se de adicionar o comando à sua ACL no grupo apropriado para que seja útil (ou seja, <right name = "command.punish" access = "true"> </right>). O argumento padrão é false se nada for especificado. | ||
{{New feature|3|1.0| | {{New feature|3|1.0| | ||
*''' | *'''caseSensitive:''' Especifica se o manipulador de comando ignorará o caso sensitivo para esse nome de comando. Se true, para executar o comando deve digitá-lo da mesma forma como foi especificado no 1° argumento, se false, independente de maiúsculas ou minúsculas, o comando será executado. | ||
}} | }} | ||
Line 44: | Line 44: | ||
<section name="Lado cliente" class="client" show="true"> | <section name="Lado cliente" class="client" show="true"> | ||
<syntaxhighlight lang="lua"> | <syntaxhighlight lang="lua"> | ||
bool addCommandHandler ( string | bool addCommandHandler ( string commandName, function handlerFunction [, bool caseSensitive = true ] ) | ||
</syntaxhighlight> | </syntaxhighlight> | ||
===Argumentos Necessários=== | ===Argumentos Necessários=== | ||
*''' | *'''commandName:''' Este é o nome do comando ao qual você deseja anexar um manipulador. É isso que deve ser digitado no console para ativar a função. | ||
*'''handlerFunction:''' Essa é a função que você deseja que o comando seja acionado, que deve ser definida antes da adição do manipulador. Esta função pode ter | *'''handlerFunction:''' Essa é a função que você deseja que o comando seja acionado, que deve ser definida antes da adição do manipulador. Esta função pode ter o parâmetro ''commandName'', seguido de quantos parâmetros você espera após o seu comando (veja abaixo). Tudo isso é opcional. | ||
====Parâmetros da função callback==== | ====Parâmetros da função callback==== | ||
:Esses são os parâmetros que serão definidos na função quando o comando for executado | :Esses são os parâmetros que serão definidos na função quando o comando for executado | ||
:<syntaxhighlight lang="lua">string | :<syntaxhighlight lang="lua">string commandName [, string arg1, string arg2, ... ] </syntaxhighlight> | ||
:* ''' | :* '''commandName:''' O nome do comando acionado. Isso é útil se vários comandos acionam uma só função. | ||
:* '''arg1, arg2, ...:''' Cada palavra após o nome do comando no comando original é passada aqui em uma variável separada. Se não houver valor para um argumento, sua variável conterá [[nil]]. Você pode lidar com um número variável de argumentos usando a expressão vararg, conforme mostrado em '''Exemplo 2 (server-side)''' abaixo. | :* '''arg1, arg2, ...:''' Cada palavra após o nome do comando no comando original é passada aqui em uma variável separada. Se não houver valor para um argumento, sua variável conterá [[nil]]. Você pode lidar com um número variável de argumentos usando a expressão vararg, conforme mostrado em '''Exemplo 2 (server-side)''' abaixo. | ||
</br> | </br> | ||
Line 59: | Line 59: | ||
{{BR/ArgOpcional}} | {{BR/ArgOpcional}} | ||
{{New feature|3|1.0| | {{New feature|3|1.0| | ||
*''' | *'''caseSensitive:''' Especifica se o manipulador de comando ignorará o caso sensitivo para esse nome de comando. Se true, para executar o comando deve digitá-lo da mesma forma como foi especificado no 1° argumento, se false, independente de maiúsculas ou minúsculas, o comando será executado. | ||
}} | }} | ||
</section> | </section> | ||
Line 157: | Line 157: | ||
{{Server functions}} | {{Server functions}} | ||
[[ar:addCommandHandler]] | |||
[[en:addCommandHandler]] | |||
[[hu:addCommandHandler]] | [[hu:addCommandHandler]] | ||
[[pt-br:AddCommandHandler]] |
Latest revision as of 18:31, 21 February 2021
Nota Importante: NÃO use o mesmo nome do comando para a sua função, pois isso pode causar confusão se várias funções forem usadas pelo mesmo comando. Use um nome que descreva o objetivo de sua função mais especificamente. | |
Essa função anexará uma função (handler) de script à um comando do console, para que sempre que um jogador ou administrador use o comando, a função seja chamada.
Vários manipuladores de comando podem ser anexados a um único comando e serão chamados na ordem em que os manipuladores foram anexados. Da mesma forma, vários comandos podem ser manipulados por uma única função e o parâmetro nomeDoComando é usado para decidir o curso da ação.
Para usuários, um comando está no formato:
nomeDoComando argumento1 argumento2
Isso pode ser acionado no console do jogador ou diretamente da caixa de bate-papo, prefixando a mensagem com uma barra ( / ). O administrador do servidor também poderá executar o comando através do console do servidor, da mesma maneira que são acionados no console do jogador.
Nota: Você não pode usar "check", "list", "test" ou outro nome que já exista de forma nativa como um nome de comando. | |
Sintaxe
bool addCommandHandler ( string commandName, function handlerFunction [, bool restricted = false, bool caseSensitive = true ] )
Argumentos Necessários
- commandName: Este é o nome do comando ao qual você deseja anexar um manipulador. É isso que deve ser digitado no console para ativar a função.
- handlerFunction: Essa é a função que você deseja que o comando seja acionado, que deve ser definida antes da adição do manipulador. Esta função pode ter dois parâmetros, playerSource e commandName, seguidos de quantos parâmetros você espera após o seu comando (veja abaixo). Tudo isso é opcional.
Parâmetros da função callback
- Esses são os parâmetros que serão definidos na função quando o comando for executado
player playerSource, string commandName [, string arg1, string arg2, ... ]
- playerSource: O jogador que acionou o comando ou o server console. Se não for acionado por um jogador e nem pelo console do servidor, isso será false .
- commandName: O nome do comando acionado. Isso é útil se vários comandos acionam uma só função.
- arg1, arg2, ...: Cada palavra após o nome do comando no comando original é passada aqui em uma variável separada. Se não houver valor para um argumento, sua variável conterá nil. Você pode lidar com um número variável de argumentos usando a expressão vararg, conforme mostrado em Exemplo 2 (server-side) abaixo.
Argumentos Opcionais
NOTA: Ao usar argumentos opcionais, pode ser necessário fornecer todos os argumentos anteriores ao que você deseja usar. Para obter mais informações sobre argumentos opcionais, consulte Argumentos Opcionais.
- restricted: Especifique se esse comando deve ou não ser restrito por padrão. Use isso em comandos que devem estar inacessíveis para todos como padrão, exceto usuários especiais especificados na ACL (Lista de controle de acesso). Isso é para garantir que comandos de administração, como por exemplo: 'punish' não estará disponível para todos se um administrador de servidor esquecer de mascará-lo na ACL. Certifique-se de adicionar o comando à sua ACL no grupo apropriado para que seja útil (ou seja, <right name = "command.punish" access = "true"> </right>). O argumento padrão é false se nada for especificado.
- caseSensitive: Especifica se o manipulador de comando ignorará o caso sensitivo para esse nome de comando. Se true, para executar o comando deve digitá-lo da mesma forma como foi especificado no 1° argumento, se false, independente de maiúsculas ou minúsculas, o comando será executado.
bool addCommandHandler ( string commandName, function handlerFunction [, bool caseSensitive = true ] )
Argumentos Necessários
- commandName: Este é o nome do comando ao qual você deseja anexar um manipulador. É isso que deve ser digitado no console para ativar a função.
- handlerFunction: Essa é a função que você deseja que o comando seja acionado, que deve ser definida antes da adição do manipulador. Esta função pode ter o parâmetro commandName, seguido de quantos parâmetros você espera após o seu comando (veja abaixo). Tudo isso é opcional.
Parâmetros da função callback
- Esses são os parâmetros que serão definidos na função quando o comando for executado
string commandName [, string arg1, string arg2, ... ]
- commandName: O nome do comando acionado. Isso é útil se vários comandos acionam uma só função.
- arg1, arg2, ...: Cada palavra após o nome do comando no comando original é passada aqui em uma variável separada. Se não houver valor para um argumento, sua variável conterá nil. Você pode lidar com um número variável de argumentos usando a expressão vararg, conforme mostrado em Exemplo 2 (server-side) abaixo.
Argumentos Opcionais
NOTA: Ao usar argumentos opcionais, pode ser necessário fornecer todos os argumentos anteriores ao que você deseja usar. Para obter mais informações sobre argumentos opcionais, consulte Argumentos Opcionais.
- caseSensitive: Especifica se o manipulador de comando ignorará o caso sensitivo para esse nome de comando. Se true, para executar o comando deve digitá-lo da mesma forma como foi especificado no 1° argumento, se false, independente de maiúsculas ou minúsculas, o comando será executado.
Retornos
Retorna true se o manipulador de comandos foi adicionado com sucesso, false caso contrário.
Exemplos
Exemplo 1: Este exemplo criará um comando chamado createmarker. Isso vai criar um marker vermelho na posição do jogador que o usa.
-- Defina nossa função que será chamada pelo comando function consoleCreateMarker ( playerSource, commandName ) -- Se um jogador quem acionou a função (em vez do administrador) então if ( playerSource ) then -- Obtém a posição do jogador local x, y, z = getElementPosition ( playerSource ) -- Cria um marker vermelho do tipo checkpoint e de tamanho 2 na posição do jogador createMarker ( x, y, z, "checkpoint", 2, 255, 0, 0, 255 ) -- Diga ao jogador sobre o marker outputChatBox ( "Você tem um marker vermelho :D", playerSource ) end end -- Anexe a função 'consoleCreateMarker' ao comando "createmarker" addCommandHandler ( "createmarker", consoleCreateMarker )