SerweryWłasny serwerDla twórcówForumFAQDokumentacjaBezpieczeństwo
Pobierz launcher
  1. Dokumentacja
  2. Funkcje wspólne
  3. addEvent

Funkcja

addEvent

Rejestruje własne zdarzenie o podanej nazwie, żeby można było je wywoływać (triggerEvent, triggerClientEvent, triggerServerEvent) i obsługiwać (addEventHandler). Z allowRemoteTrigger = true zdarzenie może przyjść z drugiej strony sieci: na serwerze - od klienta przez triggerServerEvent, na kliencie - od serwera przez triggerClientEvent. Bez tego zdarzenia przychodzące z sieci są odrzucane, co chroni serwer przed podrabianiem zdarzeń przez klientów.

Składnia

bool addEvent(string eventName [, bool allowRemoteTrigger = false, bool isPrivate = false])

Argumenty

eventNamestring
Nazwa zdarzenia (np. "onPlayerBuyCar").
allowRemoteTriggerbool, opcjonalny = false
true = można je wywołać z drugiej strony sieci.
isPrivatebool, opcjonalny = false
true = zdarzenie prywatne: triggerEvent działa tylko z zasobu, który je zarejestrował; wywołanie z innego zasobu zwraca false i wypisuje błąd, a inny zasób nie może zarejestrować go ponownie.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

addEvent(string eventName, bool allowRemoteTrigger = false)

Zwraca

true przy powodzeniu, false, gdy inny zasób próbuje przejąć zdarzenie prywatne.

Przykład

addEvent("onPlayerBuyCar", true)
addEventHandler("onPlayerBuyCar", root, function(model)
    if client ~= source then return end
    if getPlayerMoney(client) < 10000 then return end
    takePlayerMoney(client, 10000)
    local x, y, z = getElementPosition(client)
    createVehicle(model, x + 3, y, z)
end)

Uwagi

W obsłudze zdarzenia wywołanego przez triggerEvent zmienne sourceResource i sourceResourceRoot wskazują zasób, który je wywołał (przy zdarzeniach od gry i od klienta są nil). Prywatność nie blokuje klienta: o nim decyduje allowRemoteTrigger.

Na serwerze zawsze sprawdzaj w obsłudze zdarzenia z sieci zmienną client (gracz, który je wysłał), a nie tylko source, bo klient może podać dowolny element jako źródło.

Zobacz też