M MY Multiplayer: Wiki
Lado
Tipo

bindKey

Compartilhado

Liga uma tecla a uma função ou a um comando. A função roda quando a tecla é apertada, solta ou os dois.

bool bindKey(player thePlayer, string key, string keyState, function|string handler, any ...)

Parâmetros

NomeTipoDescrição
thePlayerplayerSó no servidor: o jogador dono do bind. No cliente, não passe este argumento.
keystringO nome da tecla, sem diferença entre maiúsculas e minúsculas: a a z, 0 a 9, F1 a F12, mouse1 a mouse5, mouse_wheel_up, mouse_wheel_down, arrow_l, num_0, space, enter, lshift e outras.
keyStatestringQuando disparar: "down" ao apertar, "up" ao soltar ou "both" nos dois.
handlerfunction|stringA função chamada ou o nome do comando a rodar.
...anyCom uma função, argumentos extras passados a ela. Com um comando, um texto com os argumentos do comando.

Retorno

true se criou o bind. false se ele já existia ou se o comando está vazio.

A função recebe (tecla, estado, ...), com o jogador na frente no servidor, e o estado é "down" ou "up". Um comando ligado no cliente roda como se fosse digitado no console; no servidor, roda os handlers de addCommandHandler com o jogador. Um bind do servidor só dispara quando o cliente avisa da tecla, o que não acontece se onClientKey foi cancelado. Os binds de um recurso somem quando ele para, e os de um jogador quando ele sai.

Exemplo

local function toggleEngine(player, key, state)
    local vehicle = getPedOccupiedVehicle(player)
    if vehicle then
        setVehicleEngineState(vehicle, not getVehicleEngineState(vehicle))
    end
end

addEventHandler("onPlayerJoin", root, function()
    bindKey(source, "k", "down", toggleEngine)
end)

Veja também