Skocz do zawartości


Serwis Grand Theft Auto & Multiplayers zasponsoruje serwery dowolnego typu.
Lokalizacja serwera dedykowanego - Gdańsk, Polska.
Więcej informacji na skype - Xenon lub Szybki.


Lua - eventy

Scripting

2 odpowiedzi w tym temacie

#1 RootKiller

    Big Clucker

  • Użytkownicy
  • 119 postów

Napisano 31 październik 2011 - 23:56

Dołączona grafika

Witam. Każdy z was wie że Multi Theft Auto posiada system eventów. Co to są te eventy? Już tłumaczę - są to zdarzenia, które poprzez wywołanie funkcji dodanych za pomocą argumentu addEventHandler z listy w serwerze/kliencie, uruchamiają daną funkcję w skrypcie .lua. Wywołują się, gdy np. jakiś gracz połączy się do serwera itp.

1. Lista Eventów (Zdarzeń).
Listę wszystkich eventów można znaleźć na oficjalnym wiki Multi Thet Auto:
• Eventy Klienta - Client_Scripting_Events
• Eventy Serwera - Server_Scripting_Events

2. Własne Eventy (Zdarzenia).
Proces dodawania własnych eventów jest bardzo prosty i służy do tego funkcja:
addEvent ( string, bool )
string - Jest to nazwa eventu, na przykład "mójEvent".
bool - Czy chcesz aby event mógł zostać wywoływany poprzez funkcje triggerEvent, triggerClientEvent oraz triggerServerEvent.

Poniżej przedstawiam przykład dodania własnego eventu.
addEvent ( "mójWłasnyEvent", true )

3. Dodawanie uchwytów do eventów.
Pierwszą częścią tego punktu jest zapoznanie z funkcją addEventHandler. Co ta funkcja robi? Już mówię! Dodaje funkcje do puli eventów o danej nazwie, a następnie wykonuje ją podczas wywołania.

addEventHandler ( string, element, function )
string - Nazwa eventu, do którego funkcja ma zostać przypisana.
element - Główny element eventu, najczęściej getRootElement ( ) - można go wykorzystać w funkcji za pomocą zmiennej source.
function - Funkcja, która zostaje dodana do danej puli eventów.

Przykład dodawania własnego eventu:
function mojaFunkcja ( )

end
addEvent ( "mójEvent", true )
addEventHandler ( "mójEvent", getRootElement ( ), mojaFunkcja )

Przykład dodawania do puli eventu stworzonego przez team mta lub moduł rozszerzający możliwości serwera:
function gdyGraczSiePolaczy ( )
		outputChatBox ( "Gracz " .. getPlayerName ( source ) .. " dołączył do serwera!", 255, 0, 0 )
end
addEventHandler ( "onPlayerJoin", getRootElement ( ), gdyGraczSiePolaczy )

4. Wywoływanie eventów.
Wywoływanie eventów jest chyba najpotrzebniejszym elementem dla systemu eventów w mta. Do wywołania eventów musisz znać kilka funkcji podanych poniżej:

Wywoływanie eventu lokalnie dla strony (Serwer/klient) side:
triggerEvent ( string, element, [ arguments ] )
string - Nazwa eventu, który chcesz wywołać.
element - Główny element wywoływanego eventu.
arguments (OPCJONALNE) - Opcjonalny argument zawierający nieskończoną ilość argumentów. (Poniżej przykład)

Wywoływanie eventu z klienta do serwera:
triggerServerEvent ( string, element, [ arguments ] )
string - Nazwa eventu, który chcesz wywołać.
element - Główny element wywoływanego eventu.
arguments (OPCJONALNE) - Opcjonalny argument zawierający nieskończoną ilość argumentów. (Poniżej przykład)

Wywoływanie eventu z serwera do klienta:
triggerClientEvent ( [ element ], string, element, [ arguments ] )
element (OPCJONALNE) - Element, dla którego ma zostać wysłany event (klient gry - gracz),
string - Nazwa eventu, który chcesz wywołać.
element - Główny element wywoływanego eventu.
arguments (OPCJONALNE) - Opcjonalny argument zawierający nieskończoną ilość argumentów. (Poniżej przykład)

Przykład:
Serwer:
triggerClientEvent ( "mójEvent", getRootElement ( ) )
Klient:
function mojEvent  ( )
	  outputChatBox ( "Serwer nadsyła event! Który został pomyślnie odebrany!" )
end
addEvent ( "mójEvent", true )
addEventHandler ( "mójEvent", getRootElement ( ), mojEvent )

5. Zakończenie Poradnika.
I to koniec poradnika. Mam nadzieję, że w miarę wytłumaczyłem działanie systemu eventów w Multi Theft Auto. Niebawem więcej tutoriali!

Pozdrawiam!

Użytkownik Arctos edytował ten post 03 listopad 2011 - 04:16


#2 YoMen

    Big Clucker

  • Zarząd
  • 88 postów

Napisano 01 listopad 2011 - 14:07

Bardzo dobry tutorial, dodaję do oficjalnych. Dzięki za pomoc w rozwijaniu GTA&M ;)

Dołączona grafika


#3 RootKiller

    Big Clucker

  • Użytkownicy
  • 119 postów

Napisano 01 listopad 2011 - 19:09

Spoko, nie ma za co ^^.





Użytkownicy przeglądający ten temat: 1

0 użytkowników, 1 gości, 0 anonimowych