- Dokumentacja
- Zdarzenia klienta
- onClientKey
Zdarzenie
onClientKey
Gracz wcisnął albo puścił klawisz. Zdarzenie widzi każdy klawisz, także te, których gra używa.
Obsługa
addEventHandler("onClientKey", root, function(key, pressed) ... end)Parametry
keystring- Nazwa klawisza, np.
a,enter,mouse1,F2. pressedbooltrueprzy wciśnięciu,falseprzy puszczeniu.
Źródło
source to root.
Klawisz dociera do skryptu, gdy gra już go dostała, więc cancelEvent() nie zatrzymuje akcji gry (strzału, zmiany broni Q / E / kółkiem, skoku). Do tego służy toggleControl (np. fire, next_weapon, previous_weapon) albo toggleAllControls. cancelEvent() zatrzymuje tylko wsiadanie jako pasażer pod g. Gdy gracz pisze w polu tekstowym (edit lub memo GUI przy kursorze albo przeglądarka z klawiaturą), escape trafia tylko do skryptu i strony, a menu ESC się nie otwiera; drugi ESC w ciągu 0,6 s otwiera menu.
Przykład
Gdy menu jest otwarte, lewy przycisk myszy nie strzela.
local menuOtwarte = false
bindKey("F3", "down", function()
menuOtwarte = not menuOtwarte
showCursor(menuOtwarte)
toggleControl("fire", not menuOtwarte)
end)
addEventHandler("onClientKey", root, function(klawisz, wcisniety)
if menuOtwarte and wcisniety then
outputConsole("Klawisz w menu: " .. klawisz)
end
end)
Uwagi
Jeden klawisz, jedna akcja? Gdy chcesz tylko wywołać funkcję pod klawiszem, prościej użyć bindKey. onClientKey przydaje się, gdy chcesz widzieć wszystkie klawisze.
Zobacz też
triggerServerEventWysyła zdarzenie od gracza do serwera, np. kliknięcie przycisku albo wybór w menu.addEventHandlerPodpina funkcję pod zdarzenie. Tak reagujesz na wejście gracza, śmierć, klawisz, każdą klatkę i własne zdarzenia.toggleControlWłącza albo wyłącza jedno sterowanie gry, np. strzelanie (fire), skok (jump) albo wsiadanie (enter_exit). Wyłączone sterowanie nie reaguje na klawisze gracza. Na serwerze podajesz gracza alboroot.