Piorun
Wiek: 32 Na forum: 6712 dni Posty: 1837
Nick w MP: Piorun
Piwa : 516
Triggering
(wywo?ywanie zdarze?)
Wielu z was, zagl?daj?c do wiki, zastanawia?o si? - co zrobi?, by funkcja po jednej stronie mia?a odzwierciedlenie w drugiej np. edytowanie ustawie? pojazdu poprzez okienko GUI. Z pomoc? przychodz? nam funkcje, kt?re mo?emy do tego celu wykorzysta?. Jak? O tym ten tutek - zapraszam.
1. addEvent, addEventHandler
Pierwsz? podstawow? rzecz?, kt?r? nale?y wykona? w naszym zasobie jest dodanie zdarzenia do og?lnej 'tabeli' zdarze?. Zaczynamy od funkcji addEvent
addEvent ( w cudzys ? owie umieszczamy nazw ? zdarzenia - u mnie : "onNewExampleEvent" )
Mamy dodane zdarzenie. Czas teraz podpi?? pod to zdarzenie jak?? przyk?adow? funkcj?. Wykorzystujemy wi?c funkcj? addEventHandler
function myExampleFunction ()
end
addEventHandler ( tutaj w cudzys ? owie umieszczamy nazw ? zdarzenia - u mnie : "onNewExampleEvent" , getRootElement (), myExampleFunction )
Wszystko dzia?a jak nale?y. Teraz czas na najwa?niejsz? cz??? tego tutka.
2. Triggering - triggerClient/ServerEvent
Aby w pe?ni nam uda?o si? po??czy? ze sob? 2 strony zasoby musimy najpierw ustali? po kt?rej stronie piszemy skrypt - je?eli po stronie klienta to u?ywamy funkcji triggerServerEvent , a je?eli po stronie serwera to u?ywamy funkcji triggerClientEvent . Jak to wybra?? Ot?? - musimy ustali? gdzie ma si? nasza funkcja ko?czy? tzn. po kt?rej stronie ma nast?pi? efekt ko?cowy. Ja postanowi?em, ?e b?d? pisa? po stronie klienta, a ??czy? ze stron? serwera.
CLIENT
function myExampleFunction ()
triggerServerEvent ( "onNewExampleEvent" , getRootElement ()) -- do?? czam event dodany po stronie serwera
end
addCommandHandler ( "example" , myExampleFunction ) -- dodaj ? komend ?
SERVER
addEvent ( "onNewExampleEvent" ) -- to mo ? na wklei ? gdziekolwiek .
function showEveryPlayerOutput ()
outputChatBox ( "Test" )
end
addEventHandler ( "onNewExampleEvent" , getRootElement (), showEveryPlayerOutput )
Dzi?ki temu, gdy kto? u?yje komendy "/example" wy?le do ka?dego wiadomo?? "Test". Oczywi?cie to jest tylko przyk?ad - mo?ecie kombinowa? z okienkami gui, z funkcjami directx itp.
2.1 Wywo?ywanie z parametrami.
Ok - je?eli dochodz? parametry jedyn? rzecz? jak? musicie zrobi? to doda? w funkcji triggerClient/ServerEvent po getRootElement te parametry. Czyli:
triggerClient / ServerEvent ( "blablabla" , getRootElement (), parametr1 , parametr2 , ...)
Drug? wa?n? rzecz? o kt?rej nie mo?na zapomnie? jest dodanie tych parametr?w do funkcji, kt?ra jest podpi?ta do naszego zdarzenia. Czyli:
function( parametr1 , parametr2 , ...)
To wszystko w tym tutku. Zapraszam r?wnie? do przeczytania moich pozosta?ych poradnik?w, kt?re mog? wam pom?c w dobrym zrozumieniu Lua .
Zach?cam do dzielenia si? swoimi do?wiadczeniami i zasobami.
Powodzenia w skryptowaniu.
Lista moich poradnik?w:
Pozdrawiam, Piorun .
Ostatnio zmieniony przez Barcioo 2018-05-27, 13:46, w całości zmieniany 1 raz