- Dokumentacja
- Funkcje serwera
- triggerClientEvent
Funkcja
triggerClientEvent
SerwerZdarzeniaJak w MTA:SA
Wysyła zdarzenie z serwera do jednego gracza, kilku graczy albo wszystkich naraz.
Składnia
bool triggerClientEvent([table|player cele,] string nazwa, element zrodlo [, ...])Argumenty
celeplayer albo table, opcjonalny- Gracz albo tabela graczy. Gdy go pominiesz albo podasz
root, zdarzenie trafi do wszystkich. nazwastring- Nazwa zdarzenia. Klient musi je zarejestrować przez
addEvent(nazwa, true). zrodloelement- Element, który u klienta będzie widoczny jako
source. ...dowolne, opcjonalny- Argumenty dla funkcji obsługi: liczby, napisy, tabele i elementy.
Zwraca
true, gdy zdarzenie zostało wysłane.
Przykład
Serwer pokazuje graczowi komunikat na środku ekranu. Rysowaniem zajmuje się klient.
function pokazKomunikat(gracz, tekst)
triggerClientEvent(gracz, "pokazKomunikat", resourceRoot, tekst)
end
addCommandHandler("witaj", function(gracz)
pokazKomunikat(gracz, "Witaj w Los Santos!")
end)
addEvent("pokazKomunikat", true)
local tekst, doKiedy = nil, 0
local sw, sh = guiGetScreenSize()
addEventHandler("pokazKomunikat", resourceRoot, function(t)
tekst, doKiedy = t, getTickCount() + 4000
end)
addEventHandler("onClientRender", root, function()
if tekst and getTickCount() < doKiedy then
dxDrawText(tekst, 0, 0, sw, sh * 0.4, tocolor(255, 255, 255), 2, "pricedown", "center", "bottom")
end
end)
Uwagi
Tak jak w MTA. Działa też skrócony zapis bez celów: triggerClientEvent("nazwa", zrodlo, ...) wysyła do wszystkich graczy.
Wysyłaj tylko to, co potrzebne. Każde wywołanie idzie przez sieć. Zamiast wysyłać to samo co klatkę, wyślij raz i pozwól klientowi rysować.