hlmod.hu
https://hlmod.hu/

Konzol parancs letiltása
https://hlmod.hu/viewtopic.php?f=9&t=5443
Oldal: 1 / 1

Szerző:  VirTuaL ~` [2012.07.27. 17:59 ]
Hozzászólás témája:  Konzol parancs letiltása

Hy,hogyan lehet letiltani egy adott parancsot (konzolba) ,hogy ne fusson le a kód?

Tehát itt van ez példának:
Kód:
  1. register_clcmd( "asdasd", "asd");


Ha valaki beírja konzolba,hogy asdasd akkor return PLUGIN_HANDLED-el állítsa meg a kódot,hogy ne fusson tovább.Lehetséges?

Szerző:  Silent [2012.07.27. 18:00 ]
Hozzászólás témája:  Re: Konzol parancs letiltása

Lehetséges.

Szerző:  Silent [2012.07.27. 18:06 ]
Hozzászólás témája:  Re: Konzol parancs letiltása

Nagyvonalakban.

Kód:
  1. /* Plugin generated by AMXX-Studio */

  2.  

  3. #include <amxmodx>

  4. #include <fakemeta>

  5.  

  6. #define PLUGIN "New Plug-In"

  7. #define VERSION "1.0"

  8. #define AUTHOR "author"

  9.  

  10. new bool:can_use[33];

  11.  

  12. public plugin_init() {

  13.         register_plugin(PLUGIN, VERSION, AUTHOR)

  14.         register_clcmd("asdasd", "asd");

  15.         register_forward(FM_ClientConnect, "fw_Connect");

  16.         register_forward(FM_ClientDisconnect, "fw_Connect");

  17. }

  18.  

  19. public fw_Connect(id)

  20. {

  21.         can_use[id] = false;

  22. }

  23.  

  24.  

  25.  

  26.  

  27.  

  28.  

  29. public asd(id)

  30. {

  31.         if(!can_use[id])

  32.                 return PLUGIN_HANDLED;

  33.        

  34.         //kóóóóód

  35.        

  36.         can_use[id] = false;

  37.         return PLUGIN_HANDLED;

  38. }

  39.  

  40.  

  41. public menuhandler(id)

  42. {

  43.         new switchh

  44.         switch(switchh)

  45.         {

  46.                 case 56:

  47.                 {

  48.                         can_use[id] = true;

  49.                         client_cmd(id, "asdasd");

  50.                 }

  51.         }

  52. }

Szerző:  VirTuaL ~` [2012.07.27. 18:08 ]
Hozzászólás témája:  Re: Konzol parancs letiltása

Így meg tudtam volna én is,hogy handlerbe le true-zom,de ez nekem nem jó megoldás így,mert úgy akarom,hogy manuálisan ne lehessen beírni,de viszont menüből engedélyezze.Csak az a gond,hogy a menü meg a parancs ami lefut 2 külön pluginban van.Egyéb megoldást tud-e valaki?

Szerző:  kiki [2012.07.27. 18:22 ]
Hozzászólás témája:  Re: Konzol parancs letiltása

return 1, ha meg olyan parancs mint pl a status akkor client_cmd("clear") xD

Szerző:  CheeseDave [2012.07.27. 19:03 ]
Hozzászólás témája:  Re: Konzol parancs letiltása

VirTuaL ~` írta:
Így meg tudtam volna én is,hogy handlerbe le true-zom,de ez nekem nem jó megoldás így,mert úgy akarom,hogy manuálisan ne lehessen beírni,de viszont menüből engedélyezze.Csak az a gond,hogy a menü meg a parancs ami lefut 2 külön pluginban van.Egyéb megoldást tud-e valaki?

A menü is csupán végrehajtja a parancsot a játékoson, ezért biztos abba is bele kell nyúlni. Használj valami hosszú értelmetlen parancsnevet, vagy in_menu[userid] = 1-t kell állítgatni csak macerás kicsit.

Szerző:  kiki [2012.07.27. 19:19 ]
Hozzászólás témája:  Re: Konzol parancs letiltása

parancsot developerbe 1 perc alatt megtudja nézni, onantól kezdve meg használja is! Rakd egybe a kér plugint

Szerző:  Silent [2012.07.27. 19:30 ]
Hozzászólás témája:  Re: Konzol parancs letiltása

Dave gondolom valami ilyesmire gondolt, bár még megkell keresni az IN_MENU definícióját :D

Kód:
  1. /* Plugin generated by AMXX-Studio */

  2.  

  3. #include <amxmodx>

  4. #include <fakemeta>

  5.  

  6. #define PLUGIN "New Plug-In"

  7. #define VERSION "1.0"

  8. #define AUTHOR "author"

  9.  

  10. new bool:inmenu[33];

  11.  

  12. public plugin_init() {

  13.         register_plugin(PLUGIN, VERSION, AUTHOR);

  14.         register_clcmd("command", "block_this_shit");

  15.         register_forward(FM_PlayerPostThink, "fw_PlayerPostThink");

  16. }

  17.  

  18.  

  19.  

  20. public fw_PlayerPostThink(id)

  21. {

  22.         if(pev(id, pev_flags) & IN_MENU)

  23.         {

  24.                 inmenu[id] = true;

  25.                 set_task(5.0, "do_false", id);

  26.         }

  27. }

  28.  

  29. public do_false(id)

  30. {

  31.         inmenu[id] = false;

  32. }

  33.  

  34. public block_this_shit(id)

  35. {

  36.         if(inmenu[id])

  37.                 return PLUGIN_CONTINUE;

  38.        

  39.         return PLUGIN_HANDLED;

  40. }

Szerző:  VirTuaL ~` [2012.07.28. 09:28 ]
Hozzászólás témája:  Re: Konzol parancs letiltása

CheeseDave írta:
VirTuaL ~` írta:
Így meg tudtam volna én is,hogy handlerbe le true-zom,de ez nekem nem jó megoldás így,mert úgy akarom,hogy manuálisan ne lehessen beírni,de viszont menüből engedélyezze.Csak az a gond,hogy a menü meg a parancs ami lefut 2 külön pluginban van.Egyéb megoldást tud-e valaki?

A menü is csupán végrehajtja a parancsot a játékoson, ezért biztos abba is bele kell nyúlni. Használj valami hosszú értelmetlen parancsnevet, vagy in_menu[userid] = 1-t kell állítgatni csak macerás kicsit.

Hát a hosszú értelmetlen parancsnév sajnos nem megoldás,mert mikor kiválassza menüből,konzolba megjelenik a parancs,és csak kopyzza,és kész.De ezzel eszembe jutott egy másik megoldási lehetőség,azt nem lehet-e megoldani,hogy ne írja ki konzolba a parancsot?

Szerző:  VirTuaL ~` [2012.07.28. 09:46 ]
Hozzászólás témája:  Re: Konzol parancs letiltása

Mind1 mostmár megoldottam includéval :D (függvénykönyvtárral kiki kedvéért).

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