Zaloguj się by uzyskać pełen dostęp. Nie masz jeszcze konta? Założ je już teraz w kilka sekund.

Wysłany: 2011-07-10, 03:21


Piorun







Wiek: 32
Na forum: 6712 dni
Posty: 1837
Nick w MP: Piorun

Piwa: 516

Respekt: 480,7
Respekt: 480,7

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 nazwzdarzenia 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 nazwzdarzenia 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) -- dodajkomend?


SERVER
addEvent("onNewExampleEvent") -- to mo?na wkleigdziekolwiek.

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(), parametr1parametr2, ...)

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(parametr1parametr2, ...)


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 :D .
Zach?cam do dzielenia si? swoimi do?wiadczeniami i zasobami.
Powodzenia w skryptowaniu.

Lista moich poradnik?w:

Pozdrawiam, Piorun :eye: .

Podpis
Możesz mnie znaleźć na: Facebook
Ostatnio zmieniony przez Barcioo 2018-05-27, 13:46, w całości zmieniany 1 raz  
Postaw piwo autorowi tego posta
 

 
Więcej szczegółów
Wystawiono 1 piw(a):
piotr71228
Tagi: [tut]łączenie :: eventów :: między :: stronami
Anonymous





Na forum: 245 dni
Posty: 1



Anonymous Koniecznie zajrzyj na:






Skocz do:  
Wyświetl posty z ostatnich:   
GTAONLINE.PL » JĘZYKI PROGRAMOWANIA » LUA » Poradniki do LUA » [TUT]Łączenie eventów między stronami Ten temat jest zablokowany bez możliwości zmiany postów lub pisania odpowiedzi

Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Dodaj temat do Ulubionych
Wersja do druku