GTA Közösség - A magyar GTA fórum

Multi Theft Auto (MTA) => MTA: Szerverfejlesztés => Segítségkérés => A témát indította: 1ST_Chr - 2016. November 03. - 12:30:22

Cím: localPlayer, resourceRoot és egyebek
Írta: 1ST_Chr - 2016. November 03. - 12:30:22
Üdv!
Pár év samp szerver fejlesztés után úgy döntöttem megtanulom az MTA-s dolgokat is.
Elkezdtem egy szervert 0-ról építeni, a lua nyelv maga nem nehéz, viszont ez a szerver és kliens oldali szkriptes resourceos dolgok kikészítenek.
Vannak ezek az előre létrehozott változók pl localPlayer, resourceRoot, source meg ilyenek és nem tudom mikor melyiket kell használni.
Az lenne a lényeg, hogy a kliens csatlakozáskor küld egy triggerServerEvent-et, majd a szerver válaszol csak a játékosnak.
Hát ez nem így történik, a kliens elküldi a dolgokat, majd a szerver válaszol mindenkinek.
 

--Kliens hívás:
triggerServerEvent(\"onPlayerPressButton\",resourceRoot,localPlayer,false,name,pass)--Sikeresen megkapja a kliens, authorizáció megtörténik
--Szerver válasz:
triggerClientEvent (\"onLoginSuccess\", source, true)--Ezt pedig minden kliens megkapja, pedig csak annak kellene aki küldte

 
Jó lenne egy leírás, útmutató lehetőleg magyarul, hogy mikor melyiket kell használni. Köszönöm.
Cím: localPlayer, resourceRoot és egyebek
Írta: AlexSwamp - 2016. November 03. - 12:57:42
Nos akkor megpróbálok én valamennyi támpontot írni, persze vannak azért nálam jóval okosabb és profibb emberek is a fórumon, remélem közülik is fog írni neked valaki azért, mert szinte biztos, hogy még jobban eltudják neked magyarázni majd az egészet. Nos akkor kezdem:


A localPlayer  client oldalon használható, ennek szerveroldali megfelelője a getLocalPlayer() (melyet szintén tudsz clienten használni, ha jól tudom). Source arra vonatkozik, akinél végbemegy a function, tehát, pl ha egy parancsos function-t csináltál, akkor annál fut le, aki beírja a parancsot. A resourceRoot egy OOP deffiniálás, mely a resourcera hat (ha jól tudom, de ezt soha nem használtam még én se). Trigger esetén, ugyebár deffiniálod a function-t amit majd átfogsz küldeni a másik oldalra. Speciel nálad meddig megy el a script azt jó lenne tudni, ilyenkor érdemes debuggolni valamilyen formában, lehet ez outputChatBox-olt szöveg, lehet ez debugscriptbe írt szöveg vagy logba küldöd el, lényeg, hogy megtudd nézni meddig megy el a folyamatod.
Cím: localPlayer, resourceRoot és egyebek
Írta: 1ST_Chr - 2016. November 03. - 14:59:30
Idézetet írta: AlexSwamp date=1478174262\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"63494\" data-ipsquote-contentclass=\"forums_Topic
Nos akkor megpróbálok én valamennyi támpontot írni, persze vannak azért nálam jóval okosabb és profibb emberek is a fórumon, remélem közülik is fog írni neked valaki azért, mert szinte biztos, hogy még jobban eltudják neked magyarázni majd az egészet. Nos akkor kezdem:


A localPlayer  client oldalon használható, ennek szerveroldali megfelelője a getLocalPlayer() (melyet szintén tudsz clienten használni, ha jól tudom). Source arra vonatkozik, akinél végbemegy a function, tehát, pl ha egy parancsos function-t csináltál, akkor annál fut le, aki beírja a parancsot. A resourceRoot egy OOP deffiniálás, mely a resourcera hat (ha jól tudom, de ezt soha nem használtam még én se). Trigger esetén, ugyebár deffiniálod a function-t amit majd átfogsz küldeni a másik oldalra. Speciel nálad meddig megy el a script azt jó lenne tudni, ilyenkor érdemes debuggolni valamilyen formában, lehet ez outputChatBox-olt szöveg, lehet ez debugscriptbe írt szöveg vagy logba küldöd el, lényeg, hogy megtudd nézni meddig megy el a folyamatod.
 
Köszönöm sikerült megoldani. Újraértékeltem a dolgokat. De azért nyitva hagyom 1-2 napig hátha valaki még hozzászól.  :)
Cím: localPlayer, resourceRoot és egyebek
Írta: dugasz1 - 2016. November 03. - 15:12:23
Ha valamit rosszul mondanék elnézést, én eddig így tudtam kérlek akkor javítsatok ki:
Amiket írtál, azok előre definiált változók, melyeket bármely resourceben elérsz. (Persze attól függön kliens,szerver vagy mindkettőn létezik)
Csak Kliens:
 

Kliens és szerver:
 

Van itt még pár
Mindegy melyiket használod localPlayer vagy getLocalPlayer() mindkettő ugyan az.
Azt még ezek mellé tudni kell mi az az element,event,trigger.
Az egész MTA scriptelés esemény irányított. Tehát történik valami te arra írsz valamit mi legyen akkor.
Van pár alap Event(esemény) és te is készíthetsz ha akarsz.
Alap eventek trigger-jét(kiváltását) az MTA kezeli te pedig elkapod őket eventHandlerek-kel (lekezeled őket).
De ha te írsz te váltod ki a triggert is. És itt jönnek be az elementek. triggerek csak elmenteken terjednek eventhandlert is csak elementre tudsz csatolni.
\"Tre.png\"
Ezeknek az elementek pedig ilyene fa szerűen épülnek fel. Mindegyiknek van egy szülője (aki létrehozta) és lehet gyerekük (akit ő hozott létre)
pl.: Ha van egy resourced ami lespawnol egy kocsit akkor a resourced nak a gyereke a kocsi. (Ha törölsz egy element-et törlődnek a gyerekei is. Ezesetben ha leállítod a resourcet törlődik a kocsi)
A triggerek pedig ezen a fán úgy terjednek, hogy ahova a trigger lett attacholva onnan terjed a szülője és a gyerekei felé.
Jelen esetedben, azért kapja meg mindenki az üzenetet mert:
 
bool triggerClientEvent ( [table/element sendTo=getRootElement()], string name, element sourceElement, [arguments...] )

 
Az első argument egy opcionális argument amit ha nem adsz meg akkor a root elementre triggerelsz, így a trigger leterjed minden playerre.
Nem tudom mennyire tudtam elmagyarázni videóban könyebb lenne, mint írva :D
Edit: Mindig akkora komentelek mikor már megvan a megoldás :D
Cím: localPlayer, resourceRoot és egyebek
Írta: AlexSwamp - 2016. November 03. - 15:23:29
Dugasz1 ezt iszonyat jól összeszedted viszont jár érte a pacsi!  :thumbsup:
Cím: localPlayer, resourceRoot és egyebek
Írta: 1ST_Chr - 2016. November 03. - 15:43:26
Gyönyörű magyarázat köszönöm ezt is :) Tényleg jó lett, nyithatnál neki külön témát leírásokhoz.
Cím: localPlayer, resourceRoot és egyebek
Írta: dugasz1 - 2016. November 03. - 16:01:08
Köszönöm :D
Szerintetek lenne ilyenre igény? Vagy akár videó formájában?
Cím: localPlayer, resourceRoot és egyebek
Írta: 1ST_Chr - 2016. November 03. - 16:41:22
Idézetet írta: dugasz1 date=1478185268\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"63494\" data-ipsquote-contentclass=\"forums_Topic
Köszönöm :D
Szerintetek lenne ilyenre igény? Vagy akár videó formájában?
 
Nekem szükségem lenne ilyenekre. Jó kis szájbarágós képes tutorialok. :D Amúgy videónak is örülnék :D
Cím: localPlayer, resourceRoot és egyebek
Írta: BlackSy - 2016. November 03. - 17:55:48
Dugasz1, igény az biztosan lenne rá, engem érdekelne.
Cím: localPlayer, resourceRoot és egyebek
Írta: thegergo02 - 2016. November 03. - 18:01:18
Engem is :D