hlmod.hu
https://hlmod.hu/

Chat hookolása
https://hlmod.hu/viewtopic.php?f=10&t=3409
Oldal: 1 / 1

Szerző:  kiki [2012.02.12. 11:38 ]
Hozzászólás témája:  Chat hookolása

Hogy lehet lehookolni az üzenet írását, nem úgy akarok hogy register_clcmd meg concmd hanem a függvényben maga, és vissza térni rá egy csettel, lehetséges?


Kód:
  1. return cllient_print(id, print_chat "BlaBlaBla")

Szerző:  Metal [2012.02.12. 16:14 ]
Hozzászólás témája:  Re: Chat hookolása

Üdv


Kód:
register_clcmd("say", "check_say")
register_clcmd("say_team", "check_say")


Ekkor minden say (say_team) parancs kiadásakor meghívódik egy check_say függvémy, amelynek argumentumában lesz maga az üzenet.
Feldolgozod a paranétereket ahogy tetszik, majd kiadhatsz egy módosított sayt is engclient_cmd-vel, vagy eleve leállíthatod a futtatását a cuccnak.


kiki írta:
Hogy lehet lehookolni az üzenet írását, nem úgy akarok hogy register_clcmd meg concmd hanem a függvényben maga, és vissza térni rá egy csettel, lehetséges?


Kód:
  1. return cllient_print(id, print_chat "BlaBlaBla")

Szerző:  kiki [2012.02.13. 10:22 ]
Hozzászólás témája:  Re: Chat hookolása

És ugy kéne ha pl a /admin parancs létezik akkor semmi se történik de ha beírja hogy /valamiasd akkor ki írja ismeretlen parancs, nem akarom beírni egyesével összes parancsot ami a szerveren van épp ezért kérdezem hogyan lehetne hogy magától felismerje! Szóval érted mit mondok?

Szerző:  Metal [2012.02.13. 10:32 ]
Hozzászólás témája:  Re: Chat hookolása

Tehát arra gondolsz, hogy egészítse ki amit beírsz egy paranccsá?
Vagy dobja fel az összes lehetséges parancsot?
Nemhiszem, hogy ez megoldható lenne.
Kérlek, fejtsd ki bővebben.

kiki írta:
És ugy kéne ha pl a /admin parancs létezik akkor semmi se történik de ha beírja hogy /valamiasd akkor ki írja ismeretlen parancs, nem akarom beírni egyesével összes parancsot ami a szerveren van épp ezért kérdezem hogyan lehetne hogy magától felismerje! Szóval érted mit mondok?

Szerző:  kiki [2012.02.13. 10:35 ]
Hozzászólás témája:  Re: Chat hookolása

Na szóval a szerveremen van pl 50parancs ami "/" előjellel kezdődik!
Ha a kliens olyan parancsot ír be ami létezik mint pl. "/shop ; /admin; /top15" akkor semmi sem történik!
De ha a parancs nem létezik pl. "/metal ; /asd " akkor ki írja hogy ismeretlen parancs!

Szerző:  Metal [2012.02.13. 10:49 ]
Hozzászólás témája:  Re: Chat hookolása

Ha a parancs létezik, akkor csinál valamit, de az már más kérdés, mit. (Lehet h semmit)
Ha nincs, akor írja az ismeretlen parancsot. (Azt is akkor, amikor nem saybe írod)

Tehát a konkluzió:
Azt akarod elérni, hogy ha nem létező /<cmd> parancsot ad ki valaki, jelezze h ismeretlen parancs?

Ez szerintem nem megoldható, el is mondom miért:
Minden plugin beállítja magának a parancsokat, de más pluginok parancsaira nem lát rá.
Úgy oldható meg esetleg, hogy mikor kiadunk egy parancsot, az alábbi lépéseket hajtsa végre:
1. Lekéri az elérhető regisztrált parancsok listáját
2. Ellenőrzi, hogy a kiadott parancs létezik-e. Ha létezik, hajtsa végre, ha nem, akkor ne csináljon semmi.

Csak itt vannak a gondok:
- Melyik plugin ellenőrizze le a parancsot?
- Legyen hozzá külön plugin? (Ez lenne a legésszerűbb.)

TFH felismeri a parancsot, sőt, le tudta ellenőrizni, hogy létezik-e vagy sem.
Viszont még mindig ott van a kérdés, hogy hogyan kérjük le a beregelt parancsok listját? Mivel?

Másik gond:
Mi van akkor, ha csak a say van lehookolva, s a hozzárendelt függvényben vizsgáljuk az argumentumokat? Ebbben az esetben nem lekérhető, mit csinál a függvény, ha a "/metal" szó szerepel mint "parancs" a függvényben. (ha lehetne, akkor minden fgv utasításai lekérhetőek lennének!)



kiki írta:
Na szóval a szerveremen van pl 50parancs ami "/" előjellel kezdődik!
Ha a kliens olyan parancsot ír be ami létezik mint pl. "/shop ; /admin; /top15" akkor semmi sem történik!
De ha a parancs nem létezik pl. "/metal ; /asd " akkor ki írja hogy ismeretlen parancs!

Szerző:  kiki [2012.02.13. 10:53 ]
Hozzászólás témája:  Re: Chat hookolása

Akkor jöhet összes parancs eggyesével? Így szerinted jólenne a hookolás:

Kód:
public handle_say(id)  

static 
szSaid16 ]; 
read_argsszSaid charsmaxszSaid ) ); 
parseszSaid szSaid charsmaxszSaid ) ); 

if( 
equaliszSaid "/admin") || equaliszSaid "/menu") || equaliszSaid "/shop") )  //Meg az összeset beírom eggyesével

return 
1


return 
client_print(idprint_chat"Sajnalom nincs ilyen parancs!"

Szerző:  Metal [2012.02.13. 10:58 ]
Hozzászólás témája:  Re: Chat hookolása

Jó, de új pluginnál természetesen ki kell bővíteni.
Azt hittem nem bedrótozott megoldást keresel :)

kiki írta:
Akkor jöhet összes parancs eggyesével? Így szerinted jólenne a hookolás:

Kód:
public handle_say(id)  
{ 
static szSaid
[ 16 ]; 
read_args
( szSaid , charsmax( szSaid ) ); 
parse
( szSaid , szSaid , charsmax( szSaid ) ); 

if( equali( szSaid , "/admin") || equali( szSaid , "/menu") || equali( szSaid , "/shop") )  //Meg az összeset beírom eggyesével
{ 
return 1
; 
} 

return client_print
(id, print_chat, "Sajnalom nincs ilyen parancs!") 
}

Szerző:  CheeseDave [2012.02.18. 03:36 ]
Hozzászólás témája:  Re: Chat hookolása

Bár még nekem sem tiszta hogy miért lehet hasznos ez a plugin, de legalább egy '/' ellenőrzést raknék bele. Másfelől az amx_help is működik valahogy...

Szerző:  Metal [2012.02.18. 11:50 ]
Hozzászólás témája:  Re: Chat hookolása

Tényleg

Jó, azt hittem ez beépített parancs :)

Kód:
get_concmd()


CheeseDave írta:
Bár még nekem sem tiszta hogy miért lehet hasznos ez a plugin, de legalább egy '/' ellenőrzést raknék bele. Másfelől az amx_help is működik valahogy...

Oldal: 1 / 1 Minden időpont UTC+02:00 időzóna szerinti
Powered by phpBB® Forum Software © phpBB Limited
https://www.phpbb.com/