Kód:
-     #include <amxmodx> 
-     #include <amxmisc> 
-     #include <cstrike> 
-     #include <csdm> 
-       
-     new D_PLUGIN[]  = "CSDM Main" 
-     new D_ACCESS    = ADMIN_MAP 
-       
-     #define CSDM_OPTIONS_TOTAL              2 
-       
-     new bool:g_StripWeapons = true 
-     new bool:g_RemoveBomb = true 
-     new g_StayTime 
-     new g_drop_fwd 
-     new g_options[CSDM_OPTIONS_TOTAL] 
-       
-     //new g_MenuPages[33] 
-     new g_MainMenu = -1 
-       
-     public plugin_natives() 
-     { 
-             register_native("csdm_main_menu", "native_main_menu") 
-             register_native("csdm_set_mainoption", "__csdm_allow_option") 
-             register_native("csdm_fwd_drop", "__csdm_fwd_drop") 
-             register_library("csdm_main") 
-     } 
-       
-     public native_main_menu(id, num) 
-     { 
-             return g_MainMenu 
-     } 
-       
-     public __csdm_allow_option(id, num) 
-     { 
-             new option = get_param(1) 
-             
-             if (option <= 0 || option >= CSDM_OPTIONS_TOTAL) 
-             { 
-                     log_error(AMX_ERR_NATIVE, "Invalid option number: %d", option) 
-                     return 0 
-             } 
-             
-             g_options[option] = get_param(2) 
-             
-             return 1 
-     } 
-       
-     public __csdm_fwd_drop(id, num) 
-     { 
-             new id = get_param(1) 
-             new wp = get_param(2) 
-             new name[32] 
-             
-             get_string(3, name, 31) 
-             
-             return run_drop(id, wp, name)   
-     } 
-       
-     public csdm_Init(const version[]) 
-     { 
-             if (version[0] == 0) 
-             { 
-                     set_fail_state("CSDM failed to load.") 
-                     return 
-             } 
-     } 
-       
-     public csdm_CfgInit() 
-     {       
-             csdm_reg_cfg("settings", "read_cfg") 
-     } 
-       
-     public plugin_init() 
-     { 
-             register_plugin(D_PLUGIN, CSDM_VERSION, "CSDM Team") 
-             
-             register_clcmd("say respawn", "say_respawn") 
-             register_clcmd("say /respawn", "say_respawn") 
-             
-             register_concmd("csdm_enable", "csdm_enable", D_ACCESS, "Enables CSDM") 
-             register_concmd("csdm_disable", "csdm_disable", D_ACCESS, "Disables CSDM") 
-             register_concmd("csdm_ctrl", "csdm_ctrl", D_ACCESS, "") 
-             register_concmd("csdm_reload", "csdm_reload", D_ACCESS, "Reloads CSDM Config") 
-             register_clcmd("drop", "hook_drop") 
-             
-             register_concmd("csdm_cache", "cacheInfo", ADMIN_MAP, "Shows cache information") 
-             
-             
-             new callback = menu_makecallback("hook_item_display") 
-             menu_additem(g_MainMenu, "DM Be/DM Ki", "csdm_ctrl", D_ACCESS, callback) 
-             menu_additem(g_MainMenu, "DM config ujratoltese", "csdm_reload", D_ACCESS) 
-             
-             g_drop_fwd = CreateMultiForward("csdm_HandleDrop", ET_CONTINUE, FP_CELL, FP_CELL, FP_CELL) 
-     } 
-       
-     public cacheInfo(id, level, cid) 
-     { 
-             if (!cmd_access(id, level, cid, 1)) 
-                     return PLUGIN_HANDLED 
-                     
-             new ar[6] 
-             csdm_cache(ar) 
-             
-             console_print(id, "[CSDM] Free tasks: respawn=%d, findweapon=%d", ar[0], ar[5]) 
-             console_print(id, "[CSDM] Weapon removal cache: %d total, %d live", ar[4], ar[3]) 
-             console_print(id, "[CSDM] Live tasks: %d (%d free)", ar[2], ar[1]) 
-             
-             return PLUGIN_HANDLED 
-     } 
-       
-     public hook_drop(id) 
-     { 
-             if (!csdm_active()) 
-             { 
-                     return 
-             } 
-             
-             if (!is_user_connected(id)) 
-             { 
-                     return 
-             } 
-             
-             new wp, c, a, name[24] 
-             if (cs_get_user_shield(id)) 
-             { 
-                     //entirely different... 
-                     wp = -1 
-                     copy(name, 23, "weapon_shield") 
-             } else { 
-                     if (read_argc() <= 1) 
-                     { 
-                             wp = get_user_weapon(id, c, a) 
-                     } else { 
-                             read_argv(1, name, 23) 
-                             wp = getWepId(name) 
-                     } 
-             } 
-       
-             run_drop(id, wp, name) 
-     } 
-       
-     run_drop(id, wp, const name[]) 
-     { 
-             new ret 
-             ExecuteForward(g_drop_fwd, ret, id, wp, 0) 
-             
-             if (ret == CSDM_DROP_REMOVE) 
-             { 
-                     new _name[24] 
-                     if (name[0] == 0) 
-                     { 
-                             get_weaponname(wp, _name, 23) 
-                     } 
-                     csdm_remove_weapon(id, _name, 0, 1) 
-                     return 1 
-             } else if (ret == CSDM_DROP_IGNORE) { 
-                     return 0 
-             } 
-             
-             if (g_StayTime > 20 || g_StayTime < 0) 
-             { 
-                     return 0 
-             } 
-             
-             if (wp) 
-             { 
-                     remove_weapon(id, wp) 
-                     return 1 
-             } 
-             
-             return 0 
-     } 
-       
-     public csdm_PostDeath(killer, victim, headshot, const weapon[]) 
-     { 
-             if (g_StayTime > 20 || g_StayTime < 0) 
-                     return PLUGIN_CONTINUE 
-       
-             new weapons[MAX_WEAPONS], num, name[24] 
-             new wp, slot, ret 
-       
-             get_user_weapons(victim, weapons, num) 
-       
-             for (new i=0; i<num; i++) 
-             { 
-                     wp = weapons[i] 
-                     slot = g_WeaponSlots[wp] 
-       
-                     ExecuteForward(g_drop_fwd, ret, victim, wp, 1) 
-       
-                     if (ret == CSDM_DROP_REMOVE) 
-                     { 
-                             get_weaponname(wp, name, 23) 
-                             csdm_remove_weapon(victim, name, 0, 1) 
-                     } else if (ret == CSDM_DROP_IGNORE) { 
-                             continue 
-                     } else { 
-                             if (slot == SLOT_PRIMARY || slot == SLOT_SECONDARY || slot == SLOT_C4) 
-                             { 
-                                     remove_weapon(victim, wp) 
-                             } 
-                     } 
-             } 
-             
-             if (cs_get_user_shield(victim)) 
-             { 
-                     ExecuteForward(g_drop_fwd, ret, victim, -1, 1) 
-                     if (ret == CSDM_DROP_REMOVE) 
-                     { 
-                             csdm_remove_weapon(victim, "weapon_shield", 0, 1) 
-                     } else if (ret == CSDM_DROP_IGNORE) { 
-                             /* do nothing */ 
-                     } else { 
-                             remove_weapon(victim, -1) 
-                     } 
-             } 
-             
-             return PLUGIN_CONTINUE 
-     } 
-       
-     public csdm_PreSpawn(player, bool:fake) 
-     { 
-             //we'll just have to back out for now 
-             if (cs_get_user_shield(player)) 
-             { 
-                     return 
-             } 
-             new team = get_user_team(player) 
-             if (g_StripWeapons) 
-             { 
-                     if (team == _TEAM_T) 
-                     { 
-                             if (cs_get_user_shield(player)) 
-                             { 
-                                     drop_with_shield(player, CSW_GLOCK18) 
-                             } else { 
-                                     csdm_force_drop(player, "weapon_glock18") 
-                             } 
-                     } else if (team == _TEAM_CT) { 
-                             if (cs_get_user_shield(player)) 
-                             { 
-                                     drop_with_shield(player, CSW_USP) 
-                             } else { 
-                                     csdm_force_drop(player, "weapon_usp") 
-                             } 
-                     } 
-             } 
-             if (team == _TEAM_T) 
-             { 
-                     if (g_RemoveBomb) 
-                     { 
-                             new weapons[MAX_WEAPONS], num 
-                             get_user_weapons(player, weapons, num) 
-                             for (new i=0; i<num; i++) 
-                             { 
-                                     if (weapons[i] == CSW_C4) 
-                                     { 
-                                             if (cs_get_user_shield(player)) 
-                                             { 
-                                                     drop_with_shield(player, CSW_C4) 
-                                             } else { 
-                                                     csdm_force_drop(player, "weapon_c4") 
-                                             } 
-                                             break 
-                                     } 
-                             } 
-                     } 
-             } 
-     } 
-       
-     remove_weapon(id, wp) 
-     { 
-             new name[24] 
-             
-             if (wp == -1) 
-             { 
-                     copy(name, 23, "weapon_shield") 
-             } else { 
-                     get_weaponname(wp, name, 23) 
-             } 
-       
-             if ((wp == CSW_C4) && g_RemoveBomb) 
-             {       
-                     csdm_remove_weapon(id, name, 0, 1) 
-             } else { 
-                     if (wp != CSW_C4) 
-                     { 
-                             csdm_remove_weapon(id, name, g_StayTime, 1) 
-                     } 
-             } 
-     } 
-       
-     public hook_item_display(player, menu, item) 
-     { 
-             new paccess, command[24], call 
-             
-             menu_item_getinfo(menu, item, paccess, command, 23, _, 0, call) 
-             
-             if (equali(command, "csdm_ctrl")) 
-             { 
-                     if (!csdm_active()) 
-                     { 
-                             menu_item_setname(menu, item, "DM Be") 
-                     } else { 
-                             menu_item_setname(menu, item, "DM Ki") 
-                     } 
-             } 
-     } 
-       
-     public read_cfg(readAction, line[], section[]) 
-     { 
-             if (readAction == CFG_READ) 
-             { 
-                     new setting[24], sign[3], value[32]; 
-       
-                     parse(line, setting, 23, sign, 2, value, 31); 
-                     
-                     if (equali(setting, "strip_weapons")) 
-                     { 
-                             g_StripWeapons = str_to_num(value) ? true : false 
-                     } else if (equali(setting, "weapons_stay")) { 
-                             g_StayTime = str_to_num(value) 
-                     } else if (equali(setting, "spawnmode")) { 
-                             new var = csdm_setstyle(value) 
-                             if (var) 
-                             { 
-                                     log_amx("CSDM spawn mode set to %s", value) 
-                             } else { 
-                                     log_amx("CSDM spawn mode %s not found", value) 
-                             } 
-                     } else if (equali(setting, "remove_bomb")) { 
-                             g_RemoveBomb = str_to_num(value) ? true : false 
-                     } else if (equali(setting, "enabled")) { 
-                             csdm_set_active(str_to_num(value)) 
-                     } else if (equali(setting, "spawn_wait_time")) { 
-                             csdm_set_spawnwait(str_to_float(value)) 
-                     } 
-             } 
-     } 
-       
-     public csdm_reload(id, level, cid) 
-     { 
-             if (!cmd_access(id, level, cid, 1)) 
-                     return PLUGIN_HANDLED 
-                     
-             new file[33] = "" 
-             if (read_argc() >= 2) 
-             { 
-                     read_argv(1, file, 32) 
-             } 
-                     
-             if (csdm_reload_cfg(file)) 
-             { 
-                     client_print(id, print_chat, "[CSDM] Deathmatch config ujratoltve.") 
-             } else { 
-                     client_print(id, print_chat, "[CSDM] Unable to find config file.") 
-             } 
-                     
-             return PLUGIN_HANDLED 
-     } 
-       
-     public csdm_menu(id, level, cid) 
-     { 
-             if (!cmd_access(id, level, cid, 1)) 
-                     return PLUGIN_HANDLED 
-             
-             menu_display(id, g_MainMenu, 0) 
-             
-             return PLUGIN_HANDLED 
-     } 
-       
-     public csdm_ctrl(id, level, cid) 
-     { 
-             if (!cmd_access(id, level, cid, 1)) 
-                     return PLUGIN_HANDLED 
-             
-             csdm_set_active( csdm_active() ? 0 : 1 ) 
-             client_print(id, print_chat, "CSDM Deathmatch mod magyarositotta,Expert_IMI") 
-             
-             return PLUGIN_HANDLED 
-     } 
-       
-     public use_csdm_menu(id, menu, item) 
-     { 
-             if (item < 0) 
-                     return PLUGIN_CONTINUE 
-             
-             new command[24], paccess, call 
-             if (!menu_item_getinfo(g_MainMenu, item, paccess, command, 23, _, 0, call)) 
-             { 
-                     log_amx("Error: csdm_menu_item() failed (menu %d) (page %d) (item %d)", g_MainMenu, 0, item) 
-                     return PLUGIN_HANDLED 
-             } 
-             if (paccess && !(get_user_flags(id) & paccess)) 
-             { 
-                     client_print(id, print_chat, "You do not have access to this menu option.") 
-                     return PLUGIN_HANDLED 
-             } 
-             
-             client_cmd(id, command) 
-             
-             return PLUGIN_HANDLED 
-     } 
-       
-     public csdm_enable(id, level, cid) 
-     { 
-             if (!cmd_access(id, level, cid, 1)) 
-                     return PLUGIN_HANDLED 
-       
-             csdm_set_active(1) 
-             client_print(id, print_chat, "CSDM Deathmatch mod bekapcsolva.") 
-             
-             return PLUGIN_HANDLED   
-     } 
-       
-     public csdm_disable(id, level, cid) 
-     { 
-             if (!cmd_access(id, level, cid, 1)) 
-                     return PLUGIN_HANDLED 
-       
-             csdm_set_active(0) 
-             client_print(id, print_chat, "CSDM Deathmach mod kikapcsolva.") 
-             
-             return PLUGIN_HANDLED   
-     } 
-       
-     public say_respawn(id) 
-     { 
-             if (g_options[CSDM_OPTION_SAYRESPAWN] == CSDM_SET_DISABLED) 
-             { 
-                     client_print(id, print_chat, "[CSDM] Parancs letiltva") 
-                     return PLUGIN_HANDLED 
-             } 
-             
-             if (!is_user_alive(id) && csdm_active()) 
-             { 
-                     new team = get_user_team(id) 
-                     if (team == _TEAM_T || team == _TEAM_CT) 
-                     { 
-                             csdm_respawn(id) 
-                     } 
-             } 
-             
-             return PLUGIN_CONTINUE 
-     } 
-       
-   
És én ugy tom,hogy ez csiinálja,hogy bent legyen a menüben és legelsőnek !
Kód:
- register_clcmd("csdm_menu", "csdm_menu", ADMIN_MENU, "CSDM Menu") 
-   
-   
- ddMenuItem("CSDM Menu", "csdm_menu", D_ACCESS, D_PLUGIN) 
-         g_MainMenu = menu_create("CSDM Menu", "use_csdm_menu")