Szerző Téma: Mi a különbség addEventHandler....  (Megtekintve 2513 alkalommal)

Mi a különbség addEventHandler....
« Dátum: 2016. szeptember 12. - 10:02:47 »
0 Show voters
Mi a különbség a kettő között?!
Melyiket célszerűbb használni?!
1.
 
function replaceModel()
    dff = engineLoadDFF(\"files/wheel_lr1.dff\", 1077)
    engineReplaceModel(dff, 1077)
end
addEventHandler ( \"onClientResourceStart\", getResourceRootElement(getThisResource()), replaceModel)

 
2.
 
addEventHandler(\"onClientResourceStart\", resourceRoot, function()
    dff = engineLoadDFF(\"files/wheel_lr1.dff\", 1077)
    engineReplaceModel(dff, 1077)
end)

Mi a különbség addEventHandler....
« Válasz #1 Dátum: 2016. szeptember 12. - 10:31:43 »
0 Show voters
Az elsőt tudod később remove-olni. (mármint nekem ennyi haszna van, de lehet van más is.)

Nem elérhető Legend

  • Adminisztrátor
  • 1830
    • Profil megtekintése
Mi a különbség addEventHandler....
« Válasz #2 Dátum: 2016. szeptember 12. - 12:54:55 »
+1 Show voters
Idézetet írta: impreZZa date=1473669103\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"63031\" data-ipsquote-contentclass=\"forums_Topic
Az elsőt tudod később remove-olni. (mármint nekem ennyi haszna van, de lehet van más is.)
 
Vagy meg lehet hívni máshol.

Nem elérhető id100

  • 903
    • Profil megtekintése
Mi a különbség addEventHandler....
« Válasz #3 Dátum: 2016. szeptember 12. - 17:14:24 »
0 Show voters
Egyébként azzal mi a gond ha simán a scriptbe írod és nem resource starta?  >:D
Eddig működött, bár énis eventhandlerrel használom.

Mi a különbség addEventHandler....
« Válasz #4 Dátum: 2016. szeptember 12. - 19:16:26 »
0 Show voters
Az elsőt később is megtudod hívni, a második meg csak script startkor fut le egyszer és kész.
 
Egyébként azzal mi a gond ha simán a scriptbe írod és nem resource starta?  >:D[/quote]
Ha simán scriptbe írod, simán lefut, és nem tudod majd újra meghívni.
Robika1

Mi a különbség addEventHandler....
« Válasz #5 Dátum: 2016. szeptember 13. - 15:26:24 »
0 Show voters
Nem csak eventhandlernél lehet ilyen formával megadni a dolgokat, hanem commandhandlernél is igazából ez csak olyan névtelen funkciót csinál.(bevallom én sokszor szoktam csinálni commandoknál :D, és ritkán eventeknél pl(onClientRender,onClientKey...etc))

Dupla hozzászólás automatikusan összefûzve. ( 2016. szeptember 13. - 15:30:07 )

Idézetet írta: Legend date=1473677695\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"63031\" data-ipsquote-contentclass=\"forums_Topic


Az elsőt tudod később remove-olni. (mármint nekem ennyi haszna van, de lehet van más is.)
 
Vagy meg lehet hívni máshol.
 
[/quote]
Meghívni máshol csak is a script keretein belül.
Gondolom hogy tudod csak mondom leírom hogy tudja a gyerek is. :)
Egy szóval nem tudod másik resourceben meghívni az eventet kivéve ha nem triggerEventezel(ezt nem használtam még, de hallotam/láttam hogy lehet elvileg.)
« Utoljára szerkesztve: 2016. szeptember 13. - 15:30:07 írta golyoka1 »

Mi a különbség addEventHandler....
« Válasz #6 Dátum: 2016. szeptember 13. - 18:23:32 »
0 Show voters
Idézetet írta: Lorain date=1473667367\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"63031\" data-ipsquote-contentclass=\"forums_Topic
Mi a különbség a kettő között?!
Melyiket célszerűbb használni?!
1.
 
function replaceModel()
    dff = engineLoadDFF(\"files/wheel_lr1.dff\", 1077)
    engineReplaceModel(dff, 1077)
end
addEventHandler ( \"onClientResourceStart\", getResourceRootElement(getThisResource()), replaceModel)

 
2.
 
addEventHandler(\"onClientResourceStart\", resourceRoot, function()
    dff = engineLoadDFF(\"files/wheel_lr1.dff\", 1077)
    engineReplaceModel(dff, 1077)
end)

 

Elsőt használd mindig. Jog adásnak a getresourcerootelementet használd mindig. Mondhatjuk felesleges baromságnak a második lehetőséget.

Nem elérhető DrAkE

  • 2078
    • Profil megtekintése
Mi a különbség addEventHandler....
« Válasz #7 Dátum: 2016. szeptember 13. - 21:39:23 »
+2 Show voters
Idézetet írta: Xistance date=1473783812\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"63031\" data-ipsquote-contentclass=\"forums_Topic


Mi a különbség a kettő között?!
Melyiket célszerűbb használni?!
1.
 
function replaceModel()
    dff = engineLoadDFF(\"files/wheel_lr1.dff\", 1077)
    engineReplaceModel(dff, 1077)
end
addEventHandler ( \"onClientResourceStart\", getResourceRootElement(getThisResource()), replaceModel)

 
2.
 
addEventHandler(\"onClientResourceStart\", resourceRoot, function()
    dff = engineLoadDFF(\"files/wheel_lr1.dff\", 1077)
    engineReplaceModel(dff, 1077)
end)

 

Elsőt használd mindig. Jog adásnak a getresourcerootelementet használd mindig. Mondhatjuk felesleges baromságnak a második lehetőséget.
 
[/quote]
Tévedsz.
Az elsőt akkor ajánlatos használni, ha:
- jobban átakarod látni a scriptet
- későbbiek folyamán törölni akarod az eventhez tartozó funkciót.
- esetleg más eventhez is hozzáakarod kötni a funkciót.
A második lehetőség pedig nem baromság, hanem lambda funkciónak nevezik (C++-ban is most vezették be). Praktikusnak mondhatóak hiszen nem kell külön funkciót létrehozni.
getResourceRootElement helyett pedig használhatod az MTA által előre definiált resourceRoot változó értékét, hiszen ez ugyan úgy megegyezik az előbb említett funkcióval (ezt minden egyes resourcnál létrehozza).
Lásd: https://github.com/multitheftauto/mtasa-blue/blob/c0cc8f76b6806ee1279e77727cc440371dc63d07/Client/mods/deathmatch/logic/lua/CLuaMain.cpp#L169

Mi a különbség addEventHandler....
« Válasz #8 Dátum: 2016. szeptember 13. - 22:39:35 »
0 Show voters
Idézetet írta: DrAkE date=1473795563\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"63031\" data-ipsquote-contentclass=\"forums_Topic


 

Mi a különbség a kettő között?!
Melyiket célszerűbb használni?!
1.
 
function replaceModel()
    dff = engineLoadDFF(\"files/wheel_lr1.dff\", 1077)
    engineReplaceModel(dff, 1077)
end
addEventHandler ( \"onClientResourceStart\", getResourceRootElement(getThisResource()), replaceModel)

 
2.
 
addEventHandler(\"onClientResourceStart\", resourceRoot, function()
    dff = engineLoadDFF(\"files/wheel_lr1.dff\", 1077)
    engineReplaceModel(dff, 1077)
end)

 

Elsőt használd mindig. Jog adásnak a getresourcerootelementet használd mindig. Mondhatjuk felesleges baromságnak a második lehetőséget.
 
[/quote]
Tévedsz.
Az elsőt akkor ajánlatos használni, ha:
- jobban átakarod látni a scriptet
- későbbiek folyamán törölni akarod az eventhez tartozó funkciót.
- esetleg más eventhez is hozzáakarod kötni a funkciót.
A második lehetőség pedig nem baromság, hanem lambda funkciónak nevezik (C++-ban is most vezették be). Praktikusnak mondhatóak hiszen nem kell külön funkciót létrehozni.
getResourceRootElement helyett pedig használhatod az MTA által előre definiált resourceRoot változó értékét, hiszen ez ugyan úgy megegyezik az előbb említett funkcióval (ezt minden egyes resourcnál létrehozza).
Lásd: https://github.com/multitheftauto/mtasa-blue/blob/c0cc8f76b6806ee1279e77727cc440371dc63d07/Client/mods/deathmatch/logic/lua/CLuaMain.cpp#L169
 
[/quote]
A kezelőben létrehozott (2.eset) funkció nem külön funkció? De, tehát hülyeség az elv :)
Nem kell mindenképpen megmagyarázni, hogy nem nekem van igazam, mert a végén te jöhetsz ki rosszul :)

Mi a különbség addEventHandler....
« Válasz #9 Dátum: 2016. szeptember 13. - 23:00:25 »
+2 Show voters
Spoiler for OFF:
A kezelőben létrehozott (2.eset) funkció nem külön funkció? De, tehát hülyeség az elv :)
Nem kell mindenképpen megmagyarázni, hogy nem nekem van igazam, mert a végén te jöhetsz ki rosszul :)
[/quote]
Nem igen ismertelek, de már megvan rólad az első benyomáson a fórum kommenteid illetve a többiek véleményéből adódóan, levontam a következtetést. Nem rossz hogy téged mindenki utál és te nem teszel ellene ? Mindenkinek beszólogatsz, kijavítod a nálad tapasztaltabb embereket. Wanna be scripter.
Valószínűleg Drake-nek van igaza. (Nem vagyok MTA-s.)
 :angel:

Nem elérhető AnthonyGates

  • 546
  • AnthonyGates
    • Profil megtekintése
Mi a különbség addEventHandler....
« Válasz #10 Dátum: 2016. szeptember 13. - 23:08:40 »
+1 Show voters
Gáz, hogy amint nem ért néhány szót, egyből elkezdi szapulni a másikat a nagy hozzáértő.
Ugyan ez az eset, az \"OOP\" és a \"Procedurális\" módszereknél más nyelvekben. Szokj hozzá, többféle képpen meg lehet oldani problémákat.
Egyik sem rosszabb, mint a másik, mindkettőnek vannak előnyei, és hátrányai. Ezeket már leírták fenn. Ne próbálj okosabbnak tűnni, mint ami vagy.
PRO TIP: nézzél már utána a \"public\", \"private\" vagy a \"globális\", illetve \"lokális\" szavak jelentésnek, főleg a programnyelvekben. A szintjénél nem jut feljebb egy eseményhez csatolt funkció, ám ha az eseményen kívül hozod létre, akkor máskor is ott lesz.
Pszeudo:
1.
funkció létrehozás
esemény trigger
paraméter lekérdezése
funkció meghívása, paraméter átadása
funkció lefut, visszaad egy értéket
esemény vége
2.
Esemény trigger
paraméter lekérése
Funkció létrehozás, paraméter átadása
funkció lefut, visszaad egy értéket
funkció \"törlődik\".
Esemény vége.
« Utoljára szerkesztve: 2016. szeptember 13. - 23:12:28 írta Csiiiga »

Nem elérhető DrAkE

  • 2078
    • Profil megtekintése
Mi a különbség addEventHandler....
« Válasz #11 Dátum: 2016. szeptember 13. - 23:11:00 »
+2 Show voters
Idézetet írta: Xistance date=1473799175\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"63031\" data-ipsquote-contentclass=\"forums_Topic


 

 

Mi a különbség a kettő között?!
Melyiket célszerűbb használni?!
1.
 
function replaceModel()
    dff = engineLoadDFF(\"files/wheel_lr1.dff\", 1077)
    engineReplaceModel(dff, 1077)
end
addEventHandler ( \"onClientResourceStart\", getResourceRootElement(getThisResource()), replaceModel)

 
2.
 
addEventHandler(\"onClientResourceStart\", resourceRoot, function()
    dff = engineLoadDFF(\"files/wheel_lr1.dff\", 1077)
    engineReplaceModel(dff, 1077)
end)

 

Elsőt használd mindig. Jog adásnak a getresourcerootelementet használd mindig. Mondhatjuk felesleges baromságnak a második lehetőséget.
 
[/quote]
Tévedsz.
Az elsőt akkor ajánlatos használni, ha:
- jobban átakarod látni a scriptet
- későbbiek folyamán törölni akarod az eventhez tartozó funkciót.
- esetleg más eventhez is hozzáakarod kötni a funkciót.
A második lehetőség pedig nem baromság, hanem lambda funkciónak nevezik (C++-ban is most vezették be). Praktikusnak mondhatóak hiszen nem kell külön funkciót létrehozni.
getResourceRootElement helyett pedig használhatod az MTA által előre definiált resourceRoot változó értékét, hiszen ez ugyan úgy megegyezik az előbb említett funkcióval (ezt minden egyes resourcnál létrehozza).
Lásd: https://github.com/multitheftauto/mtasa-blue/blob/c0cc8f76b6806ee1279e77727cc440371dc63d07/Client/mods/deathmatch/logic/lua/CLuaMain.cpp#L169
 
[/quote]
A kezelőben létrehozott (2.eset) funkció nem külön funkció? De, tehát hülyeség az elv :)
Nem kell mindenképpen megmagyarázni, hogy nem nekem van igazam, mert a végén te jöhetsz ki rosszul :)
 
[/quote]
Mivel a nevében benne van, hogy lambda funkció (Luaban anonymous funkció), ezért funkciónak számít annyi különbséggel, hogy a funkciónak a memória címét nem tudod lekérni (ezért máris nem tudod meghívni a blokkon kívül egy másik helyen), ellenben az elnevezett funkciókkal. :) Illetve mikor elnevezett funkciókról beszélünk, azok igazság szerint csak egy változók, amik memória címet tárolnak el az adott funkcióhoz :)
És logikai alapodból kiindulva az elnevezett funkciók meg csak sima változók és nem funkciók :D
Ahhoz meg, hogy ki jött ki szarabbul nem mondanék semmit :D
« Utoljára szerkesztve: 2016. szeptember 13. - 23:14:56 írta DrAkE »

Nem elérhető Xenius

  • 668
    • Profil megtekintése
Mi a különbség addEventHandler....
« Válasz #12 Dátum: 2016. szeptember 14. - 19:18:36 »
+1 Show voters
Xistance[/member]
resourceRoot = getResourceRootElement(getThisResoure())
ez egy előre definiált változó, olvass utána.
Amúgy nincs szinte semmi különbség, az elsőt viszont meg tudod hívni akár máshol is, míg a másodikat nem.

Dupla hozzászólás automatikusan összefûzve. ( 2016. szeptember 14. - 19:23:39 )

\"child_rockinghorse.gif\"
Amúgy itt leírtam:
https://sampforum.hu/index.php?topic=60678.0
« Utoljára szerkesztve: 2016. szeptember 14. - 19:23:39 írta Xenius »

Mi a különbség addEventHandler....
« Válasz #13 Dátum: 2016. szeptember 15. - 09:54:15 »
+1 Show voters
Nem tudom mit vártok eleve egy olyan embertől, aki csak szavakkal dobálózik és közben azt se tudja mit jelent. Facebook csoportok nagy részéből kirakták már, nem véletlen. :D Mellesleg vicces, mikor elkezdi, hogy optimalizál meg ilyesmi, aztán közben nála ez annyit jelent, hogy dxDrawRectangle minden, holott ez közel sem optimalizálás.... :D
 
\"9a8314b80d654f579e5a76239fe2fd23.png\"

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal