I forgot all about this XD. HAT had reported the same problem. I fixed it when they first told me about it but I also just made some minor changes in regards to the timer ids. I tested it on my private server but it's only populated by bots. Let me know how it goes. ;)rnrn
/*rnWeapons Mod 2.0rnBrought to you by TooLzrnrnSpecial thanks to DoDPlugins.net for providing the wonderful community!rn*/rnrn// ===========================rn// Modifications:rn// ===========================rn// Added the ability to keep chosen weapon instead of class default even after respawn / round start. rn//rn// ===========================rn// CVARS:rn// ===========================rn// - amx_autospawn_weapon | 0 = off | 1 = onrn// Enable or disable respawning / round starting with chosen weapon. Default on.rnrn#include <amxmodx> rn#include <amxmisc> rn#include <fun> rn#include <dodx>rn#include <fakemeta>rn#define MAXWEAPON 23rnrnnew player_weapon[32][32]rnnew auto_typernnew weapon_chosen[32]rnnew weapon_said[32][32]rnrnnew got_weapon[32], Weapon_Name[33][32]rnenum WeaponData {rn WMOD_Weapon,rn WMOD_SayCmd[32],rn WMOD_Disabled[32]rn}rnnew WEAPON[MAXWEAPON][WeaponData] = {rn {DODW_KAR,"k98","amx_disable_k98"}, //0rn {DODW_GARAND,"garand","amx_disable_garand"}, //1rn {DODW_K43,"k43","amx_disablek43"}, //2rn {DODW_M1_CARBINE,"carbine","amx_disable_carbine"}, //3rn {DODW_MP40,"mp40","amx_disable_mp40"}, //4rn {DODW_THOMPSON,"thompson","amx_disable_thompson"}, //5rn {DODW_STG44,"stg44","amx_disable_stg44"}, //6rn {DODW_GREASEGUN,"greasegun","amx_disable_greasegun"}, //7rn {DODW_SCOPED_KAR,"scopedk98","amx_disable_scopedk98"}, //8rn {DODW_SPRINGFIELD,"springfield","amx_disable_springfield"}, //9rn {DODW_MG34,"mg34","amx_disable_mg34"}, //10rn {DODW_BAR,"bar","amx_disable_bar"}, //11rn {DODW_MG42,"mg42","amx_disable_mg42"}, //12rn {DODW_30_CAL,"30cal","amx_disable_30cal"}, //13rn {DODW_PANZERSCHRECK,"panzerschreck","amx_disable_panzerschreck"}, //14rn {DODW_BAZOOKA,"bazooka","amx_disable_bazooka"}, //15rn {DODW_ENFIELD,"enfield","amx_disable_enfield"}, //16rn {DODW_STEN,"sten","amx_disable_sten"}, //17rn {DODW_BREN,"bren","amx_disable_bren"}, //18rn {DODW_PIAT,"piat","amx_disable_piat"}, //19rn {DODW_FG42,"fg42","amx_disable_fg42"}, //20rn {DODW_SCOPED_FG42,"scopedfg42","amx_disable_scopedfg42"}, //21rn {DODW_SCOPED_ENFIELD,"scopedenfield","amx_disable_scopedenfield"} //22rn}rnpublic plugin_init() rn{ rn register_plugin("Weapons Mod 2.0","2.0","TooLz") rn register_event("ResetHUD","respawn","be")rn rn register_clcmd("say /k98","cmdSay",0,"- Checks which weapon was said")rn register_clcmd("say /garand","cmdSay",0,"- Checks which weapon was said")rn register_clcmd("say /k43","cmdSay",0,"- Checks which weapon was said")rn register_clcmd("say /carbine","cmdSay",0,"- Checks which weapon was said")rn register_clcmd("say /mp40","cmdSay",0,"- Checks which weapon was said")rn register_clcmd("say /thompson","cmdSay",0,"- Checks which weapon was said")rn register_clcmd("say /stg44","cmdSay",0,"- Checks which weapon was said")rn register_clcmd("say /greasegun","cmdSay",0,"- Checks which weapon was said")rn register_clcmd("say /scopedk98","cmdSay",0,"- Checks which weapon was said")rn register_clcmd("say /springfield","cmdSay",0,"- Checks which weapon was said")rn register_clcmd("say /mg34","cmdSay",0,"- Checks which weapon was said")rn register_clcmd("say /bar","cmdSay",0,"- Checks which weapon was said")rn register_clcmd("say /mg42","cmdSay",0,"- Checks which weapon was said")rn register_clcmd("say /30cal","cmdSay",0,"- Checks which weapon was said")rn register_clcmd("say /panzerschreck","cmdSay",0,"- Checks which weapon was said")rn register_clcmd("say /bazooka","cmdSay",0,"- Checks which weapon was said")rn register_clcmd("say /enfield","cmdSay",0,"- Checks which weapon was said")rn register_clcmd("say /sten","cmdSay",0,"- Checks which weapon was said")rn register_clcmd("say /bren","cmdSay",0,"- Checks which weapon was said")rn register_clcmd("say /piat","cmdSay",0,"- Checks which weapon was said")rn register_clcmd("say /fg42","cmdSay",0,"- Checks which weapon was said")rn register_clcmd("say /scopedfg42","cmdSay",0,"- Checks which weapon was said")rn register_clcmd("say /scopedenfield","cmdSay",0,"- Checks which weapon was said")rn register_cvar("amx_weapon_changes", "99")rn register_cvar("amx_disable_scopedfg42","0")rn register_cvar("amx_disable_scopedenfield","0")rn register_cvar("amx_disable_k98", "0")rn register_cvar("amx_disable_garand", "0")rn register_cvar("amx_disable_carbine", "0")rn register_cvar("amx_disable_k43", "0")rn register_cvar("amx_disable_mp40", "0")rn register_cvar("amx_disable_thompson", "0")rn register_cvar("amx_disable_stg44", "0")rn register_cvar("amx_disable_bar", "0")rn register_cvar("amx_disable_fg42", "0")rn register_cvar("amx_disable_greasegun", "0")rn register_cvar("amx_disable_bazooka", "0")rn register_cvar("amx_disable_enfield", "0")rn register_cvar("amx_disable_sten", "0")rn register_cvar("amx_disable_mg42", "0")rn register_cvar("amx_disable_mg34", "0")rn register_cvar("amx_disable_30cal", "0")rn register_cvar("amx_disable_springfield", "0")rn register_cvar("amx_disable_scopedk98", "0")rn register_cvar("amx_disable_bren", "0")rn register_cvar("amx_disable_panzerschreck", "0")rn register_cvar("amx_disable_piat", "0")rn register_cvar("amx_autospawn_weapon", "1")rn register_event("HLTV", "func_new_round", "a", "1=0", "2=0") rn}rnrnpublic respawn(id){rn got_weapon[id] = 0rn}rnrnstock detect_weapon_id(id) {rn // Big thanks to Wilson for this stock!rn new m_iCurEnt = -1, m_iWpnEnt = 0, m_szWpn[32];rn new clip, ammo, m_iWpn = get_user_weapon(id,clip,ammo);rn xmod_get_wpnlogname(m_iWpn, m_szWpn, 31);rn format(m_szWpn, 31, "weapon_%s", m_szWpn);rn if(equal(m_szWpn, "weapon_scoped_enfield")) m_szWpn = "weapon_enfield";rn if(equal(m_szWpn, "weapon_scoped_fg42")) m_szWpn = "weapon_fg42";rn new Float:m_flOrigin[3];rn pev(id, pev_origin, m_flOrigin);rn while((m_iCurEnt = engfunc(EngFunc_FindEntityInSphere, m_iCurEnt, m_flOrigin, Float:1.0)) != 0) {rn new m_szClassname[32];rn pev(m_iCurEnt, pev_classname, m_szClassname, 31);rn if(equal(m_szClassname, m_szWpn))rn m_iWpnEnt = m_iCurEnt;rn }rn return m_iWpnEnt;rn}rnstock cmdWeapon(WeaponID, WeaponName[32]) {rn xmod_get_wpnlogname(WeaponID, WeaponName, 31);rn format(WeaponName, 31, "weapon_%s", WeaponName);rn}rnstock dod_get_scoped(id) {rn new m_iCurEnt = -1, m_iWpnEnt = 0, m_szWpn[32];rn new clip, ammo, m_iWpn = get_user_weapon(id,clip,ammo);rn new is_scopedrn xmod_get_wpnlogname(m_iWpn, m_szWpn, 31);rn format(m_szWpn, 31, "weapon_%s", m_szWpn);rn if(equal(m_szWpn, "weapon_scoped_enfield")) m_szWpn = "weapon_enfield";rn if(equal(m_szWpn, "weapon_scoped_fg42")) m_szWpn = "weapon_fg42";rn new Float:m_flOrigin[3];rn pev(id, pev_origin, m_flOrigin);rn while((m_iCurEnt = engfunc(EngFunc_FindEntityInSphere, m_iCurEnt, m_flOrigin, Float:1.0)) != 0) {rn new m_szClassname[32];rn pev(m_iCurEnt, pev_classname, m_szClassname, 31);rn if(equal(m_szClassname, m_szWpn))rn m_iWpnEnt = m_iCurEnt;rn }rn is_scoped = get_pdata_int(m_iWpnEnt,115,4);rn return is_scoped;rn}rnpublic cmdMakeScoped(id){rn new is_scoped = dod_get_scoped(id)rn while(is_scoped != 1){rn is_scoped = dod_get_scoped(id)rn set_pdata_int(detect_weapon_id(id),115,1,4)rn }rn client_cmd(id,"slot2;wait;slot3")rn}rnpublic cmdGiveWeapon(id){rn if (!equali(Weapon_Name[id],"weapon_scoped_fg42") && !equali(Weapon_Name[id], "weapon_scoped_enfield")){rn give_item(id,Weapon_Name[id])rn }rn if(equali(Weapon_Name[id],"weapon_scoped_fg42")){rn give_item(id,"weapon_fg42")rn set_task(0.2,"cmdMakeScoped",id)rn }rn if(equali(Weapon_Name[id],"weapon_scoped_enfield")){rn give_item(id,"weapon_enfield")rn set_task(0.2,"cmdMakeScoped",id)rn }rn got_weapon[id]++rn}rnpublic cmdSay(id) {rn new said[32]rn read_argv(1,said,31)rn read_argv(1,player_weapon[id],31)rn if(said[0] != '/')rn return PLUGIN_CONTINUE;rn for(new i = 0 ; i < MAXWEAPON ; i++) {rn if(equali(said[1],WEAPON[i][WMOD_SayCmd])) {rn if(get_cvar_num(WEAPON[i][WMOD_Disabled]) != 0){rn client_print(id,print_chat, "[Weapons Mod 2.0] This weapon is disabled on this server.")rn return PLUGIN_HANDLEDrn }rn if (got_weapon[id] == get_cvar_num("amx_weapon_changes")){rn client_print(id,print_chat, "[Weapons Mod 2.0] You've used up your gun changes, you must wait until respawn to change guns again.")rn return PLUGIN_HANDLEDrn }rn cmdWeapon(WEAPON[i][WMOD_Weapon],Weapon_Name[id])rn client_cmd(id, "drop")rn weapon_chosen[id] = 1rn set_task(0.3,"cmdGiveWeapon", id)rn break;rn }rn }rn return PLUGIN_CONTINUErn}rn//If round restarts, change all player's weapons from class defaults to chosen.rnpublic func_new_round() {rn if (get_cvar_num("amx_autospawn_weapon") == 1)rn {rn new i,max_players[32],inumrn get_players(max_players,inum,"c")rn for(i = 0; i < inum; ++i)rn {rn if (weapon_chosen[max_players[i]] && is_user_connected(max_players[i]))rn {rn auto_type = 1rn set_task(2.5,"func_auto_change",max_players[i]+150)rn rn }rn }rn }rn}rn//If player spawns, change weapon from class default to chosen.rnpublic dod_client_spawn(id) {rn if (get_cvar_num("amx_autospawn_weapon") == 1)rn {rn if (weapon_chosen[id] && is_user_connected(id))rn {rn auto_type = 0rn set_task(0.6,"func_auto_change",id+250)rn }rn }rn}rnrn//Reset id bit if new player takes previous id number.rnpublic client_connect(id) {rn weapon_chosen[id] = 0rn}rnrn//Make client execute say command with chosen weapon.rnpublic func_auto_change(id) {rn new id_typern if (auto_type == 0)rn {rn id_type = 250rn }rn elsern {rn id_type = 150rn }rn client_cmd(id-id_type,"say %s",player_weapon[id-id_type])rn}