Pular para o conteúdo

addCommandHandler

Compartilhada Comandos

Registra um comando.

-- servidor
bool addCommandHandler ( string nomeDoComando, function manipulador [, bool restrito = false, bool diferenciaMaiusculas = true ] )
-- cliente
bool addCommandHandler ( string nomeDoComando, function manipulador [, bool diferenciaMaiusculas = true ] )
NomeTipoPadrãoDescrição
nomeDoComandostring—A palavra digitada, sem a barra.
manipuladorfunction—Função a executar.
restritoboolfalseSó no servidor. Armazena a marca de restrição; nesta versão ela não aplica permissão.
diferenciaMaiusculasbooltrueSe false, /CURAR e /curar acionam o mesmo comando.

true se o comando foi registrado. Devolve false quando o nome está vazio, quando manipulador não é uma função, ou quando essa mesma função já está registrada para esse nome.

Registrar um nome que já existe — em qualquer resource daquele lado — segue a configuração allow_multi_command_handlers do servidor (veja server.cfg): 0 recusa com um erro no console de debug e devolve false, 1 (o padrão) permite com um aviso, 2 permite em silêncio. Nomes com mais de 64 caracteres são cortados em 64.

Vários manipuladores podem dividir o mesmo nome de comando: todos são chamados. Dentro de cada resource, eles rodam na ordem de registro; não dependa da ordem entre resources diferentes. Numa linha digitada no F8, o conjunto do cliente roda primeiro e o conjunto do servidor roda depois; cada chamada de API, porém, procura apenas no seu próprio lado.

-- servidor
addCommandHandler("curar", function(source)
if source == false then return end
setElementHealth(source, 100)
outputDebugString(getPlayerName(source) .. " se curou")
end)
-- servidor: aceita /kick, /Kick e /KICK
addCommandHandler("kick", aoExpulsar, false, false)
-- cliente: aceita /hud, /Hud e /HUD
addCommandHandler("hud", alternarHud, false)

Todos os comandos de um resource são removidos quando ele para.