hlmod.hu
https://hlmod.hu/

Death Match: Pisztoly menü
https://hlmod.hu/viewtopic.php?f=29&t=5409
Oldal: 1 / 1

Szerző:  Bence98007 [2012.07.25. 11:21 ]
Hozzászólás témája:  Death Match: Pisztoly menü

Helló!!!

Szeretnék egy olyan plugint kérni, hogy olyan legyen mint a DM-ben a fegyvermenü, csak a második oldal ne legyen, mert az első oldalon lehet választani a menüből 3 dolgot: 1.új fegyó, 2.előző fegyó, 3.előzőfegyó+nemutasa többet. A 2. oldalon a fegyverek közül lehet választani, és az NEM KELL!!
Ez az oldal kéne, meg az utolsó, a pisztolyok közötti választás. Ha valaki meg tudja csinálni, akkor nagyon köszönöm!

DM Módhoz SMA:
Kód:
  1.  

  2. #include <amxmodx>

  3. #include <amxmisc>

  4. #include <cstrike>

  5. #include <csdm>

  6.  

  7. new D_PLUGIN[]  = "CSDM Main"

  8. new D_ACCESS    = ADMIN_MAP

  9.  

  10. #define CSDM_OPTIONS_TOTAL              2

  11.  

  12. new bool:g_StripWeapons = true

  13. new bool:g_RemoveBomb = true

  14. new g_StayTime

  15. new g_drop_fwd

  16. new g_options[CSDM_OPTIONS_TOTAL]

  17.  

  18. //new g_MenuPages[33]

  19. new g_MainMenu = -1

  20.  

  21. public plugin_natives()

  22. {

  23.         register_native("csdm_main_menu", "native_main_menu")

  24.         register_native("csdm_set_mainoption", "__csdm_allow_option")

  25.         register_native("csdm_fwd_drop", "__csdm_fwd_drop")

  26.         register_library("csdm_main")

  27. }

  28.  

  29. public native_main_menu(id, num)

  30. {

  31.         return g_MainMenu

  32. }

  33.  

  34. public __csdm_allow_option(id, num)

  35. {

  36.         new option = get_param(1)

  37.  

  38.         if (option <= 0 || option >= CSDM_OPTIONS_TOTAL)

  39.         {

  40.                 log_error(AMX_ERR_NATIVE, "Invalid option number: %d", option)

  41.                 return 0

  42.         }

  43.  

  44.         g_options[option] = get_param(2)

  45.  

  46.         return 1

  47. }

  48.  

  49. public __csdm_fwd_drop(id, num)

  50. {

  51.         new id = get_param(1)

  52.         new wp = get_param(2)

  53.         new name[32]

  54.  

  55.         get_string(3, name, 31)

  56.  

  57.         return run_drop(id, wp, name)  

  58. }

  59.  

  60. public csdm_Init(const version[])

  61. {

  62.         if (version[0] == 0)

  63.         {

  64.                 set_fail_state("CSDM failed to load.")

  65.                 return

  66.         }

  67. }

  68.  

  69. public csdm_CfgInit()

  70. {      

  71.         csdm_reg_cfg("settings", "read_cfg")

  72. }

  73.  

  74. public plugin_init()

  75. {

  76.         register_plugin(D_PLUGIN, CSDM_VERSION, "CSDM Team")

  77.  

  78.         register_clcmd("say respawn", "say_respawn")

  79.         register_clcmd("say /respawn", "say_respawn")

  80.  

  81.         register_concmd("csdm_enable", "csdm_enable", D_ACCESS, "Enables CSDM")

  82.         register_concmd("csdm_disable", "csdm_disable", D_ACCESS, "Disables CSDM")

  83.         register_concmd("csdm_ctrl", "csdm_ctrl", D_ACCESS, "")

  84.         register_concmd("csdm_reload", "csdm_reload", D_ACCESS, "Reloads CSDM Config")

  85.         register_clcmd("csdm_menu", "csdm_menu", ADMIN_MENU, "CSDM Menu")

  86.         register_clcmd("drop", "hook_drop")

  87.  

  88.         register_concmd("csdm_cache", "cacheInfo", ADMIN_MAP, "Shows cache information")

  89.  

  90.         AddMenuItem("CSDM Menu", "csdm_menu", D_ACCESS, D_PLUGIN)

  91.         g_MainMenu = menu_create("CSDM Menu", "use_csdm_menu")

  92.  

  93.         new callback = menu_makecallback("hook_item_display")

  94.         menu_additem(g_MainMenu, "DM Be/DM Ki", "csdm_ctrl", D_ACCESS, callback)

  95.         menu_additem(g_MainMenu, "DM config ujratoltese", "csdm_reload", D_ACCESS)

  96.  

  97.         g_drop_fwd = CreateMultiForward("csdm_HandleDrop", ET_CONTINUE, FP_CELL, FP_CELL, FP_CELL)

  98. }

  99.  

  100. public cacheInfo(id, level, cid)

  101. {

  102.         if (!cmd_access(id, level, cid, 1))

  103.                 return PLUGIN_HANDLED

  104.  

  105.         new ar[6]

  106.         csdm_cache(ar)

  107.  

  108.         console_print(id, "[CSDM] Free tasks: respawn=%d, findweapon=%d", ar[0], ar[5])

  109.         console_print(id, "[CSDM] Weapon removal cache: %d total, %d live", ar[4], ar[3])

  110.         console_print(id, "[CSDM] Live tasks: %d (%d free)", ar[2], ar[1])

  111.  

  112.         return PLUGIN_HANDLED

  113. }

  114.  

  115. public hook_drop(id)

  116. {

  117.         if (!csdm_active())

  118.         {

  119.                 return

  120.         }

  121.  

  122.         if (!is_user_connected(id))

  123.         {

  124.                 return

  125.         }

  126.  

  127.         new wp, c, a, name[24]

  128.         if (cs_get_user_shield(id))

  129.         {

  130.                 //entirely different...

  131.                 wp = -1

  132.                 copy(name, 23, "weapon_shield")

  133.         } else {

  134.                 if (read_argc() <= 1)

  135.                 {

  136.                         wp = get_user_weapon(id, c, a)

  137.                 } else {

  138.                         read_argv(1, name, 23)

  139.                         wp = getWepId(name)

  140.                 }

  141.         }

  142.  

  143.         run_drop(id, wp, name)

  144. }

  145.  

  146. run_drop(id, wp, const name[])

  147. {

  148.         new ret

  149.         ExecuteForward(g_drop_fwd, ret, id, wp, 0)

  150.  

  151.         if (ret == CSDM_DROP_REMOVE)

  152.         {

  153.                 new _name[24]

  154.                 if (name[0] == 0)

  155.                 {

  156.                         get_weaponname(wp, _name, 23)

  157.                 }

  158.                 csdm_remove_weapon(id, _name, 0, 1)

  159.                 return 1

  160.         } else if (ret == CSDM_DROP_IGNORE) {

  161.                 return 0

  162.         }

  163.  

  164.         if (g_StayTime > 20 || g_StayTime < 0)

  165.         {

  166.                 return 0

  167.         }

  168.  

  169.         if (wp)

  170.         {

  171.                 remove_weapon(id, wp)

  172.                 return 1

  173.         }

  174.  

  175.         return 0

  176. }

  177.  

  178. public csdm_PostDeath(killer, victim, headshot, const weapon[])

  179. {

  180.         if (g_StayTime > 20 || g_StayTime < 0)

  181.                 return PLUGIN_CONTINUE

  182.  

  183.         new weapons[MAX_WEAPONS], num, name[24]

  184.         new wp, slot, ret

  185.  

  186.         get_user_weapons(victim, weapons, num)

  187.  

  188.         for (new i=0; i<num; i++)

  189.         {

  190.                 wp = weapons[i]

  191.                 slot = g_WeaponSlots[wp]

  192.  

  193.                 ExecuteForward(g_drop_fwd, ret, victim, wp, 1)

  194.  

  195.                 if (ret == CSDM_DROP_REMOVE)

  196.                 {

  197.                         get_weaponname(wp, name, 23)

  198.                         csdm_remove_weapon(victim, name, 0, 1)

  199.                 } else if (ret == CSDM_DROP_IGNORE) {

  200.                         continue

  201.                 } else {

  202.                         if (slot == SLOT_PRIMARY || slot == SLOT_SECONDARY || slot == SLOT_C4)

  203.                         {

  204.                                 remove_weapon(victim, wp)

  205.                         }

  206.                 }

  207.         }

  208.  

  209.         if (cs_get_user_shield(victim))

  210.         {

  211.                 ExecuteForward(g_drop_fwd, ret, victim, -1, 1)

  212.                 if (ret == CSDM_DROP_REMOVE)

  213.                 {

  214.                         csdm_remove_weapon(victim, "weapon_shield", 0, 1)

  215.                 } else if (ret == CSDM_DROP_IGNORE) {

  216.                         /* do nothing */

  217.                 } else {

  218.                         remove_weapon(victim, -1)

  219.                 }

  220.         }

  221.  

  222.         return PLUGIN_CONTINUE

  223. }

  224.  

  225. public csdm_PreSpawn(player, bool:fake)

  226. {

  227.         //we'll just have to back out for now

  228.         if (cs_get_user_shield(player))

  229.         {

  230.                 return

  231.         }

  232.         new team = get_user_team(player)

  233.         if (g_StripWeapons)

  234.         {

  235.                 if (team == _TEAM_T)

  236.                 {

  237.                         if (cs_get_user_shield(player))

  238.                         {

  239.                                 drop_with_shield(player, CSW_GLOCK18)

  240.                         } else {

  241.                                 csdm_force_drop(player, "weapon_glock18")

  242.                         }

  243.                 } else if (team == _TEAM_CT) {

  244.                         if (cs_get_user_shield(player))

  245.                         {

  246.                                 drop_with_shield(player, CSW_USP)

  247.                         } else {

  248.                                 csdm_force_drop(player, "weapon_usp")

  249.                         }

  250.                 }

  251.         }

  252.         if (team == _TEAM_T)

  253.         {

  254.                 if (g_RemoveBomb)

  255.                 {

  256.                         new weapons[MAX_WEAPONS], num

  257.                         get_user_weapons(player, weapons, num)

  258.                         for (new i=0; i<num; i++)

  259.                         {

  260.                                 if (weapons[i] == CSW_C4)

  261.                                 {

  262.                                         if (cs_get_user_shield(player))

  263.                                         {

  264.                                                 drop_with_shield(player, CSW_C4)

  265.                                         } else {

  266.                                                 csdm_force_drop(player, "weapon_c4")

  267.                                         }

  268.                                         break

  269.                                 }

  270.                         }

  271.                 }

  272.         }

  273. }

  274.  

  275. remove_weapon(id, wp)

  276. {

  277.         new name[24]

  278.  

  279.         if (wp == -1)

  280.         {

  281.                 copy(name, 23, "weapon_shield")

  282.         } else {

  283.                 get_weaponname(wp, name, 23)

  284.         }

  285.  

  286.         if ((wp == CSW_C4) && g_RemoveBomb)

  287.         {      

  288.                 csdm_remove_weapon(id, name, 0, 1)

  289.         } else {

  290.                 if (wp != CSW_C4)

  291.                 {

  292.                         csdm_remove_weapon(id, name, g_StayTime, 1)

  293.                 }

  294.         }

  295. }

  296.  

  297. public hook_item_display(player, menu, item)

  298. {

  299.         new paccess, command[24], call

  300.  

  301.         menu_item_getinfo(menu, item, paccess, command, 23, _, 0, call)

  302.  

  303.         if (equali(command, "csdm_ctrl"))

  304.         {

  305.                 if (!csdm_active())

  306.                 {

  307.                         menu_item_setname(menu, item, "DM Be")

  308.                 } else {

  309.                         menu_item_setname(menu, item, "DM Ki")

  310.                 }

  311.         }

  312. }

  313.  

  314. public read_cfg(readAction, line[], section[])

  315. {

  316.         if (readAction == CFG_READ)

  317.         {

  318.                 new setting[24], sign[3], value[32];

  319.  

  320.                 parse(line, setting, 23, sign, 2, value, 31);

  321.  

  322.                 if (equali(setting, "strip_weapons"))

  323.                 {

  324.                         g_StripWeapons = str_to_num(value) ? true : false

  325.                 } else if (equali(setting, "weapons_stay")) {

  326.                         g_StayTime = str_to_num(value)

  327.                 } else if (equali(setting, "spawnmode")) {

  328.                         new var = csdm_setstyle(value)

  329.                         if (var)

  330.                         {

  331.                                 log_amx("CSDM spawn mode set to %s", value)

  332.                         } else {

  333.                                 log_amx("CSDM spawn mode %s not found", value)

  334.                         }

  335.                 } else if (equali(setting, "remove_bomb")) {

  336.                         g_RemoveBomb = str_to_num(value) ? true : false

  337.                 } else if (equali(setting, "enabled")) {

  338.                         csdm_set_active(str_to_num(value))

  339.                 } else if (equali(setting, "spawn_wait_time")) {

  340.                         csdm_set_spawnwait(str_to_float(value))

  341.                 }

  342.         }

  343. }

  344.  

  345. public csdm_reload(id, level, cid)

  346. {

  347.         if (!cmd_access(id, level, cid, 1))

  348.                 return PLUGIN_HANDLED

  349.  

  350.         new file[33] = ""

  351.         if (read_argc() >= 2)

  352.         {

  353.                 read_argv(1, file, 32)

  354.         }

  355.  

  356.         if (csdm_reload_cfg(file))

  357.         {

  358.                 client_print(id, print_chat, "[CSDM] Deathmatch config ujratoltve.")

  359.         } else {

  360.                 client_print(id, print_chat, "[CSDM] nem lehet ujratolteni a csdm.cfg-t.")

  361.         }

  362.  

  363.         return PLUGIN_HANDLED

  364. }

  365.  

  366. public csdm_menu(id, level, cid)

  367. {

  368.         if (!cmd_access(id, level, cid, 1))

  369.                 return PLUGIN_HANDLED

  370.  

  371.         menu_display(id, g_MainMenu, 0)

  372.  

  373.         return PLUGIN_HANDLED

  374. }

  375.  

  376. public csdm_ctrl(id, level, cid)

  377. {

  378.         if (!cmd_access(id, level, cid, 1))

  379.                 return PLUGIN_HANDLED

  380.  

  381.         csdm_set_active( csdm_active() ? 0 : 1 )

  382.         client_print(id, print_chat, "CSDM Deathmatch mod fut,Magyarositotta,Expert_IMI")

  383.  

  384.         return PLUGIN_HANDLED

  385. }

  386.  

  387. public use_csdm_menu(id, menu, item)

  388. {

  389.         if (item < 0)

  390.                 return PLUGIN_CONTINUE

  391.  

  392.         new command[24], paccess, call

  393.         if (!menu_item_getinfo(g_MainMenu, item, paccess, command, 23, _, 0, call))

  394.         {

  395.                 log_amx("Error: csdm_menu_item() failed (menu %d) (page %d) (item %d)", g_MainMenu, 0, item)

  396.                 return PLUGIN_HANDLED

  397.         }

  398.         if (paccess && !(get_user_flags(id) & paccess))

  399.         {

  400.                 client_print(id, print_chat, "Nem engedelyezett ez a menu opciok.")

  401.                 return PLUGIN_HANDLED

  402.         }

  403.  

  404.         client_cmd(id, command)

  405.  

  406.         return PLUGIN_HANDLED

  407. }

  408.  

  409. public csdm_enable(id, level, cid)

  410. {

  411.         if (!cmd_access(id, level, cid, 1))

  412.                 return PLUGIN_HANDLED

  413.  

  414.         csdm_set_active(1)

  415.         client_print(id, print_chat, "CSDM Deathmatch mod bekapcsolva.")

  416.  

  417.         return PLUGIN_HANDLED  

  418. }

  419.  

  420. public csdm_disable(id, level, cid)

  421. {

  422.         if (!cmd_access(id, level, cid, 1))

  423.                 return PLUGIN_HANDLED

  424.  

  425.         csdm_set_active(0)

  426.         client_print(id, print_chat, "CSDM Deathmach mod kikapcsolva.")

  427.  

  428.         return PLUGIN_HANDLED  

  429. }

  430.  

  431. public say_respawn(id)

  432. {

  433.         if (g_options[CSDM_OPTION_SAYRESPAWN] == CSDM_SET_DISABLED)

  434.         {

  435.                 client_print(id, print_chat, "[CSDM] Parancs letiltva")

  436.                 return PLUGIN_HANDLED

  437.         }

  438.  

  439.         if (!is_user_alive(id) && csdm_active())

  440.         {

  441.                 new team = get_user_team(id)

  442.                 if (team == _TEAM_T || team == _TEAM_CT)

  443.                 {

  444.                         csdm_respawn(id)

  445.                 }

  446.         }

  447.  

  448.         return PLUGIN_CONTINUE

  449. }

  450.  

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