- Dokumentacja
- Funkcje wspólne
- addCommandHandler
Funkcja
addCommandHandler
Rejestruje komendę czatu i konsoli (np. /auto). Gdy gracz ją wpisze, wywoływana jest funkcja. Na serwerze funkcja dostaje gracza, nazwę komendy i kolejne słowa jako osobne argumenty; u klienta nazwę komendy i słowa. Ta sama komenda może mieć kilka funkcji, także z różnych zasobów. Komenda znika razem z zasobem, który ją dodał.
Składnia
Serwer
bool addCommandHandler(string commandName, function handler [, bool restricted = false, bool caseSensitive = false])Klient
bool addCommandHandler(string commandName, function handler)Argumenty
commandNamestring- Nazwa komendy bez ukośnika.Nie ma go w MTA:SA
handlerfunction- Serwer:
function(player, commandName, ...), klient:function(commandName, ...).Nie ma go w MTA:SA restrictedbool, opcjonalny = false- Przyjmowany dla zgodności ze starszymi skryptami. Uprawnienia sprawdzaj w funkcji, np. przez
hasObjectPermissionTo.Nie ma go w MTA:SA caseSensitivebool, opcjonalny = falsetrue=/Autoi/autoto różne komendy (tylko serwer).Nie ma go w MTA:SA
Różnice względem MTA:SA
- Argumenty zaznaczone innym kolorem różnią się od MTA:SA.
W MTA:SA
addCommandHandler()Zwraca
true, gdy komenda została dodana.
Przykład
Komenda /hp 50 ustawia zdrowie gracza; liczba przychodzi jako tekst.
addCommandHandler("hp", function(player, command, value)
local hp = tonumber(value)
if not hp then
outputChatBox("Użycie: /" .. command .. " <0-100>", player, 255, 80, 80)
return
end
setElementHealth(player, math.max(0, math.min(100, hp)))
end)
Zobacz też
removeCommandHandlerUsuwa komendę dodaną przezaddCommandHandler. Z funkcją usuwa tylko tę jedną obsługę, bez funkcji wszystkie obsługi tej komendy.executeCommandHandlerUruchamia komendę zarejestrowaną przezaddCommandHandlertak, jakby ją wpisał gracz. Na serwerze podajesz gracza (albonil) i argumenty: jeden napis jest dzielony na słowa jak w czacie. U klienta wywołuje komendy klienta.getCommandHandlersZwraca nazwy komend zarejestrowanych przez zasób, a bez argumentu przez wszystkie zasoby.bindKeyPodpina funkcję albo komendę pod klawisz gracza. Funkcja dostaje (na serwerze także gracza) nazwę klawisza, stan i dodatkowe argumenty zbindKey. Zamiast funkcji możesz podać nazwę komendy: klawisz wykona ją jak/komenda. Na serwerze klawisz obserwuje gra gracza i zgłasza wciśnięcie serwerowi.