| Üdv! valaki átírná nekem a csdm_main-t úgy hogy awpvel kezdjen?
 
 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("csdm_menu", "csdm_menu", ADMIN_MENU, "CSDM Menu")
         register_clcmd("drop", "hook_drop")
         
         register_concmd("csdm_cache", "cacheInfo", ADMIN_MAP, "Shows cache information")
         
         AddMenuItem("CSDM Menu", "csdm_menu", D_ACCESS, D_PLUGIN)
         g_MainMenu = menu_create("CSDM Menu", "use_csdm_menu")
         
         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] nem lehet ujratolteni a csdm.cfg-t.")
         }
                 
         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 fut,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, "Nem engedelyezett ez a menu opciok.")
                 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
 }
  
 |