Szerző Téma: Includeben lévő függvény hookolása?  (Megtekintve 2250 alkalommal)

Includeben lévő függvény hookolása?
« Dátum: 2017. Augusztus 11. - 19:35:28 »
0 Show voters
Sziasztok!
 
Már elég régóta foglalkoztatnak az Includeok mechanikája és hasonló dolgok, elkezdtem ezen gondolkozni, példa fájlokat írogatni, kisebb nagyobb sikerrel. Azonban, egy kisebb problémába ütköztem.
 
A probléma alapvetően az, hogy amelyik függvény már benne van a játékmódban, azt ha fel akarom használni az Includeban, akkor már hibát ír ki miszerint már definiálva van, jogosan merül fel ez a hibaüzenet.
 
Az esetemben, az OnPlayerConnect függvényt szeretném felhaszálni a módban, és az Includeban is egyaránt. Ugyebár ez alapjáraton nem lehetséges, ezért gondolkoztam, és arra a következtetésre jutottam, hogy lehetséges, hogy Hookolni kellene a függvényt és talán úgy lenne jó, de nem vagyok benne biztos.
 
Nem arra kérlek titeket, hogy a hookolást írjátok le mivel arról van \"Tons of Topic\" a fórumokon, hanem azt, hogy ez lehetne a jó mód, van-e rá jobb megoldás és hasonló dolgok. Illetve, ha hookolni kell akkor mindkettőt vagy csak az egyiket, illetve miért. Minden hasznos dolgot róla.
 
 
 
A válaszokat nagyon szépen köszönöm!

Nem elérhető kos

  • 292
    • Profil megtekintése
Includeben lévő függvény hookolása?
« Válasz #1 Dátum: 2017. Augusztus 11. - 21:22:40 »
0 Show voters
butaság... az include mi is valójában? - az eredeti mód kiegészítője.
 
Ha az OnPlayerConnect függvényt felhasználod, akkor az eredeti módosul (használatban).
 
De mi van akkor, ha ezt és azt is használni akarod?... A válasz egyszerű, egy új függvényt kell létrehoznod, majd beledefiniálni az onplayerconnect függvénybe hogy abban fusson le az eredetiben. Így mind két helyen az onplayerconnect függvényt használod. De persze sok értelmét nem látom gondolatodnak, hogy miért raknád include függvénybe... de m1
 
Remélem egyszerű és érthető magyarázatott adtam. 
« Utoljára szerkesztve: 2017. Augusztus 11. - 21:24:36 írta kos »

Includeben lévő függvény hookolása?
« Válasz #2 Dátum: 2017. Augusztus 11. - 21:34:56 »
0 Show voters
Igazából nemsokat értek az includekhez ezért is akarom megtanulni, hogy azoknál milyen tényezők vannak illetve, mit hogyan kellene.
 
Az includek mellet még a modular scriptinghez is szükséges ez a hook tudás ahol szintén két azonos függvényt kell két különböző helyen elkülniteni, és ott is hasznos lehet, azonban nem tudom, hogyan kellene.
 
Ahhoz, hogy bele definiáljam azt hookolni kell nem?
 
Ez a probléma, hogy nem értek hozzá, és angol fórumon azokra a kérdésekre nem kapok választ sehol amit ténylegesen tudni akarok, ezért gondoltam, hogy itt kérdem meg, de itt meg hülyének fognak nézni, ha elírok 1 betűt is pl. :/

Nem elérhető kos

  • 292
    • Profil megtekintése
Includeben lévő függvény hookolása?
« Válasz #3 Dátum: 2017. Augusztus 11. - 22:27:20 »
0 Show voters
Idézetet írta: Naretev date=1502480096


   
      Igazából nemsokat értek az includekhez ezért is akarom megtanulni, hogy azoknál milyen tényezők vannak illetve, mit hogyan kellene.
   
   
      Az includek mellet még a modular scriptinghez is szükséges ez a hook tudás ahol szintén két azonos függvényt kell két különböző helyen elkülniteni, és ott is hasznos lehet, azonban nem tudom, hogyan kellene.
   
   
      Ahhoz, hogy bele definiáljam azt hookolni kell nem?
   
   
      Ez a probléma, hogy nem értek hozzá, és angol fórumon azokra a kérdésekre nem kapok választ sehol amit ténylegesen tudni akarok, ezért gondoltam, hogy itt kérdem meg, de itt meg hülyének fognak nézni, ha elírok 1 betűt is pl. :/
   


nem fog leszólni senki, mert etéren okosodni akarsz, másrészt a hookolást hagyd békén, az teljesen más tészta, az nem a mostani problémádhoz kell.
 
ajánlom nézd át az új i_zcmd include-t... abban ott van hogy az onplayertext(valami) funkcióját ledefiniálja így ki kell törölni a módból. és az új include álltal megadott fügvényeket kell használni amit. azonban ha az inlcudeban hozod létre az új függvényedet és beágyazod a meglévőbe akkor helyesen fog lefutni.
 
példa van x a módban és x a függvényedben utána y is a függvényben
 
x x használat nem lesz jó
 
x y használat se lesz jó
 
x y(x(praméter)) lesz a jó neked
 
a régi zcmd nem iktatja ki mert definiálja, míg az új i_zcmd módosítja a két include példájából rá kell jönnöd h hogyan csinálhatod, ha a példámból nem is világos számodra.
« Utoljára szerkesztve: 2017. Augusztus 11. - 22:29:43 írta kos »

Includeben lévő függvény hookolása?
« Válasz #4 Dátum: 2017. Augusztus 12. - 08:54:46 »
0 Show voters
Megnéztem amit írtál ki is próbáltam de nem nagyon müködött :/
 
Megpróbálkoztam a hookolással, mivel a gondolat meneteim során a hook jött ki megoldásnak. Ezt a két kódot készítettem, az első az Include-ban lévő hook, a második pedig a GM-ben lévő hook.
 
\"nDCHQp3.png\"
 
\"Oxvjnaq.png\"
 
Nem teszteltem még le, de a compiler hibát nem ír ki, úgyhogy lehetséges, hogy müködik. De viszont erről is szeretnék véleményt kikérni, hogy mi lehet a hibája, vagy valamit rosszul csináltam-e.

Nem elérhető kos

  • 292
    • Profil megtekintése
Includeben lévő függvény hookolása?
« Válasz #5 Dátum: 2017. Augusztus 12. - 11:29:33 »
0 Show voters
Idézetet írta: Naretev date=1502520886


   
      Megnéztem amit írtál ki is próbáltam de nem nagyon müködött :/
   
   
      Megpróbálkoztam a hookolással, mivel a gondolat meneteim során a hook jött ki megoldásnak. Ezt a két kódot készítettem, az első az Include-ban lévő hook, a második pedig a GM-ben lévő hook.
   
   
      \"nDCHQp3.png\"
   
      \"Oxvjnaq.png\"
   
      Nem teszteltem még le, de a compiler hibát nem ír ki, úgyhogy lehetséges, hogy müködik. De viszont erről is szeretnék véleményt kikérni, hogy mi lehet a hibája, vagy valamit rosszul csináltam-e.
   


nem a legjobb megoldás, mert még mindig nem más fügvénnyel dolgozol h beágyazd az onplayerconnect alá hanem konkrétan az onplayerconnectre erőlteted.
 
nagyon egyszerűen :
 
megcsinálsz egy sima alap include-t
 
forward blabla(paraméter);
 
majd a Public OnPlayerConnect hez h mit akarsz, végűl a CallLocalFunction(blabla, paraméterek.... stb
 
nem kell semmi hookolás.
 
ja meg az értékeket ad meg különben mindig meghívódik, és az is eredményezhet nem megfelelő működést.

Includeben lévő függvény hookolása?
« Válasz #6 Dátum: 2017. Augusztus 12. - 11:48:05 »
0 Show voters
De én nem saját függvény akarok forwardolni, hanem azt, hogy az OnPlayerConnect mindkét helyen müködjön, a saját függvénye alatt, úgy hogy ne irjon ki hibát, hogy \"onPlayerConnect already defined\" stb.

Nem elérhető kos

  • 292
    • Profil megtekintése
Includeben lévő függvény hookolása?
« Válasz #7 Dátum: 2017. Augusztus 12. - 11:56:52 »
0 Show voters
Idézetet írta: Naretev date=1502531285


   
      De én nem saját függvény akarok forwardolni, hanem azt, hogy az OnPlayerConnect mindkét helyen müködjön, a saját függvénye alatt, úgy hogy ne irjon ki hibát, hogy \"onPlayerConnect already defined\" stb.
   


látom nem érted.
 
van a pwn. amiben van az onplayerconnect.
 
van az include ami a pwn. onplayerconnectjét használja, ezt azonban úgy teheted meg, ha új függvényt hozol létre (forward segítségével) majd az include-ban az onplayerconnect alá beágyazod a calllocalfuncióval hogy ne legyen ugyan az a nevük. Érted már? Error azért lesz mert két ugyan azon néven nem lehet használni létező függvényt. Ergó ideiglenesen létre hozol egyet amit beágyazol az onplayerconnect alá h azzal működjön.
 
Önmagában nem lehet használni, mert duplikációnak fogja érzékelni. Ez átugorható a hookolással, de azt nem ilyeneknél szokták használni, hanem többszörös ismétlődő ellenőrzéseknél.

Includeben lévő függvény hookolása?
« Válasz #8 Dátum: 2017. Augusztus 12. - 12:45:55 »
0 Show voters
Nagyjából értem talán. De szerintem hagyom ezt az Includes dolgot, viszont mi történik akkor, ha ezt egy másik .pwn-ből akarom használni?
 
mert .pwn fájlokat is be tudom #include-olni. Viszont az már nem .inc-ként fog viselkedni.
 
Ott a hookolás javaslot, ha igen hogyan? Vagy hasonlóképpen, mint ez, habár mivel ott már egyoldalú a téma, ezért nem hiszem, hogy CallLocal function müködne.
 
Valami ötlet?

Nem elérhető kos

  • 292
    • Profil megtekintése
Includeben lévő függvény hookolása?
« Válasz #9 Dátum: 2017. Augusztus 12. - 17:34:50 »
0 Show voters
a pwn tág fogalma a dolgoknak.
 
van a mód a filter és az include alapesetekben.
 
a mód és a filter is pwn. azonban a filter önmagában nem használható.
 
a mód tud használni, filter és include fáljokat
 
a filter tud includét használni
 
de az include nem tud filtert használni, csak mód pwnt.
 
a hookolással természetesen itt már opcionális dolgozni, ha filtert akarsz incluolni és módba definiálni includ meghívással
 
 
 
mikor elindítasz egy módot, külső program használat nélkül, csak egy mód futhat egy időben (pwn)
 
ehhez kapcsolható filter és include
 
az include tartalmazhatja a filter meghívását hogy a módba használd ez a hookolás megoldás lényegében.
 
 
 
meg mondom őszintén, nem tudom mit akarsz kezdeni ezzel a pwn include pwn dologgal ezt játék készítéskor szokták használni, itt a sampban fölös mert csak módolsz nem pedig készíted a játékot.
 
 
 
a válasz pedig mi történik ha include másik pwnből? lehetséges módból és filterből is egyaránt egy másik módba definiálni include által.
 
filtert vagy include beolvasással a módba tudsz, vagy filterscript beolvasással a szerver cfg ben
 
de fölös egy filtert includdal módba illeszteni, meg mondom miért. mert ugyan olyan mintha filterként párosítanád include nélkül..
 
 
 
remélem érthetően írtam, mobilról írtam sry előre is 
 
 
 
ja igen, csak halk megjegyzés  amx amit használ nem pwn. a pwn az a kezelőfelülete a kódolásnak.
 
lényegében a játék és az include is amx et értelmez a pwn az csak a nyers forma mely szerkeszthető.
« Utoljára szerkesztve: 2017. Augusztus 12. - 17:44:23 írta kos »

Includeben lévő függvény hookolása?
« Válasz #10 Dátum: 2017. Augusztus 12. - 18:14:11 »
0 Show voters
Nos, először is köszönöm szépen, hogy ennyi időt fordítasz a segítség nyújtásban.Viszont, az lenne a probléma, hogy nem csak filterscriptet és includet tudsz a módba #include-val belerakni.
 
Akár egy .txt fájl is lehet, a kiterjesztés teljesen mindegy egy bizonyos kritériumok között. Az esetemben ez a .pwn lenne.Leírom, hogy pontosan mit akarok. Mert eddig csak vázlat szerűen ábrázoltam.
 
Van egy fő .pwn fájlom, ez a (main) rész, maga a Gamemode.
 
Illetve egy másik fájlt (szintén .pwn) akarok hozzá csatolni amiben pl. enumokat kezeli, definiciók vannak benne, változók, rendszerek, hasonló dolgok, az én esetemben az adatbázishoz való csatlakozást akarom megoldani.
 
Igen, tudom, hogy ezért fölösleges külön fájl + stb, de így jobban átláthatóbb ha külön fájlban van.
 
\"lcdTkHw.png\"
 
\"wIWf6bK.png\"
 
\"2ayI4tG.png\"
 
Az első képen látható, a (main) játékmód .pwn-je, a második képen, a segédfájl .pwn-je a harmadikon pedig a konzol, miszerint kiolvasta a fájlból az értéket, ergó müködik.
 
De, hogyha belerakom a \"public OnGameModeInit()\" függvényt, akkor már errort ír ki mivel 2 defined függvény van. És ezt szeretném megcsinálni, hogy ne vesszen össze vele, ezért gondoltam, hogy hook kell.
 
Igen, átnevezhetném vagy csinálhatnék új függvényt, de akkor azokat meg kellene jegyezgetni, így meg sokkal egyszerűbb, hogyha ugyanazon a néven, csak hookolva futnak le.
 
Erre valami ötlet?

Nem elérhető gbr333

  • 670
    • Profil megtekintése
Includeben lévő függvény hookolása?
« Válasz #11 Dátum: 2017. Augusztus 12. - 19:29:39 »
+1 Show voters
Nyugodtan használj hook-ot,átláthatóbb lesz tőle a modod.(Ha modulokra akarod szedni.)
 
Ajánlom az y_hooks include-ot.
 
\"1Tf7pzl.png\"
 
\"yPs3iNn.png\"
 
output:
 
\"tcOAfJW.png\"
 
 

Includeben lévő függvény hookolása?
« Válasz #12 Dátum: 2017. Augusztus 12. - 19:57:03 »
0 Show voters
Írtam PM :) Give me answers <3
 
 

Nem elérhető gbr333

  • 670
    • Profil megtekintése
Includeben lévő függvény hookolása?
« Válasz #13 Dátum: 2017. Augusztus 12. - 20:00:59 »
0 Show voters
Nem jött semmi :$

Nem elérhető kos

  • 292
    • Profil megtekintése
Includeben lévő függvény hookolása?
« Válasz #14 Dátum: 2017. Augusztus 13. - 13:46:54 »
0 Show voters
Nm, és persze, hogy tudom, hogy más fáljokat is lehet, csak példa értékkel írtam le az alapokat.
 
mysql esetben a hookolás ideális, mert több helyre mehet vele az adat.. bár ezt külön külön feltöltve honlapra is lehetséges és egyben beolvasni a mysquelt.
 
m1 ízlések és pofonok 
 
viszont attól h az enumokat és a definíciókat külön akarod, fölös, mert attól nem lesz átláthatóbb  (szerintem)
 
am a y_hookolás kicsit régebbi fajta, nem tudom van e új  de ha igen akkor az biztos gyorsabb.
 
ugyan is nagyon fontos a sebessége a külön beolvasó megoldásoknak ez esetben.
 
mellékesen txt. fájlokat nem a legbiztonságosabb használni, mert azok nem titkosítottak.

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal