hlmod.hu

Magyar Half-Life Mód közösség!
Pontos idő: 2024.04.17. 00:19



Jelenlévő felhasználók

Jelenleg 94 felhasználó van jelen :: 0 regisztrált, 0 rejtett és 94 vendég

A legtöbb felhasználó (1565 fő) 2020.11.21. 11:26-kor tartózkodott itt.

Regisztrált felhasználók: nincs regisztrált felhasználó az elmúlt 5 percben aktív felhasználók alapján

Utoljára aktív
Ahhoz hogy lásd ki volt utoljára aktív, be kell jelentkezned.



Az oldal teljeskörű
használatához regisztrálj.

Regisztráció

Kereső


Új téma nyitása  Hozzászólás a témához  [ 1 hozzászólás ] 
Szerző Üzenet
 Hozzászólás témája: ReCSDM kés spawn
HozzászólásElküldve: 2019.12.19. 16:37 
Offline
Senior Tag
Avatar

Csatlakozott: 2015.06.11. 01:54
Hozzászólások: 220
Megköszönt másnak: 46 alkalommal
Megköszönték neki: 13 alkalommal
Hogy lehetne megoldani hogy adjon kést mindig? ReCSDM 3.6, spawnoláskor csak gránátot ad alapból kést nem. csdm.cfg-be meg hiába írok át valamit nem történik semmi, meg ha szerveren a menüből próbálom akkor se. Ez mitől lehet?

  1. /**
  2.  * csdm_equip.sma
  3.  * Allows for Counter-Strike to be played as DeathMatch.
  4.  *
  5.  * CSDM Equipment Menu
  6.  *
  7.  * By Freecode and BAILOPAN
  8.  * (C)2003-2006 David "BAILOPAN" Anderson
  9.  *
  10.  * Give credit where due.
  11.  * Share the source - it sets you free
  12.  * http://www.opensource.org/
  13.  * http://www.gnu.org/
  14.  *
  15.  *
  16.  *
  17.  * Modification from ReCSDM Team (C) 2016
  18.  * http://www.dedicated-server.ru/
  19.  *
  20.  */
  21.  
  22. #include <amxmodx>
  23. #include <amxmisc>
  24. #include <cstrike>
  25. #include <csdm>
  26. #include <fakemeta>
  27. #include <hamsandwich>
  28.  
  29. #pragma semicolon 1
  30.  
  31. #if AMXX_VERSION_NUM < 183
  32.     #define client_disconnected client_disconnect
  33. #endif
  34.  
  35. //Tampering with the author and name lines can violate the copyright
  36. new const PLUGINNAME[] = "ReCSDM Equip";
  37. new const VERSION[] = CSDM_VERSION;
  38. new const AUTHORS[] = "ReCSDM Team";
  39.  
  40. #define EQUIP_PRI       (1<<0)
  41. #define EQUIP_SEC       (1<<1)
  42. #define EQUIP_ARMOR     (1<<2)
  43. #define EQUIP_GREN      (1<<3)
  44. #define EQUIP_ITEMS     (1<<4)
  45. #define EQUIP_ALL       (EQUIP_PRI|EQUIP_SEC|EQUIP_ARMOR|EQUIP_GREN|EQUIP_ITEMS)
  46.  
  47. #define ITEMTYPES_NUM   42
  48.  
  49. new g_MaxPlayers;
  50.  
  51. new bool:IsRestricted[ITEMTYPES_NUM] = {false, ...};    // Contains if an item is restricted or not
  52. new RestrictWps[ITEMTYPES_NUM] = {32, ...};
  53. new UsedWpsT[ITEMTYPES_NUM] = {0, ...};
  54. new UsedWpsCT[ITEMTYPES_NUM] = {0, ...};
  55.  
  56. //Menus
  57. new const g_SecMenu[] = "CSDM: Primary Weapons";        // Menu Name
  58. new g_SecMenuID = -1;                                                   // Menu ID
  59. new g_cSecondary;                                                       // Menu Callback
  60. new bool:g_mSecStatus = true;                                               // Menu Available?
  61.  
  62. new const g_PrimMenu[] = "CSDM: Secondary Weapons";
  63. new g_PrimMenuID = -1;
  64. new g_cPrimary;
  65. new bool:g_mPrimStatus = true;
  66.  
  67. new const g_ArmorMenu[] = "CSDM: Armor";
  68. new g_ArmorMenuID = -1;
  69. new bool:g_mArmorStatus = true;
  70.  
  71. new const g_NadeMenu[] = "CSDM: Grenades";
  72. new g_NadeMenuID = -1;
  73. new bool:g_mNadeStatus = true;
  74.  
  75. new const g_EquipMenu[] = "CSDM: Equip";
  76. new g_EquipMenuID = -1;
  77. new g_cEquip;
  78.  
  79. new bool:g_mShowuser[CSDM_MAXPLAYERS + 1] = true;
  80.  
  81. new g_Teamuser[CSDM_MAXPLAYERS + 1];
  82.  
  83. new bool:g_mAutoNades = false;
  84. new bool:g_mAutoArmor = false;
  85. new bool:g_AlwaysAllowGunMenu = false;
  86. new bool:g_AmmoRefill = false;
  87. new g_WeaponStayTime = 0;
  88.  
  89. //Weapon Selections
  90. new g_SecWeapons[CSDM_MAXPLAYERS + 1][18];
  91. new g_PrimWeapons[CSDM_MAXPLAYERS + 1][18];
  92. new bool:g_mNades[CSDM_MAXPLAYERS + 1];
  93. new bool:g_mArmor[CSDM_MAXPLAYERS + 1];
  94.  
  95. //Config weapon storage holders
  96. new g_BotPrim[MAX_WEAPONS][18];
  97. new g_iNumBotPrim;
  98.  
  99. new g_BotSec[MAX_WEAPONS][18];
  100. new g_iNumBotSec;
  101.  
  102. new g_Secondary[MAX_SECONDARY][18];
  103. new bool:g_DisabledSec[MAX_WEAPONS];
  104. new g_iNumSec;
  105. new g_iNumUsedSec = 0;
  106.  
  107. new g_Primary[MAX_PRIMARY][18];
  108. new bool:g_DisabledPrim[MAX_WEAPONS];
  109. new g_iNumPrim;
  110. new g_iNumUsedPrim = 0;
  111.  
  112. new pv_csdm_additems;
  113.  
  114. #define SILENCED_M4A1       0
  115. #define SILENCED_USP        1
  116. new bool:g_Silenced[CSDM_MAXPLAYERS + 1][2];
  117.  
  118. //Misc
  119. new g_Armor = 0;
  120. new fnadesnum = 0;
  121. new bool:g_Flash = false;
  122. new bool:g_Nade = false;
  123. new bool:g_Smoke = false;
  124. new bool:g_NightVision = false;
  125. new bool:g_DefuseKit = false;
  126.  
  127. // page info for settings in CSDM Setting Menu
  128. new g_SettingsMenu = 0;
  129. new g_EquipSettMenu = 0;
  130. new g_ItemsInMenuNr = 0;
  131. new g_PageSettMenu = 0;
  132.  
  133. //Quick Fix for menu pages
  134. new g_MenuState[CSDM_MAXPLAYERS + 1] = {0};
  135.  
  136. new Float:g_maxdelmenutime = 30.0;
  137.  
  138. #define PDATA_SAFE              2
  139. #define OFFSET_LINUX_WEAPONS    4
  140. #define m_pPlayer                   41
  141. #define m_iId                       43
  142.  
  143. public csdm_Init(const version[])
  144. {
  145.     if (version[0] == 0) {
  146.         set_fail_state("ReCSDM failed to load.");
  147.         return;
  148.     }
  149.  
  150.     // Menus and callbacks
  151.     g_SecMenuID = menu_create(g_SecMenu, "m_SecHandler", 0);
  152.     g_PrimMenuID = menu_create(g_PrimMenu, "m_PrimHandler", 0);
  153.     g_ArmorMenuID = menu_create(g_ArmorMenu, "m_ArmorHandler", 0);
  154.     g_NadeMenuID = menu_create(g_NadeMenu, "m_NadeHandler", 0);
  155.     g_EquipMenuID = menu_create(g_EquipMenu, "m_EquipHandler", 0);
  156.  
  157.     menu_setprop(g_PrimMenuID, MPROP_EXIT, MEXIT_NEVER);
  158.     menu_setprop(g_SecMenuID, MPROP_EXIT, MEXIT_NEVER);
  159.  
  160.     g_cSecondary = menu_makecallback("c_Secondary");
  161.     g_cPrimary = menu_makecallback("c_Primary");
  162.     g_cEquip = menu_makecallback("c_Equip");
  163. }
  164.  
  165. public csdm_CfgInit()
  166. {
  167.     csdm_reg_cfg("settings", "cfgMainSettings");
  168.     csdm_reg_cfg("misc", "cfgMiscSettings");
  169.  
  170.     // Config reader
  171.     csdm_reg_cfg("equip", "cfgSetting");
  172.  
  173.     // In order for weapon menu
  174.     csdm_reg_cfg("secondary", "cfgSecondary");
  175.     csdm_reg_cfg("primary", "cfgPrimary");
  176.     csdm_reg_cfg("botprimary", "cfgBotPrim");
  177.     csdm_reg_cfg("botsecondary", "cfgBotSec");
  178.     csdm_reg_cfg("item_restrictions", "cfgrestricts");
  179.  
  180.     set_task(2.0, "check_cvar_pointers", 790);
  181. }
  182.  
  183. public check_cvar_pointers()
  184. {
  185.     pv_csdm_additems = get_cvar_pointer("csdm_add_items");
  186. }
  187.  
  188. public plugin_init()
  189. {
  190.     register_plugin(PLUGINNAME, VERSION, AUTHORS);
  191.  
  192.     buildMenu(); // Build Armor/Nade/Equip Menu's
  193.  
  194.     register_clcmd("say guns", "enableMenu");
  195.     register_clcmd("say /guns", "enableMenu");
  196.     register_clcmd("say menu", "enableMenu");
  197.     register_clcmd("say enablemenu", "enableMenu");
  198.     register_clcmd("say enable_menu", "enableMenu");
  199.     register_clcmd("csdm_equip_sett_menu", "csdm_equip_sett_menu", ADMIN_MAP, "CSDM Equip Settings Menu");
  200.     register_event("TextMsg","eRestart","a","2&#Game_C","2&#Game_w");
  201.  
  202.     RegisterHam(Ham_Weapon_SecondaryAttack, "weapon_usp", "Weapon_SecondaryAttack_usp_Post", true);
  203.     RegisterHam(Ham_Weapon_SecondaryAttack, "weapon_m4a1", "Weapon_SecondaryAttack_m4a1_Post", true);
  204.  
  205.     new main_plugin = module_exists("csdm_main") ? true : false;
  206.  
  207.     if(main_plugin)
  208.     {
  209.         g_SettingsMenu = csdm_settings_menu();
  210.         g_ItemsInMenuNr = menu_items(g_SettingsMenu);
  211.         g_PageSettMenu = g_ItemsInMenuNr / 7;
  212.  
  213.         g_EquipSettMenu = menu_create("CSDM Equip Settings Menu", "use_csdm_equip_menu");
  214.  
  215.         menu_additem(g_SettingsMenu, "CSDM Equip Settings", "csdm_equip_sett_menu", ADMIN_MAP);
  216.  
  217.         if(g_EquipSettMenu)
  218.         {
  219.             new callback = menu_makecallback("hook_equip_sett_display");
  220.  
  221.             menu_additem(g_EquipSettMenu, "Equip Menu Primary [Enabled/Disabled]", "1", ADMIN_MAP, callback);
  222.             menu_additem(g_EquipSettMenu, "Equip Menu Secondary [Enabled/Disabled]", "2", ADMIN_MAP, callback);
  223.             menu_additem(g_EquipSettMenu, "Equip Menu Armor [Enabled/Disabled]", "3", ADMIN_MAP, callback);
  224.             menu_additem(g_EquipSettMenu, "Equip Menu Grenades [Enabled/Disabled]", "4", ADMIN_MAP, callback);
  225.             menu_additem(g_EquipSettMenu, "Auto equip with Armor [Enabled/Disabled]", "5", ADMIN_MAP, callback);
  226.             menu_additem(g_EquipSettMenu, "Auto equip with Helmet [Enabled/Disabled]", "6", ADMIN_MAP, callback);
  227.             menu_additem(g_EquipSettMenu, "Auto equip with Grenades [Enabled/Disabled]", "7", ADMIN_MAP, callback);
  228.             menu_additem(g_EquipSettMenu, "Auto equip with Defuser [Enabled/Disabled]", "8", ADMIN_MAP, callback);
  229.             menu_additem(g_EquipSettMenu, "Auto equip with Nightvision [Enabled/Disabled]", "9", ADMIN_MAP, callback);
  230.             menu_additem(g_EquipSettMenu, "Flashbang [Enabled/Disabled]", "10", ADMIN_MAP, callback);
  231.             menu_additem(g_EquipSettMenu, "Smoke grenade [Enabled/Disabled]", "11", ADMIN_MAP, callback);
  232.             menu_additem(g_EquipSettMenu, "HE grenade [Enabled/Disabled]", "12", ADMIN_MAP, callback);
  233.             menu_additem(g_EquipSettMenu, "Always Allow Gun Menu [Enabled/Disabled]", "13", ADMIN_MAP, callback);
  234.             menu_additem(g_EquipSettMenu, "Back", "14", 0, -1);
  235.         }
  236.     } else {
  237.         log_amx("CSDM - csdm_equip - no main plugin loaded");
  238.     }
  239.  
  240.     if(g_iNumUsedSec == 0)
  241.         g_mSecStatus = false;
  242.  
  243.     if(g_iNumUsedPrim == 0)
  244.         g_mPrimStatus = false;
  245.  
  246.     g_MaxPlayers = get_maxplayers();
  247. }
  248.  
  249. public eRestart()
  250. {
  251.     arrayset(UsedWpsT, 0, ITEMTYPES_NUM);
  252.     arrayset(UsedWpsCT, 0, ITEMTYPES_NUM);
  253.  
  254.     return PLUGIN_CONTINUE;
  255. }
  256.  
  257. public client_connect(id)
  258. {
  259.     g_mShowuser[id] = true;
  260.     g_mNades[id] = false;
  261.     g_mArmor[id] = false;
  262.     g_Silenced[id][SILENCED_M4A1] = false;
  263.     g_Silenced[id][SILENCED_USP] = false;
  264.  
  265.     return PLUGIN_CONTINUE;
  266. }
  267.  
  268. public client_disconnected(id)
  269. {
  270.     g_mShowuser[id] = false;
  271.     g_mNades[id] = false;
  272.     g_mArmor[id] = false;
  273.  
  274.     new weapons[MAX_WEAPONS], num, weapid;
  275.  
  276.     get_user_weapons(id, weapons, num);
  277.  
  278.     for (new i = 0; i < num; i++)
  279.     {
  280.         weapid = weapons[i];
  281.  
  282.         if(IsRestricted[weapid] && UsedWpsT[weapid] > 0 && g_Teamuser[id] == _TEAM_T) {
  283.             UsedWpsT[weapid]--;
  284.         }
  285.  
  286.         if(IsRestricted[weapid] && UsedWpsCT[weapid] > 0 && g_Teamuser[id] == _TEAM_CT) {
  287.             UsedWpsCT[weapid]--;
  288.         }
  289.     }
  290.  
  291.     return PLUGIN_CONTINUE;
  292. }
  293.  
  294. public csdm_RemoveWeapon(owner, entity_id, boxed_id)
  295. {
  296.     if(!pev_valid(entity_id))
  297.         return PLUGIN_HANDLED;
  298.  
  299.     new szClassname[32], weapon, team;
  300.  
  301.     pev(entity_id, pev_classname, szClassname, charsmax(szClassname));
  302.  
  303.     weapon = get_weaponid(szClassname);
  304.  
  305.     if(owner && weapon)
  306.     {
  307.         team = _:cs_get_user_team(owner);
  308.  
  309.         if(IsRestricted[weapon] && UsedWpsT[weapon] > 0 && team == _TEAM_T) {
  310.             UsedWpsT[weapon]--;
  311.             // log_amx("[DEBUG] CSDM - restricted weapon %s removed. Currently there is %d such weapons on the map.", szClassname, UsedWpsT[weapon])
  312.         }
  313.  
  314.         if(IsRestricted[weapon] && UsedWpsCT[weapon] > 0 && team == _TEAM_CT) {
  315.             UsedWpsCT[weapon]--;
  316.             //log_amx("[DEBUG] CSDM - restricted weapon %s removed. Currently there is %d such weapons on the map.", szClassname, UsedWpsCT[weapon])
  317.         }
  318.     }
  319.  
  320.     return PLUGIN_CONTINUE;
  321. }
  322.  
  323. public csdm_PostDeath(killer, victim, headshot, const weapon[])
  324. {
  325.     /* Clean up any defusal kits we might have made! */
  326.     if(!g_DefuseKit) return;
  327.  
  328.     g_Teamuser[victim] = _:cs_get_user_team(victim);
  329.  
  330.     /* This might have a race condition for team switches... */
  331.     if(g_Teamuser[victim] == _TEAM_CT)
  332.         cs_set_user_defuse(victim, 0);
  333. }
  334.  
  335. public Weapon_SecondaryAttack_usp_Post(Ent)
  336. {
  337.     if(pev_valid(Ent) != PDATA_SAFE)
  338.         return HAM_IGNORED;
  339.  
  340.     new id = get_pdata_cbase(Ent, m_pPlayer, OFFSET_LINUX_WEAPONS);
  341.  
  342.     if(id < 1 || id > g_MaxPlayers)
  343.         return HAM_IGNORED;
  344.  
  345.     g_Silenced[id][SILENCED_USP] = cs_get_weapon_silen(Ent) ? true : false;
  346.  
  347.     return HAM_IGNORED;
  348. }
  349.  
  350. public Weapon_SecondaryAttack_m4a1_Post(Ent)
  351. {
  352.     if(pev_valid(Ent) != PDATA_SAFE)
  353.         return HAM_IGNORED;
  354.  
  355.     new id = get_pdata_cbase(Ent, m_pPlayer, OFFSET_LINUX_WEAPONS);
  356.  
  357.     if(id < 1 || id > g_MaxPlayers)
  358.         return HAM_IGNORED;
  359.  
  360.     g_Silenced[id][SILENCED_M4A1] = cs_get_weapon_silen(Ent) ? true : false;
  361.  
  362.     return HAM_IGNORED;
  363. }
  364.  
  365. public cfgSecondary(readAction, line[], section[])
  366. {
  367.     if(readAction == CFG_READ)
  368.     {
  369.         if (g_iNumSec >= MAX_SECONDARY)
  370.             return PLUGIN_HANDLED;
  371.  
  372.         new wep[16], display[48], dis[4], cmd[6];
  373.  
  374.         parse(line, wep, charsmax(wep), display, charsmax(display), dis, charsmax(dis));
  375.  
  376.         new disabled = str_to_num(dis);
  377.  
  378.         //Copy weapon into array
  379.         formatex(g_Secondary[g_iNumSec], charsmax(g_Secondary[]), "weapon_%s", wep);
  380.  
  381.         g_DisabledSec[g_iNumSec] = disabled ? false : true;
  382.  
  383.         formatex(cmd, 5, "%d ", g_iNumSec);
  384.  
  385.         g_iNumSec++;
  386.  
  387.         if(disabled > 0)
  388.             g_iNumUsedSec++;
  389.  
  390.         //TODO: Add menu_destroy_items to remake menu on cfg reload
  391.         menu_additem(g_SecMenuID, display, cmd, 0, g_cSecondary);
  392.  
  393.     } else if (readAction == CFG_RELOAD) {
  394.         g_SecMenuID = menu_create(g_SecMenu, "m_SecHandler", 0);
  395.         g_iNumSec = 0;
  396.         g_iNumUsedSec = 0;
  397.  
  398.     } else if(readAction == CFG_DONE) {
  399.         //Nothing for now
  400.         return PLUGIN_HANDLED;
  401.     }
  402.  
  403.     return PLUGIN_HANDLED;
  404. }
  405.  
  406. public cfgPrimary(readAction, line[], section[])
  407. {
  408.     if(readAction == CFG_READ)
  409.     {
  410.         if(g_iNumPrim >= MAX_PRIMARY)
  411.             return PLUGIN_HANDLED;
  412.  
  413.         new wep[16], display[48], dis[4], cmd[6];
  414.  
  415.         parse(line, wep, charsmax(wep), display, charsmax(display), dis, charsmax(dis));
  416.  
  417.         new disabled = str_to_num(dis);
  418.  
  419.         //Copy weapon into array
  420.         formatex(g_Primary[g_iNumPrim], charsmax(g_Secondary[]), "weapon_%s", wep);
  421.  
  422.         g_DisabledPrim[g_iNumPrim] = disabled ? false : true;
  423.  
  424.         formatex(cmd, charsmax(cmd), "%d", g_iNumPrim);
  425.  
  426.         g_iNumPrim++;
  427.  
  428.         if(disabled > 0)
  429.             g_iNumUsedPrim++;
  430.  
  431.         //TODO: Add menu_destroy_items to remake menu on cfg reload
  432.         menu_additem(g_PrimMenuID, display, cmd, 0, g_cPrimary);
  433.  
  434.     } else if(readAction == CFG_RELOAD) {
  435.         g_PrimMenuID = menu_create(g_PrimMenu, "m_PrimHandler", 0);
  436.         g_iNumPrim = 0;
  437.         g_iNumUsedPrim = 0;
  438.  
  439.     } else if(readAction == CFG_DONE) {
  440.         //Nothing for now
  441.         return PLUGIN_HANDLED;
  442.     }
  443.  
  444.     return PLUGIN_HANDLED;
  445. }
  446.  
  447. public cfgBotPrim(readAction, line[], section[])
  448. {
  449.     if(readAction == CFG_READ)
  450.     {
  451.         new wep[16], display[32];
  452.  
  453.         parse(line, wep, charsmax(wep), display, charsmax(display));
  454.  
  455.         //Copy weapon into array
  456.         formatex(g_BotPrim[g_iNumBotPrim], charsmax(g_BotPrim[]), "weapon_%s", wep);
  457.  
  458.         g_iNumBotPrim++;
  459.  
  460.     } else if(readAction == CFG_RELOAD) {
  461.         g_iNumBotPrim = 0;
  462.  
  463.     } else if(readAction == CFG_DONE) {
  464.         //Nothing for now
  465.         return PLUGIN_HANDLED;
  466.     }
  467.  
  468.     return PLUGIN_HANDLED;
  469. }
  470.  
  471. public cfgBotSec(readAction, line[], section[])
  472. {
  473.     if(readAction == CFG_READ)
  474.     {
  475.         new wep[16], display[32];
  476.  
  477.         parse(line, wep, charsmax(wep), display, charsmax(display));
  478.  
  479.         //Copy weapon into array
  480.         formatex(g_BotSec[g_iNumBotSec], charsmax(g_BotPrim[]), "weapon_%s", wep);
  481.  
  482.         g_iNumBotSec++;
  483.  
  484.     } else if(readAction == CFG_RELOAD) {
  485.         g_iNumBotSec = 0;
  486.  
  487.     } else if(readAction == CFG_DONE) {
  488.         //Nothing for now
  489.         return PLUGIN_HANDLED;
  490.     }
  491.  
  492.     return PLUGIN_HANDLED;
  493. }
  494.  
  495. public cfgSetting(readAction, line[], section[])
  496. {
  497.     if(readAction == CFG_READ)
  498.     {
  499.         new setting[24], sign[3], value[6];
  500.  
  501.         parse(line, setting, charsmax(setting), sign, charsmax(sign), value, charsmax(value));
  502.  
  503.         // Menus settings
  504.         if(contain(setting,"menus") != -1)
  505.         {
  506.             if(containi(value, "p") != -1)
  507.                 g_mPrimStatus = true;
  508.  
  509.             if(containi(value, "s") != -1)
  510.                 g_mSecStatus = true;
  511.  
  512.             if(containi(value, "a") != -1)
  513.                 g_mArmorStatus = true;
  514.  
  515.             if(containi(value, "g") != -1)
  516.                 g_mNadeStatus = true;
  517.  
  518.             return PLUGIN_HANDLED;
  519.  
  520.         } else if(contain(setting, "autoitems") != -1) {
  521.  
  522.             if(containi(value, "a")  != -1) {
  523.                 //Disable Armor Menu
  524.                 g_mArmorStatus = false;
  525.                 g_mAutoArmor = true;
  526.                 g_Armor = 1;
  527.             }
  528.  
  529.             if(containi(value, "h") != -1) {
  530.                 //Disable Armor Menu
  531.                 g_mArmorStatus = false;
  532.                 g_mAutoArmor = true;
  533.                 g_Armor = 2;
  534.             }
  535.  
  536.             if(containi(value, "g") != -1) {
  537.                 //Disable Grenade Menu
  538.                 g_mNadeStatus = false;
  539.                 g_mAutoNades = true;
  540.             }
  541.  
  542.             if(containi(value, "d") != -1)
  543.                 g_DefuseKit = true;
  544.  
  545.             if(containi(value, "n") != -1)
  546.                 g_NightVision = true;
  547.  
  548.             return PLUGIN_HANDLED;
  549.  
  550.         } else if(contain(setting, "grenades") != -1) {
  551.  
  552.             if(containi(value, "f") != -1)
  553.                 g_Flash = true;
  554.  
  555.             if(containi(value, "h") != -1)
  556.                 g_Nade = true;
  557.  
  558.             if (containi(value, "s") != -1)
  559.                 g_Smoke = true;
  560.  
  561.         } else if(contain(setting, "fnadesnum") != -1) {
  562.             fnadesnum = str_to_num(value);
  563.  
  564.         } else if(contain(setting, "always_allow_gunmenu") != -1) {
  565.             g_AlwaysAllowGunMenu = str_to_num(value)? true : false;
  566.         }
  567.  
  568.         return PLUGIN_HANDLED;
  569.  
  570.     } else if(readAction == CFG_RELOAD) {
  571.         g_mArmorStatus = false;
  572.         g_mNadeStatus = false;
  573.         g_Flash = false;
  574.         g_Nade = false;
  575.         g_Smoke = false;
  576.         g_Armor = 0;
  577.         g_mSecStatus = false;
  578.         g_mPrimStatus = false;
  579.         g_mAutoNades = false;
  580.         g_DefuseKit = false;
  581.         g_NightVision = false;
  582.         fnadesnum = 1;
  583.  
  584.     } else if(readAction == CFG_DONE) {
  585.         //Nothing for now
  586.         return PLUGIN_HANDLED;
  587.     }
  588.  
  589.     return PLUGIN_HANDLED;
  590. }
  591.  
  592. public cfgrestricts(readAction, line[], section[])
  593. {
  594.     if(readAction == CFG_READ)
  595.     {
  596.         new itemname[24], value[32], limit;
  597.         parse(line, itemname, charsmax(itemname), value, charsmax(value));
  598.  
  599.         limit = 0;
  600.  
  601.         if(value[0] != '0')
  602.             limit = str_to_num(value);
  603.  
  604.         new weapname[24], weaptype;
  605.  
  606.         formatex(weapname, charsmax(weapname), "weapon_%s", itemname);
  607.  
  608.         weaptype = getWeapId(weapname);
  609.  
  610.         // weaptype = get_weaponid(weapname) // why this crap doesn't work here but works correctly during the game ?!?
  611.         // log_amx("[DEBUG] CSDM - reading restrictions, weapon %s (weaptype = %d).", itemname, weaptype)
  612.  
  613.         if(weaptype != 0) {
  614.             IsRestricted[weaptype] = true;
  615.             RestrictWps[weaptype] = limit;
  616.         }
  617.  
  618.         // log_amx("[DEBUG] CSDM - reading restrictions, restricted %s (weaptype = %d) = %d", itemname, weaptype, limit)
  619.     }
  620.     else if(readAction == CFG_RELOAD)
  621.     {
  622.         // Reset all restrictions
  623.         arrayset(IsRestricted, false, ITEMTYPES_NUM);
  624.         arrayset(RestrictWps, 32, ITEMTYPES_NUM);
  625.         return PLUGIN_HANDLED;
  626.     }
  627.     else if(readAction == CFG_DONE)
  628.     {
  629.         //Nothing for now
  630.         return PLUGIN_HANDLED;
  631.     }
  632.  
  633.     return PLUGIN_HANDLED;
  634. }
  635.  
  636. public cfgMainSettings(readAction, line[], section[])
  637. {
  638.     if(readAction == CFG_READ)
  639.     {
  640.         new setting[24], sign[3], value[32];
  641.  
  642.         parse(line, setting, charsmax(setting), sign, charsmax(sign), value, charsmax(value));
  643.  
  644.         if(equali(setting, "weapons_stay")) {
  645.             g_WeaponStayTime = str_to_num(value);
  646.         }
  647.     }
  648. }
  649.  
  650. public cfgMiscSettings(readAction, line[], section[])
  651. {
  652.     if(readAction == CFG_READ)
  653.     {
  654.         new setting[24], sign[3], value[32];
  655.  
  656.         parse(line, setting, charsmax(setting), sign, charsmax(sign), value, charsmax(value));
  657.  
  658.         if(equali(setting, "ammo_refill")) {
  659.             g_AmmoRefill = str_to_num(value) ? true : false;
  660.         }
  661.  
  662.     } else if(readAction == CFG_RELOAD) {
  663.         g_AmmoRefill = true;
  664.     }
  665. }
  666.  
  667. //Equipment Menu callback
  668. public c_Equip(id, menu, item)
  669. {
  670.     if(item < 0)
  671.         return PLUGIN_CONTINUE;
  672.  
  673.     new cmd[6], iName[64], access, callback;
  674.  
  675.     menu_item_getinfo(menu, item, access, cmd, charsmax(cmd), iName, charsmax(iName), callback);
  676.  
  677.     new weapon_s, weapon_p;
  678.     weapon_s = get_weaponid(g_SecWeapons[id]);
  679.     weapon_p = get_weaponid(g_PrimWeapons[id]);
  680.  
  681.     if(weapon_s == 0 && g_mSecStatus
  682.         || weapon_p == 0 && g_mPrimStatus
  683.         || IsRestricted[weapon_s]
  684.         || IsRestricted[weapon_p]) {
  685.             return ITEM_DISABLED;
  686.     }
  687.  
  688.     return ITEM_ENABLED;
  689. }
  690.  
  691. //Secondary Weapon Callback
  692. public c_Secondary(id, menu, item)
  693. {
  694.     if(item < 0)
  695.         return PLUGIN_CONTINUE;
  696.  
  697.     new cmd[6], iName[64], access, callback;
  698.  
  699.     menu_item_getinfo(menu, item, access, cmd, charsmax(cmd), iName, charsmax(iName), callback);
  700.  
  701.     new dis = str_to_num(cmd);
  702.     new team = _:cs_get_user_team(id);
  703.     new weaptype = get_weaponid(g_Secondary[dis]);
  704.  
  705.     //Check to see if item is disabled
  706.     if(g_DisabledSec[dis]) {
  707.         return ITEM_DISABLED;
  708.  
  709.     } else if(!IsRestricted[weaptype]) {
  710.         return ITEM_ENABLED;
  711.  
  712.     } else if(UsedWpsT[weaptype] < RestrictWps[weaptype] && team == _TEAM_T
  713.         || UsedWpsCT[weaptype] < RestrictWps[weaptype] && team == _TEAM_CT) {
  714.         return ITEM_ENABLED;
  715.     }
  716.  
  717.     return ITEM_DISABLED;
  718. }
  719.  
  720. //Primary Weapon Callback
  721. public c_Primary(id, menu, item)
  722. {
  723.     if(item < 0)
  724.         return PLUGIN_CONTINUE;
  725.  
  726.     // Get item info
  727.     new cmd[6], iName[64], access, callback;
  728.  
  729.     menu_item_getinfo(menu, item, access, cmd, charsmax(cmd), iName, charsmax(iName), callback);
  730.  
  731.     new dis = str_to_num(cmd);
  732.     new team = _:cs_get_user_team(id);
  733.     new weaptype = get_weaponid(g_Primary[dis]);
  734.  
  735.     //Check to see if item is disabled
  736.     if(g_DisabledPrim[dis]) {
  737.         return ITEM_DISABLED;
  738.  
  739.     } else if(!IsRestricted[weaptype]) {
  740.         return ITEM_ENABLED;
  741.  
  742.     } else if(UsedWpsT[weaptype] < RestrictWps[weaptype] && team == _TEAM_T
  743.         || UsedWpsCT[weaptype] < RestrictWps[weaptype] && team == _TEAM_CT) {
  744.             return ITEM_ENABLED;
  745.     }
  746.  
  747.     return ITEM_DISABLED;
  748. }
  749.  
  750. //Equipment Menu handler
  751. public m_EquipHandler(id, menu, item)
  752. {
  753.     if(item < 0)
  754.         return PLUGIN_CONTINUE;
  755.  
  756.     // Get item info
  757.     new cmd[2], iName[64], access, callback;
  758.  
  759.     menu_item_getinfo(menu, item, access, cmd, charsmax(cmd), iName, charsmax(iName), callback);
  760.  
  761.     switch(str_to_num(cmd))
  762.     {
  763.         case 1:
  764.         {
  765.             if(g_mSecStatus)
  766.                 menu_display(id, g_SecMenuID, 0);
  767.  
  768.             else if(g_mPrimStatus)
  769.                 menu_display(id, g_PrimMenuID, 0);
  770.  
  771.             else if(g_mArmorStatus)
  772.                 menu_display(id, g_ArmorMenuID, 0);
  773.  
  774.             else if(g_mNadeStatus)
  775.             {
  776.                 if(g_mAutoArmor)
  777.                     equipUser(id, EQUIP_ARMOR);
  778.  
  779.                 menu_display(id, g_NadeMenuID, 0);
  780.  
  781.             } else {
  782.                 if(g_mAutoArmor)
  783.                     equipUser(id, EQUIP_ARMOR);
  784.  
  785.                 if(g_mAutoNades)
  786.                     equipUser(id, EQUIP_GREN);
  787.  
  788.                 equipUser(id, EQUIP_ITEMS);
  789.             }
  790.         }
  791.         case 2:
  792.         {
  793.             // Equip person with last settings
  794.             equipUser(id, EQUIP_ALL);
  795.         }
  796.         case 3:
  797.         {
  798.             g_mShowuser[id] = false;
  799.             client_print(id, print_chat, "");
  800.             equipUser(id, EQUIP_ALL);
  801.         }
  802.     }
  803.  
  804.     return PLUGIN_HANDLED;
  805. }
  806.  
  807. //Secondary Weapon Menu handler
  808. public m_SecHandler(id, menu, item)
  809. {
  810.     if(!is_user_connected(id))
  811.         return PLUGIN_HANDLED;
  812.  
  813.     // Get item info
  814.     new cmd[6], iName[64], access, callback;
  815.  
  816.     menu_item_getinfo(menu, item, access, cmd, charsmax(cmd), iName, charsmax(iName), callback);
  817.  
  818.     new wep = str_to_num(cmd);
  819.  
  820.     new team = _:cs_get_user_team(id);
  821.     new weaptype = get_weaponid(g_Secondary[wep]);
  822.  
  823.     if((UsedWpsT[weaptype] < RestrictWps[weaptype] && team == _TEAM_T
  824.         || UsedWpsCT[weaptype] < RestrictWps[weaptype] && team == _TEAM_CT)
  825.         && !g_DisabledSec[wep])
  826.     {
  827.         copy(g_SecWeapons[id],17,g_Secondary[wep]);
  828.         equipUser(id, EQUIP_SEC);
  829.  
  830.     } else if(g_mSecStatus) {
  831.         menu_display(id, g_SecMenuID, 0);
  832.         return PLUGIN_HANDLED;
  833.     }
  834.  
  835.     // Show next menu here
  836.  
  837.     if(g_mPrimStatus)
  838.         menu_display(id, g_PrimMenuID, 0);
  839.  
  840.     else if(g_mArmorStatus)
  841.         menu_display(id, g_ArmorMenuID, 0);
  842.  
  843.     else if(g_mNadeStatus)
  844.     {
  845.         if (g_mAutoArmor)
  846.             equipUser(id, EQUIP_ARMOR);
  847.  
  848.         menu_display(id, g_NadeMenuID, 0);
  849.  
  850.     } else {
  851.         if (g_mAutoArmor)
  852.             equipUser(id, EQUIP_ARMOR);
  853.  
  854.         if (g_mAutoNades)
  855.             equipUser(id, EQUIP_GREN);
  856.  
  857.         equipUser(id, EQUIP_ITEMS);
  858.     }
  859.  
  860.     return PLUGIN_HANDLED;
  861. }
  862.  
  863. //Primary Weapon Menu handler
  864. public m_PrimHandler(id, menu, item)
  865. {
  866.     if (item < 0)
  867.         return PLUGIN_HANDLED;
  868.  
  869.     // Get item info
  870.     new cmd[6], iName[64], access, callback;
  871.  
  872.     if(menu_item_getinfo(menu, item, access, cmd, charsmax(cmd), iName, charsmax(iName), callback))
  873.     {
  874.         new wep = str_to_num(cmd);
  875.         new team = _:cs_get_user_team(id);
  876.         new weaptype = get_weaponid(g_Primary[wep]);
  877.  
  878.         if((UsedWpsT[weaptype] < RestrictWps[weaptype] && team == _TEAM_T
  879.             || UsedWpsCT[weaptype] < RestrictWps[weaptype] && team == _TEAM_CT)
  880.             && !g_DisabledPrim[wep])
  881.         {
  882.             copy(g_PrimWeapons[id], charsmax(g_PrimWeapons[]), g_Primary[wep]);
  883.             equipUser(id, EQUIP_PRI);
  884.  
  885.         } else if (g_mPrimStatus) {
  886.             menu_display(id, g_PrimMenuID, 0);
  887.             return PLUGIN_HANDLED;
  888.         }
  889.     }
  890.  
  891.     // Show next menu here
  892.     if(g_mArmorStatus) {
  893.         menu_display(id, g_ArmorMenuID, 0);
  894.     }
  895.     else if(g_mNadeStatus)
  896.     {
  897.         if(g_mAutoArmor)
  898.             equipUser(id, EQUIP_ARMOR);
  899.  
  900.         menu_display(id, g_NadeMenuID, 0);
  901.  
  902.     } else {
  903.         if (g_mAutoArmor)
  904.             equipUser(id, EQUIP_ARMOR);
  905.  
  906.         if (g_mAutoNades)
  907.             equipUser(id, EQUIP_GREN);
  908.  
  909.         equipUser(id, EQUIP_ITEMS);
  910.     }
  911.  
  912.     return PLUGIN_HANDLED;
  913. }
  914.  
  915. //Armor Menu handler
  916. public m_ArmorHandler(id, menu, item)
  917. {
  918.     if(item < 0)
  919.         return PLUGIN_CONTINUE;
  920.  
  921.     // Get item info
  922.     new cmd[6], iName[64], access, callback;
  923.  
  924.     menu_item_getinfo(menu, item, access, cmd, charsmax(cmd), iName, charsmax(iName), callback);
  925.  
  926.     new choice = str_to_num(cmd);
  927.  
  928.     if(choice == 1) {
  929.         g_mArmor[id] = true;
  930.     } else if (choice == 2) {
  931.         g_mArmor[id] = false;
  932.     }
  933.  
  934.     equipUser(id, EQUIP_ARMOR);
  935.  
  936.     // Show next menu here
  937.  
  938.     if(g_mNadeStatus) {
  939.         menu_display(id, g_NadeMenuID, 0);
  940.     } else {
  941.         if (g_mAutoNades)
  942.             equipUser(id, EQUIP_GREN);
  943.  
  944.         equipUser(id, EQUIP_ITEMS);
  945.     }
  946.  
  947.     return PLUGIN_HANDLED;
  948. }
  949.  
  950. //Nade Menu handler
  951. public m_NadeHandler(id, menu, item)
  952. {
  953.     if (item < 0)
  954.         return PLUGIN_CONTINUE;
  955.  
  956.     new cmd[6], iName[64], access, callback;
  957.  
  958.     menu_item_getinfo(menu, item, access, cmd, charsmax(cmd), iName, charsmax(iName), callback);
  959.  
  960.     new choice = str_to_num(cmd);
  961.  
  962.     if (choice == 1) {
  963.         g_mNades[id] = true;
  964.     } else if (choice == 2) {
  965.         g_mNades[id] = false;
  966.     }
  967.  
  968.     equipUser(id, EQUIP_GREN);
  969.     equipUser(id, EQUIP_ITEMS);
  970.  
  971.     return PLUGIN_HANDLED;
  972. }
  973.  
  974. buildMenu()
  975. {
  976.     //Equip Menu
  977.     menu_additem(g_EquipMenuID, "New Weapons", "1", 0, -1);
  978.     menu_additem(g_EquipMenuID, "Previous Setup", "2", 0, g_cEquip);
  979.     menu_additem(g_EquipMenuID, "Previous Setup + Don't show menu again", "3", 0, g_cEquip);
  980.     menu_setprop(g_EquipMenuID, MPROP_EXIT, MEXIT_NEVER);
  981.  
  982.     //Armor Menu
  983.     menu_additem(g_ArmorMenuID, "Yes, armor up", "1", 0, -1);
  984.     menu_additem(g_ArmorMenuID, "No Armor", "2", 0, -1);
  985.     menu_setprop(g_ArmorMenuID, MPROP_EXIT, MEXIT_NEVER);
  986.  
  987.     //Nade Menu
  988.     menu_additem(g_NadeMenuID, "All Grenades", "1", 0, -1);
  989.     menu_additem(g_NadeMenuID, "No Grenades", "2", 0, -1);
  990.     menu_setprop(g_NadeMenuID, MPROP_EXIT, MEXIT_NEVER);
  991.  
  992.     return PLUGIN_HANDLED;
  993. }
  994.  
  995. equipUser(id, to)
  996. {
  997.     if(!is_user_alive(id)) return;
  998.  
  999.     new weaptype;
  1000.     new team = _:cs_get_user_team(id);
  1001.  
  1002.     if((to & EQUIP_SEC) && get_weaponid(g_SecWeapons[id])) {
  1003.  
  1004.         //Give Secondary
  1005.         GiveUserFullWeapon(id, g_SecWeapons[id]);
  1006.     }
  1007.  
  1008.     if((to & EQUIP_PRI) && get_weaponid(g_PrimWeapons[id])) {
  1009.  
  1010.         //Give Primary
  1011.         GiveUserFullWeapon(id, g_PrimWeapons[id]);
  1012.     }
  1013.  
  1014.     if(to & EQUIP_ARMOR)
  1015.     {
  1016.         //Give Armor
  1017.         if(g_mAutoArmor || g_mArmor[id]) {
  1018.             new armor = g_mArmor[id] ? 2 : g_Armor;
  1019.             cs_set_user_armor(id, DEFAULT_ARMOR, CsArmorType:armor);
  1020.         }
  1021.     }
  1022.  
  1023.     if(to & EQUIP_GREN)
  1024.     {
  1025.         //Give Nades
  1026.         if(g_mNades[id] || g_mAutoNades)
  1027.         {
  1028.             if(g_Nade)
  1029.             {
  1030.  
  1031.                 weaptype = get_weaponid("weapon_hegrenade");
  1032.  
  1033.                 if(IsRestricted[weaptype])
  1034.                 {
  1035.  
  1036.                     if(UsedWpsT[weaptype] < RestrictWps[weaptype] && team == _TEAM_T) {
  1037.                         UsedWpsT[weaptype]++;
  1038.                         GiveUserFullWeapon(id,"weapon_hegrenade");
  1039.                     }
  1040.  
  1041.                     if(UsedWpsCT[weaptype] < RestrictWps[weaptype] && team == _TEAM_CT) {
  1042.                         UsedWpsCT[weaptype]++;
  1043.                         GiveUserFullWeapon(id,"weapon_hegrenade");
  1044.                     }
  1045.  
  1046.                 } else {
  1047.                     GiveUserFullWeapon(id,"weapon_hegrenade");
  1048.                 }
  1049.             }
  1050.  
  1051.             if(g_Smoke)
  1052.             {
  1053.                 weaptype = get_weaponid("weapon_smokegrenade");
  1054.  
  1055.                 if(IsRestricted[weaptype])
  1056.                 {
  1057.  
  1058.                     if(UsedWpsT[weaptype] < RestrictWps[weaptype] && team == _TEAM_T) {
  1059.                         UsedWpsT[weaptype]++;
  1060.                         GiveUserFullWeapon(id,"weapon_smokegrenade");
  1061.                     }
  1062.  
  1063.                     if(UsedWpsCT[weaptype] < RestrictWps[weaptype] && team == _TEAM_CT) {
  1064.                         UsedWpsCT[weaptype]++;
  1065.                         GiveUserFullWeapon(id,"weapon_smokegrenade");
  1066.                     }
  1067.  
  1068.                 } else {
  1069.                     GiveUserFullWeapon(id, "weapon_smokegrenade");
  1070.                 }
  1071.             }
  1072.  
  1073.             if(g_Flash && fnadesnum)
  1074.             {
  1075.  
  1076.                 weaptype = get_weaponid("weapon_flashbang");
  1077.  
  1078.                 if(IsRestricted[weaptype])
  1079.                 {
  1080.  
  1081.                     if(UsedWpsT[weaptype] < RestrictWps[weaptype] && team == _TEAM_T) {
  1082.                         UsedWpsT[weaptype]++;
  1083.                         GiveUserFullWeapon(id, "weapon_flashbang");
  1084.                     }
  1085.  
  1086.                     if(UsedWpsCT[weaptype] < RestrictWps[weaptype] && team == _TEAM_CT) {
  1087.                         UsedWpsCT[weaptype]++;
  1088.                         GiveUserFullWeapon(id, "weapon_flashbang");
  1089.                     }
  1090.  
  1091.                 } else {
  1092.                     GiveUserFullWeapon(id, "weapon_flashbang");
  1093.                 }
  1094.  
  1095.                 if(fnadesnum == 2)
  1096.                 {
  1097.                     if(IsRestricted[weaptype])
  1098.                     {
  1099.  
  1100.                         if((UsedWpsT[weaptype] < RestrictWps[weaptype]) && (team == _TEAM_T)) {
  1101.                             UsedWpsT[weaptype]++;
  1102.                             GiveUserFullWeapon(id, "weapon_flashbang");
  1103.                         }
  1104.  
  1105.                         if((UsedWpsCT[weaptype] < RestrictWps[weaptype]) && (team == _TEAM_CT)) {
  1106.                             UsedWpsCT[weaptype]++;
  1107.                             GiveUserFullWeapon(id, "weapon_flashbang");
  1108.                         }
  1109.  
  1110.                     } else {
  1111.                         GiveUserFullWeapon(id, "weapon_flashbang");
  1112.                     }
  1113.  
  1114.                 }
  1115.             }
  1116.         }
  1117.     }
  1118.  
  1119.     if (to & EQUIP_ITEMS)
  1120.     {
  1121.         if (g_DefuseKit && (_:cs_get_user_team(id) == _TEAM_CT)) {
  1122.             cs_set_user_defuse(id, 1);
  1123.         }
  1124.  
  1125.         if (g_NightVision) {
  1126.             cs_set_user_nvg(id, 1);
  1127.         }
  1128.     }
  1129. }
  1130.  
  1131. GiveUserFullWeapon(id, const wp[])
  1132. {
  1133.     if(!is_user_connected(id)) return;
  1134.  
  1135.     /** First check to make sure the user does not have a weapon in this slot */
  1136.     new wpnid = get_weaponid(wp);
  1137.     new weapons[MAX_WEAPONS], num, name[24], weap, slot;
  1138.     new team = _:cs_get_user_team(id);
  1139.  
  1140.     if(wpnid == 0)
  1141.     {
  1142.         if(equal(wp, "weapon_shield")) {
  1143.             slot = SLOT_PRIMARY;
  1144.             wpnid = -1;
  1145.         }
  1146.  
  1147.     } else {
  1148.         slot = g_WeaponSlots[wpnid];
  1149.     }
  1150.  
  1151.     if((slot == SLOT_SECONDARY || slot == SLOT_PRIMARY) && wpnid > 0)
  1152.     {
  1153.         get_user_weapons(id, weapons, num);
  1154.  
  1155.         for (new i = 0; i < num; i++)
  1156.         {
  1157.             weap = weapons[i];
  1158.  
  1159.             if(weap == wpnid)
  1160.                 continue;
  1161.  
  1162.             if(g_WeaponSlots[weap] == slot)
  1163.             {
  1164.                 if(slot == SLOT_SECONDARY && cs_get_user_shield(id)) {
  1165.                     //temporary fix!
  1166.                     drop_with_shield(id, weap);
  1167.  
  1168.                 } else {
  1169.                     get_weaponname(weap, name, charsmax(name));
  1170.                     csdm_force_drop(id, name);
  1171.                 }
  1172.             }
  1173.         }
  1174.  
  1175.     } else if(slot == SLOT_PRIMARY && wpnid == -1 && cs_get_user_shield(id)) {
  1176.         return;
  1177.     }
  1178.  
  1179.     if(slot == SLOT_PRIMARY && cs_get_user_shield(id) && wpnid > 0) {
  1180.         csdm_fwd_drop(id, -1, "weapon_shield");
  1181.     }
  1182.  
  1183.     new item_id = csdm_give_item(id, wp);
  1184.  
  1185.     if(item_id > 0)
  1186.     {
  1187.         if (wpnid == CSW_M4A1) {
  1188.             cs_set_weapon_silen(item_id, g_Silenced[id][SILENCED_M4A1], 1);
  1189.         } else if (wpnid == CSW_USP) {
  1190.             cs_set_weapon_silen(item_id, g_Silenced[id][SILENCED_USP], 1);
  1191.         }
  1192.     }
  1193.  
  1194.     if(wpnid > 0)
  1195.     {
  1196.         new bpammo = g_MaxBPAmmo[wpnid];
  1197.  
  1198.         if(bpammo)
  1199.             cs_set_user_bpammo(id, wpnid, bpammo);
  1200.  
  1201.         if (IsRestricted[wpnid])
  1202.         {
  1203.             if ((UsedWpsT[wpnid] < RestrictWps[wpnid]) && (team == _TEAM_T)) {
  1204.                 UsedWpsT[wpnid]++;
  1205.             }
  1206.  
  1207.             if ((UsedWpsCT[wpnid] < RestrictWps[wpnid]) && (team == _TEAM_CT)) {
  1208.                 UsedWpsCT[wpnid]++;
  1209.             }
  1210.         }
  1211.     }
  1212. }
  1213.  
  1214. // MAIN FUNCTION OF THE PLUGIN
  1215. public csdm_PostSpawn(player)
  1216. {
  1217.     if(pv_csdm_additems)
  1218.     {
  1219.         if(get_pcvar_num(pv_csdm_additems)) {
  1220.             return PLUGIN_CONTINUE;
  1221.         }
  1222.     }
  1223.  
  1224.     g_Teamuser[player] = _:cs_get_user_team(player);
  1225.  
  1226.     if(is_user_bot(player))
  1227.     {
  1228.         new i, weapon_p, weapon_s;
  1229.         new randPrim = random_num(0, g_iNumBotPrim-1);
  1230.         new randSec = random_num(0, g_iNumBotSec-1);
  1231.  
  1232.         weapon_p = get_weaponid(g_BotPrim[randPrim]);
  1233.  
  1234.         i = 0;
  1235.  
  1236.         while(i < 10 && IsRestricted[weapon_p]
  1237.             && (UsedWpsT[weapon_p] >= RestrictWps[weapon_p] && g_Teamuser[player] == _TEAM_T
  1238.             || UsedWpsCT[weapon_p] >= RestrictWps[weapon_p] && g_Teamuser[player] == _TEAM_CT))
  1239.         {
  1240.             randPrim++;
  1241.  
  1242.             if(randPrim >= g_iNumBotPrim)
  1243.                 randPrim = 0;
  1244.  
  1245.             weapon_p = get_weaponid(g_BotPrim[randPrim]);
  1246.  
  1247.             i++;
  1248.         }
  1249.  
  1250.         weapon_s = get_weaponid(g_BotSec[randSec]);
  1251.  
  1252.         i = 0;
  1253.  
  1254.         while(i < 10 && IsRestricted[weapon_s]
  1255.             && (UsedWpsT[weapon_s] >= RestrictWps[weapon_s] && g_Teamuser[player] == _TEAM_T
  1256.             || UsedWpsCT[weapon_s] >= RestrictWps[weapon_s] && g_Teamuser[player] == _TEAM_CT))
  1257.         {
  1258.             randSec++;
  1259.  
  1260.             if(randSec >= g_iNumBotSec)
  1261.                 randSec = 0;
  1262.  
  1263.             weapon_s = get_weaponid(g_BotSec[randSec]);
  1264.  
  1265.             i++;
  1266.         }
  1267.  
  1268.         new randArm = random_num(0, 2);
  1269.         new randGre = random_num(0, 2);
  1270.  
  1271.         if(g_mPrimStatus)
  1272.             GiveUserFullWeapon(player, g_BotPrim[randPrim]);
  1273.  
  1274.         if(g_mSecStatus)
  1275.             GiveUserFullWeapon(player, g_BotSec[randSec]);
  1276.  
  1277.         g_mArmor[player] = (g_mArmorStatus && randArm);
  1278.         g_mNades[player] = (g_mNadeStatus && randGre);
  1279.  
  1280.         if(g_mAutoArmor || g_mArmor[player])
  1281.             equipUser(player, EQUIP_ARMOR);
  1282.  
  1283.         if(g_mAutoNades || g_mNades[player])
  1284.             equipUser(player, EQUIP_GREN);
  1285.  
  1286.         if (g_DefuseKit)
  1287.             equipUser(player, EQUIP_ITEMS);
  1288.  
  1289.     } else {
  1290.  
  1291.         if(g_mShowuser[player])
  1292.         {
  1293.             new oldmenuid, newmenuid;
  1294.             new bool:bEquipMenuDisp = false;
  1295.  
  1296.             player_menu_info(player, oldmenuid, newmenuid); // main thing to prevent overwrite some menu by gun menu
  1297.  
  1298.             if(newmenuid != -1 && (newmenuid == g_SecMenuID || newmenuid == g_PrimMenuID
  1299.                 || newmenuid == g_ArmorMenuID || newmenuid == g_EquipMenuID))
  1300.             {
  1301.                 bEquipMenuDisp = true;
  1302.             }
  1303.  
  1304.             if(bEquipMenuDisp || oldmenuid <= 0 || g_maxdelmenutime == 0)
  1305.             {
  1306.                 g_MenuState[player] = 1;
  1307.                 menu_display(player, g_EquipMenuID, 0);
  1308.  
  1309.             } else {
  1310.  
  1311.                 new param[1];
  1312.                 param[0] = player;
  1313.  
  1314.                 if(g_maxdelmenutime > 0)
  1315.                     set_task(1.0, "checkmenu", 850 + player, param, 1, "b");
  1316.  
  1317.                 set_task(g_maxdelmenutime, "menu_delayed", 700 + player, param, 1);
  1318.             }
  1319.  
  1320.         } else {
  1321.             g_MenuState[player] = 0;
  1322.             set_task(0.2, "delay_equip", player);
  1323.             // equipUser(player, EQUIP_ALL)
  1324.         }
  1325.     }
  1326.  
  1327.     return PLUGIN_CONTINUE;
  1328. }
  1329.  
  1330. public delay_equip(id)
  1331. {
  1332.     if(is_user_connected(id))
  1333.         equipUser(id, EQUIP_ALL);
  1334. }
  1335.  
  1336. public enableMenu(id)
  1337. {
  1338.     if(!csdm_active())
  1339.         return PLUGIN_CONTINUE;
  1340.  
  1341.     if(!g_mShowuser[id])
  1342.     {
  1343.         g_mShowuser[id] = true;
  1344.         client_print(id, print_chat, "[CSDM] Your equip menu has been re-enabled.");
  1345.  
  1346.         if(!g_MenuState[id]) {
  1347.             g_MenuState[id] = 1;
  1348.             menu_display(id, g_EquipMenuID, 0);
  1349.         }
  1350.  
  1351.     } else if(!g_AlwaysAllowGunMenu || !g_AmmoRefill || (g_WeaponStayTime > 5)) {
  1352.  
  1353.         if(!g_AlwaysAllowGunMenu)
  1354.             client_print(id, print_chat, "[CSDM] Your equip menu is already enabled - You should have a gun already.");
  1355.  
  1356.         else if(!g_AmmoRefill)
  1357.             client_print(id, print_chat, "[CSDM] You cannot use guns menu when You have a gun already and ammorefill is disabled.");
  1358.  
  1359.         else if(g_WeaponStayTime > 5)
  1360.             client_print(id, print_chat, "[CSDM] You cannot use guns menu when You have a gun already and weapon_stay time is too long.");
  1361.    
  1362.     } else {
  1363.         g_MenuState[id] = 1;
  1364.         menu_display(id, g_EquipMenuID, 0);
  1365.     }
  1366.  
  1367.     return PLUGIN_HANDLED;
  1368. }
  1369.  
  1370. public checkmenu(param[])
  1371. {
  1372.     new id = param[0];
  1373.  
  1374.     if(!id)
  1375.     {
  1376.         if(task_exists(850 + id)) {
  1377.             remove_task(850 + id);
  1378.         }
  1379.  
  1380.         return PLUGIN_CONTINUE;
  1381.     }
  1382.  
  1383.     if(!is_user_connected(id))
  1384.     {
  1385.         if (task_exists(850 + id)) {
  1386.             remove_task(850 + id);
  1387.         }
  1388.  
  1389.         return PLUGIN_CONTINUE;
  1390.     }
  1391.  
  1392.     new oldmenuid, newmenuid;
  1393.     new bool:bEquipMenuDisp = false;
  1394.  
  1395.     player_menu_info(id, oldmenuid, newmenuid);
  1396.  
  1397.     if(newmenuid != -1 && (newmenuid == g_SecMenuID || newmenuid == g_PrimMenuID
  1398.         || newmenuid == g_ArmorMenuID || newmenuid == g_EquipMenuID))
  1399.     {
  1400.         bEquipMenuDisp = true;
  1401.     }
  1402.  
  1403.     if((oldmenuid <= 0) || (bEquipMenuDisp))
  1404.     {
  1405.         g_MenuState[id] = 1;
  1406.         menu_display(id, g_EquipMenuID, 0);
  1407.  
  1408.         if (task_exists(850+id))
  1409.             remove_task(850+id);
  1410.  
  1411.         if (task_exists(700+id))
  1412.             remove_task(700+id);
  1413.     }  
  1414.  
  1415.     return PLUGIN_CONTINUE;
  1416. }
  1417.  
  1418. public menu_delayed(param[])
  1419. {
  1420.     new id = param[0];
  1421.  
  1422.     if (!id)
  1423.     {
  1424.         if (task_exists(700 + id)) {
  1425.             remove_task(700 + id);
  1426.         }
  1427.  
  1428.         return PLUGIN_HANDLED;
  1429.     }
  1430.  
  1431.     if(!is_user_connected(id))
  1432.     {
  1433.  
  1434.         if (task_exists(850 + id)) {
  1435.             remove_task(850 + id);
  1436.         }
  1437.  
  1438.         return PLUGIN_HANDLED;
  1439.     }
  1440.  
  1441.     g_MenuState[id] = 1;
  1442.     menu_display(id, g_EquipMenuID, 0);
  1443.  
  1444.     if (task_exists(700 + id))
  1445.         remove_task(700 + id);
  1446.  
  1447.     if (task_exists(850 + id))
  1448.         remove_task(850 + id);
  1449.  
  1450.     return PLUGIN_CONTINUE;
  1451. }
  1452.  
  1453. stock getWeapId(wp[]) // this one is used, because get_weaponid doesn't work when csdm_CfgInit is called (something wrong with core intitialisation?
  1454. {
  1455.     if(equal(wp, "weapon_p228")) return CSW_P228;
  1456.     else if(equal(wp, "weapon_scout")) return CSW_SCOUT;
  1457.     else if(equal(wp, "weapon_hegrenade")) return CSW_HEGRENADE;
  1458.     else if(equal(wp, "weapon_xm1014")) return CSW_XM1014;
  1459.     else if(equal(wp, "weapon_c4")) return CSW_C4;
  1460.     else if(equal(wp, "weapon_mac10")) return CSW_MAC10;
  1461.     else if(equal(wp, "weapon_aug")) return CSW_AUG;
  1462.     else if(equal(wp, "weapon_smokegrenade")) return CSW_SMOKEGRENADE;
  1463.     else if(equal(wp, "weapon_elite")) return CSW_ELITE;
  1464.     else if(equal(wp, "weapon_fiveseven")) return CSW_FIVESEVEN;
  1465.     else if(equal(wp, "weapon_ump45")) return CSW_UMP45;
  1466.     else if(equal(wp, "weapon_sg550")) return CSW_SG550;
  1467.     else if(equal(wp, "weapon_galil")) return CSW_GALIL;
  1468.     else if(equal(wp, "weapon_famas")) return CSW_FAMAS;
  1469.     else if(equal(wp, "weapon_usp")) return CSW_USP;
  1470.     else if(equal(wp, "weapon_glock18")) return CSW_GLOCK18;
  1471.     else if(equal(wp, "weapon_awp")) return CSW_AWP;
  1472.     else if(equal(wp, "weapon_mp5navy")) return CSW_MP5NAVY;
  1473.     else if(equal(wp, "weapon_m249")) return CSW_M249;
  1474.     else if(equal(wp, "weapon_m3")) return CSW_M3;
  1475.     else if(equal(wp, "weapon_m4a1")) return CSW_M4A1;
  1476.     else if(equal(wp, "weapon_tmp")) return CSW_TMP;
  1477.     else if(equal(wp, "weapon_g3sg1")) return CSW_G3SG1;
  1478.     else if(equal(wp, "weapon_flashbang")) return CSW_FLASHBANG;
  1479.     else if(equal(wp, "weapon_deagle")) return CSW_DEAGLE;
  1480.     else if(equal(wp, "weapon_sg552")) return CSW_SG552;
  1481.     else if(equal(wp, "weapon_ak47")) return CSW_AK47;
  1482.     else if(equal(wp, "weapon_knife")) return CSW_KNIFE;
  1483.     else if(equal(wp, "weapon_p90")) return CSW_P90;
  1484.  
  1485.     return PLUGIN_CONTINUE;
  1486. }
  1487.  
  1488. // stuff for settings menu - START
  1489. public csdm_equip_sett_menu(id, level, cid)
  1490. {
  1491.     if(!cmd_access(id, level, cid, 1))
  1492.         return PLUGIN_HANDLED;
  1493.  
  1494.     menu_display(id, g_EquipSettMenu, 0);
  1495.  
  1496.     return PLUGIN_HANDLED;
  1497. }
  1498.  
  1499. public use_csdm_equip_menu(id, menu, item)
  1500. {
  1501.     if(item < 0)
  1502.         return PLUGIN_CONTINUE;
  1503.  
  1504.     new command[6], paccess, call;
  1505.  
  1506.     if(!menu_item_getinfo(g_EquipSettMenu, item, paccess, command, charsmax(command), _, _, call)) {
  1507.         log_amx("Error: csdm_menu_item() failed (menu %d) (page %d) (item %d)", g_EquipSettMenu, 0, item);
  1508.         return PLUGIN_HANDLED;
  1509.     }
  1510.  
  1511.     if(paccess && !(get_user_flags(id) & paccess)) {
  1512.         client_print(id, print_chat, "You do not have access to this menu option.");
  1513.         return PLUGIN_HANDLED;
  1514.     }
  1515.  
  1516.     new iChoice = str_to_num(command);
  1517.  
  1518.     switch(iChoice)
  1519.     {
  1520.         case 1:
  1521.         {
  1522.             g_mPrimStatus = g_mPrimStatus? false : true;
  1523.  
  1524.             client_print(id, print_chat, "CSDM displaying primary gun menu %s.", g_mPrimStatus ? "enabled" : "disabled");
  1525.             log_amx("CSDM displaying primary gun menu %s.", g_mPrimStatus ? "enabled" : "disabled");
  1526.  
  1527.             menu_display(id, g_EquipSettMenu, 0);
  1528.             write_menus_settings(id);
  1529.  
  1530.             return PLUGIN_HANDLED;
  1531.         }
  1532.         case 2:
  1533.         {
  1534.             g_mSecStatus = g_mSecStatus? false : true;
  1535.  
  1536.             client_print(id, print_chat, "CSDM displaying secondary gun menu %s.", g_mSecStatus ? "enabled" : "disabled");
  1537.             log_amx("CSDM displaying secondary gun menu %s.", g_mSecStatus ? "enabled" : "disabled");
  1538.  
  1539.             menu_display(id, g_EquipSettMenu, 0);
  1540.             write_menus_settings(id);
  1541.  
  1542.             return PLUGIN_HANDLED;
  1543.         }
  1544.         case 3:
  1545.         {
  1546.             g_mArmorStatus = g_mArmorStatus? false : true;
  1547.  
  1548.             if(g_mArmorStatus)
  1549.                 g_mAutoArmor = false;
  1550.  
  1551.             client_print(id, print_chat, "CSDM displaying armor menu %s.", g_mArmorStatus ? "enabled" : "disabled");
  1552.             log_amx("CSDM displaying armor menu %s.", g_mArmorStatus ? "enabled" : "disabled");
  1553.  
  1554.             menu_display(id, g_EquipSettMenu, 0);
  1555.             write_menus_settings(id);
  1556.  
  1557.             return PLUGIN_HANDLED;
  1558.         }
  1559.         case 4:
  1560.         {
  1561.             g_mNadeStatus = g_mNadeStatus? false : true;
  1562.  
  1563.             if(g_mNadeStatus)
  1564.                 g_mAutoNades = false;
  1565.  
  1566.             client_print(id, print_chat, "CSDM displaying nades menu %s.", g_mNadeStatus ? "enabled" : "disabled");
  1567.             log_amx("CSDM displaying nades menu %s.", g_mNadeStatus ? "enabled" : "disabled");
  1568.  
  1569.             menu_display(id, g_EquipSettMenu, 0);
  1570.             write_menus_settings(id);
  1571.  
  1572.             return PLUGIN_HANDLED;
  1573.         }
  1574.         case 5:
  1575.         {
  1576.             if(g_Armor == 1 || g_Armor == 2) {
  1577.                 g_Armor = 0;
  1578.                 g_mAutoArmor = false;
  1579.             }
  1580.             else if(g_Armor == 0) {
  1581.                 g_Armor = 1;
  1582.                 g_mAutoArmor = true;
  1583.                 g_mArmorStatus = false;
  1584.             }
  1585.  
  1586.             client_print(id, print_chat, "CSDM auto equiping players with armor %s.", g_mAutoArmor ? "enabled" : "disabled");
  1587.             log_amx("CSDM auto equiping players with armor %s.", g_mAutoArmor ? "enabled" : "disabled");
  1588.  
  1589.             menu_display(id, g_EquipSettMenu, 0);
  1590.             write_autoequip_settings(id);
  1591.  
  1592.             return PLUGIN_HANDLED;
  1593.         }
  1594.         case 6:
  1595.         {
  1596.             if(g_Armor == 0 || g_Armor == 1) {
  1597.                 g_Armor = 2;
  1598.                 g_mAutoArmor = true;
  1599.                 g_mArmorStatus = false;
  1600.             }
  1601.             else if(g_Armor == 2) {
  1602.                 g_Armor = 1;
  1603.                 g_mAutoArmor = true;
  1604.                 g_mArmorStatus = false;
  1605.             }
  1606.  
  1607.             client_print(id, print_chat, "CSDM auto equiping players with helmet %s.", (g_Armor == 2) ? "enabled" : "disabled");
  1608.             log_amx("CSDM auto equiping players with helmet %s.", (g_Armor == 2) ? "enabled" : "disabled");
  1609.  
  1610.             menu_display(id, g_EquipSettMenu, 0);
  1611.             write_autoequip_settings(id);
  1612.  
  1613.             return PLUGIN_HANDLED;
  1614.         }
  1615.         case 7:
  1616.         {
  1617.             g_mAutoNades = g_mAutoNades? false : true;
  1618.  
  1619.             if(g_mAutoNades)
  1620.                 g_mNadeStatus = false;
  1621.  
  1622.             client_print(id, print_chat, "CSDM auto equiping players with grenades %s.", g_mAutoNades ? "enabled" : "disabled");
  1623.             log_amx("CSDM auto equiping players with grenades %s.", g_mAutoNades ? "enabled" : "disabled");
  1624.  
  1625.             menu_display(id, g_EquipSettMenu, 0);
  1626.             write_autoequip_settings(id);
  1627.  
  1628.             return PLUGIN_HANDLED;
  1629.         }
  1630.         case 8:
  1631.         {
  1632.             g_DefuseKit = g_DefuseKit? false : true;
  1633.  
  1634.             client_print(id, print_chat, "CSDM auto equiping players with defuser (CTs) %s.", g_DefuseKit ? "enabled" : "disabled");
  1635.             log_amx("CSDM auto equiping players with defuser (CTs) %s.", g_DefuseKit ? "enabled" : "disabled");
  1636.  
  1637.             menu_display(id, g_EquipSettMenu, 1);
  1638.             write_autoequip_settings(id);
  1639.  
  1640.             return PLUGIN_HANDLED;
  1641.         }
  1642.         case 9:
  1643.         {
  1644.             g_NightVision = g_NightVision? false : true;
  1645.  
  1646.             client_print(id, print_chat, "CSDM auto equiping players with nightvision %s.", g_NightVision ? "enabled" : "disabled");
  1647.             log_amx("CSDM auto equiping players with nightvision %s.", g_NightVision ? "enabled" : "disabled");
  1648.  
  1649.             menu_display(id, g_EquipSettMenu, 1);
  1650.             write_autoequip_settings(id);
  1651.  
  1652.             return PLUGIN_HANDLED;
  1653.         }
  1654.         case 10:
  1655.         {
  1656.             g_Flash = g_Flash? false : true;
  1657.  
  1658.             client_print(id, print_chat, "CSDM usage of flashbangs is %s.", g_Flash ? "enabled" : "disabled");
  1659.             log_amx("CSDM usage of flashbangs is %s.", g_Flash ? "enabled" : "disabled");
  1660.  
  1661.             menu_display(id, g_EquipSettMenu, 1);
  1662.             write_nades_settings(id);
  1663.  
  1664.             return PLUGIN_HANDLED;
  1665.         }
  1666.         case 11:
  1667.         {
  1668.             g_Smoke = g_Smoke? false : true;
  1669.  
  1670.             client_print(id, print_chat, "CSDM usage of smoke grenades is %s.", g_Smoke ? "enabled" : "disabled");
  1671.             log_amx("CSDM usage of smoke grenades is %s.", g_Smoke ? "enabled" : "disabled");
  1672.  
  1673.             menu_display(id, g_EquipSettMenu, 1);
  1674.             write_nades_settings(id);
  1675.  
  1676.             return PLUGIN_HANDLED;
  1677.         }
  1678.         case 12:
  1679.         {
  1680.             g_Nade = g_Nade? false : true;
  1681.  
  1682.             client_print(id, print_chat, "CSDM usage of he nades is %s.", g_Nade ? "enabled" : "disabled");
  1683.             log_amx("CSDM usage of he nades is %s.", g_Nade ? "enabled" : "disabled");
  1684.  
  1685.             menu_display(id, g_EquipSettMenu, 1);
  1686.             write_nades_settings(id);
  1687.  
  1688.             return PLUGIN_HANDLED;
  1689.         }
  1690.         case 13:
  1691.         {
  1692.             g_AlwaysAllowGunMenu = g_AlwaysAllowGunMenu? false : true;
  1693.  
  1694.             client_print(id, print_chat, "CSDM Always Allow Gun Menu is %s.", g_AlwaysAllowGunMenu ? "enabled" : "disabled");
  1695.             log_amx("CSDM Always Allow Gun Menu is %s.", g_AlwaysAllowGunMenu ? "enabled" : "disabled");
  1696.  
  1697.             menu_display(id, g_EquipSettMenu, 1);
  1698.             csdm_write_cfg(id, "equip", "always_allow_gunmenu", g_AlwaysAllowGunMenu ? "1" : "0");
  1699.  
  1700.             return PLUGIN_HANDLED;
  1701.         }
  1702.         case 14:
  1703.         {
  1704.             menu_display(id, g_SettingsMenu, g_PageSettMenu);
  1705.  
  1706.             return PLUGIN_HANDLED;
  1707.         }
  1708.     }
  1709.  
  1710.     return PLUGIN_HANDLED;
  1711. }
  1712.  
  1713. public hook_equip_sett_display(player, menu, item)
  1714. {
  1715.     new paccess, command[24], call;
  1716.  
  1717.     menu_item_getinfo(menu, item, paccess, command, charsmax(command), _, _, call);
  1718.  
  1719.     if (equali(command, "1")) {
  1720.         if (g_mPrimStatus) menu_item_setname(menu, item, "Equip Menu Primary Enabled");
  1721.         else menu_item_setname(menu, item, "Equip Menu Primary Disabled");
  1722.     } else if (equali(command, "2")) {
  1723.         if (g_mSecStatus) menu_item_setname(menu, item, "Equip Menu Secondary Enabled");
  1724.         else menu_item_setname(menu, item, "Equip Menu Secondary Disabled");
  1725.     } else if (equali(command, "3")) {
  1726.         if (g_mArmorStatus) menu_item_setname(menu, item, "Equip Menu Armor Enabled");
  1727.         else menu_item_setname(menu, item, "Equip Menu Armor Disabled");
  1728.     } else if (equali(command, "4")) {
  1729.         if (g_mNadeStatus) menu_item_setname(menu, item, "Equip Menu Grenades Enabled");
  1730.         else menu_item_setname(menu, item, "Equip Menu Grenades Disabled");
  1731.     } else if (equali(command, "5")) {
  1732.         if (g_mAutoArmor) menu_item_setname(menu, item, "Auto equip with Armor Enabled");
  1733.         else menu_item_setname(menu, item, "Auto equip with Armor Disabled");
  1734.     } else if (equali(command, "6")) {
  1735.         if (g_mAutoArmor && g_Armor == 2) menu_item_setname(menu, item, "Auto equip with Helmet Enabled");
  1736.         else menu_item_setname(menu, item, "Auto equip with Helmet Disabled");
  1737.     } else if (equali(command, "7")) {
  1738.         if (g_mAutoNades) menu_item_setname(menu, item, "Auto equip with Grenades Enabled");
  1739.         else menu_item_setname(menu, item, "Auto equip with Grenades Disabled");
  1740.     } else if (equali(command, "8")) {
  1741.         if (g_DefuseKit) menu_item_setname(menu, item, "Auto equip with Defuser Enabled");
  1742.         else menu_item_setname(menu, item, "Auto equip with Defuser Disabled");
  1743.     } else if (equali(command, "9")) {
  1744.         if (g_NightVision) menu_item_setname(menu, item, "Auto equip with Nightvision Enabled");
  1745.         else menu_item_setname(menu, item, "Auto equip with Nightvision Disabled");
  1746.     } else if (equali(command, "10")) {
  1747.         if (g_Flash) menu_item_setname(menu, item, "Flashbang Enabled");
  1748.         else menu_item_setname(menu, item, "Flashbang Disabled");
  1749.     } else if (equali(command, "11")) {
  1750.         if (g_Smoke) menu_item_setname(menu, item, "Smoke grenade Enabled");
  1751.         else menu_item_setname(menu, item, "Smoke grenade Disabled");
  1752.     } else if (equali(command, "12")) {
  1753.         if (g_Nade) menu_item_setname(menu, item, "HE grenade Enabled");
  1754.         else menu_item_setname(menu, item, "HE grenade Disabled");
  1755.     } else if (equali(command, "13")) {
  1756.         if (g_AlwaysAllowGunMenu) menu_item_setname(menu, item, "Always Allow Gun Menu Enabled");
  1757.         else menu_item_setname(menu, item, "Always Allow Gun Menu Disabled");
  1758.     }
  1759. }
  1760.  
  1761. public write_menus_settings(id)
  1762. {
  1763.     new flags[5] = "";
  1764.     new menu_flags = 0;
  1765.  
  1766.     if(g_mPrimStatus)
  1767.         menu_flags |= (1<<0);
  1768.     if(g_mSecStatus)
  1769.         menu_flags |= (1<<1);
  1770.     if(g_mArmorStatus)
  1771.         menu_flags |= (1<<2);
  1772.     if(g_mNadeStatus)
  1773.         menu_flags |= (1<<3);
  1774.  
  1775.     get_flags(menu_flags, flags, charsmax(flags));
  1776.  
  1777.     replace(flags, charsmax(flags), "a", "p");
  1778.     replace(flags, charsmax(flags), "b", "s");
  1779.     replace(flags, charsmax(flags), "c", "a");
  1780.     replace(flags, charsmax(flags), "d", "g");
  1781.  
  1782.     csdm_write_cfg(id, "equip", "menus", flags);
  1783. }
  1784.  
  1785. public write_autoequip_settings(id)
  1786. {
  1787.     new flags[6] = "";
  1788.     new auto_flags = 0;
  1789.  
  1790.     if(g_mAutoArmor)
  1791.         auto_flags |= (1<<0);
  1792.     if(g_mAutoArmor && g_Armor == 2)
  1793.         auto_flags |= (1<<1);
  1794.     if(g_mAutoNades)
  1795.         auto_flags |= (1<<2);
  1796.     if(g_DefuseKit)
  1797.         auto_flags |= (1<<3);
  1798.     if(g_NightVision)
  1799.         auto_flags |= (1<<4);
  1800.  
  1801.     get_flags(auto_flags, flags, charsmax(flags));
  1802.  
  1803.     // replace(flags, charsmax(flags), "a", "a");
  1804.     replace(flags, charsmax(flags), "b", "h");
  1805.     replace(flags, charsmax(flags), "c", "g");
  1806.     // replace(flags, charsmax(flags), "d", "d");
  1807.     replace(flags, charsmax(flags), "e", "n");
  1808.  
  1809.     csdm_write_cfg(id, "equip", "autoitems", flags);
  1810. }
  1811.  
  1812. public write_nades_settings(id)
  1813. {
  1814.     new flags[4] = "";
  1815.     new nade_flags = 0;
  1816.  
  1817.     if(g_Flash)
  1818.         nade_flags |= (1<<0);
  1819.     if(g_Nade)
  1820.         nade_flags |= (1<<1);
  1821.     if(g_Smoke)
  1822.         nade_flags |= (1<<2);
  1823.  
  1824.     get_flags(nade_flags, flags, charsmax(flags));
  1825.  
  1826.     replace(flags, charsmax(flags), "a", "f");
  1827.     replace(flags, charsmax(flags), "b", "h");
  1828.     replace(flags, charsmax(flags), "c", "s");
  1829.  
  1830.     csdm_write_cfg(id, "equip", "grenades", flags);
  1831. }
  1832. // stuff for settings menu - END

_________________
Kép


Hozzászólás jelentése
Vissza a tetejére
   
Hozzászólások megjelenítése:  Rendezés  
Új téma nyitása  Hozzászólás a témához  [ 1 hozzászólás ] 


Ki van itt

Jelenlévő fórumozók: nincs regisztrált felhasználó valamint 2 vendég


Nyithatsz új témákat ebben a fórumban.
Válaszolhatsz egy témára ebben a fórumban.
Nem szerkesztheted a hozzászólásaidat ebben a fórumban.
Nem törölheted a hozzászólásaidat ebben a fórumban.
Nem küldhetsz csatolmányokat ebben a fórumban.

Keresés:
Ugrás:  
Powered by phpBB® Forum Software © phpBB Limited
Magyar fordítás © Magyar phpBB Közösség
Portal: Kiss Portal Extension © Michael O'Toole