Como quito bombas cegadora y de humo en CSDM >SOLUCIONADO<
#1
Buena alguien me podría explicar como desactivar las bomba cegadora y de humo que salen al nacer se activan las 3 bombas solo quiero que quede La HeGrenade, si alguien sabe me podría explicar estuve buscando en el plugins pero no entiendo bien los códigos ya que no soy experto en esto todavía, espero que me haya dado a entender.

CÓDIGO SMA

Código PHP:
/**
 * csdm_equip.sma
 * Allows for Counter-Strike to be played as DeathMatch.
 *
 * CSDM Equipment Menu
 *
 * By Freecode and BAILOPAN
 * (C)2003-2006 David "BAILOPAN" Anderson
 *
 * Give credit where due.
 * Share the source - it sets you free
 * http://www.opensource.org/
 * http://www.gnu.org/
 *
 *
 *
 * Modification from ReCSDM Team (C) 2016
 * http://www.dedicated-server.ru/
 *
 */

#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <csdm>
#include <fakemeta>
#include <hamsandwich>

#pragma semicolon 1

#if AMXX_VERSION_NUM < 183
    #define client_disconnected client_disconnect
#endif

//Tampering with the author and name lines can violate the copyright
new const PLUGINNAME[] = "ReCSDM Equip";
new const 
VERSION[] = CSDM_VERSION;
new const 
AUTHORS[] = "ReCSDM Team";

#define    EQUIP_PRI        (1<<0)
#define    EQUIP_SEC        (1<<1)
#define    EQUIP_ARMOR        (1<<2)
#define    EQUIP_GREN        (1<<3)
#define    EQUIP_ITEMS        (1<<4)
#define    EQUIP_ALL        (EQUIP_PRI|EQUIP_SEC|EQUIP_ARMOR|EQUIP_GREN|EQUIP_ITEMS)

#define    ITEMTYPES_NUM    42

new g_MaxPlayers;

new 
bool:IsRestricted[ITEMTYPES_NUM] = {false, ...};    // Contains if an item is restricted or not
new RestrictWps[ITEMTYPES_NUM] = {32, ...};
new 
UsedWpsT[ITEMTYPES_NUM] = {0, ...};
new 
UsedWpsCT[ITEMTYPES_NUM] = {0, ...};

//Menus
new const g_SecMenu[] = "Menu de armas primarias";        // Menu Name
new g_SecMenuID = -1;                                                    // Menu ID
new g_cSecondary;                                                        // Menu Callback
new bool:g_mSecStatus true;                                                // Menu Available?

new const g_PrimMenu[] = "Menu de armas secundarias";
new 
g_PrimMenuID = -1;
new 
g_cPrimary;
new 
bool:g_mPrimStatus true;

new const 
g_ArmorMenu[] = "Armadura";
new 
g_ArmorMenuID = -1;
new 
bool:g_mArmorStatus true;

new const 
g_NadeMenu[] = "Granadas";
new 
g_NadeMenuID = -1;
new 
bool:g_mNadeStatus true;

new const 
g_EquipMenu[] = "Equipo^n\r   [MOD] DeathMatch By: Evolution-Host";
new 
g_EquipMenuID = -1;
new 
g_cEquip;

new 
bool:g_mShowuser[CSDM_MAXPLAYERS 1] = true;

new 
g_Teamuser[CSDM_MAXPLAYERS 1];

new 
bool:g_mAutoNades false;
new 
bool:g_mAutoArmor false;
new 
bool:g_AlwaysAllowGunMenu false;
new 
bool:g_AmmoRefill false;
new 
g_WeaponStayTime 0;

//Weapon Selections
new g_SecWeapons[CSDM_MAXPLAYERS 1][18];
new 
g_PrimWeapons[CSDM_MAXPLAYERS 1][18];
new 
bool:g_mNades[CSDM_MAXPLAYERS 1];
new 
bool:g_mArmor[CSDM_MAXPLAYERS 1];

//Config weapon storage holders
new g_BotPrim[MAX_WEAPONS][18];
new 
g_iNumBotPrim;

new 
g_BotSec[MAX_WEAPONS][18];
new 
g_iNumBotSec;

new 
g_Secondary[MAX_SECONDARY][18];
new 
bool:g_DisabledSec[MAX_WEAPONS];
new 
g_iNumSec;
new 
g_iNumUsedSec 0;

new 
g_Primary[MAX_PRIMARY][18];
new 
bool:g_DisabledPrim[MAX_WEAPONS];
new 
g_iNumPrim;
new 
g_iNumUsedPrim 0;

new 
pv_csdm_additems;

#define SILENCED_M4A1        0
#define SILENCED_USP        1
new bool:g_Silenced[CSDM_MAXPLAYERS 1][2];

//Misc
new g_Armor 0;
new 
fnadesnum 0;
new 
bool:g_Flash false;
new 
bool:g_Nade false;
new 
bool:g_Smoke false;
new 
bool:g_NightVision false;
new 
bool:g_DefuseKit false;

// page info for settings in CSDM Setting Menu
new g_SettingsMenu 0;
new 
g_EquipSettMenu 0;
new 
g_ItemsInMenuNr 0;
new 
g_PageSettMenu 0;

//Quick Fix for menu pages
new g_MenuState[CSDM_MAXPLAYERS 1] = {0};

new 
Float:g_maxdelmenutime 30.0;

#define    PDATA_SAFE                2
#define    OFFSET_LINUX_WEAPONS    4
#define    m_pPlayer                    41
#define    m_iId                        43

public csdm_Init(const version[])
{
    if (
version[0] == 0) {
        
set_fail_state("ReCSDM failed to load.");
        return;
    }

    
// Menus and callbacks
    
g_SecMenuID menu_create(g_SecMenu"m_SecHandler"0);
    
g_PrimMenuID menu_create(g_PrimMenu"m_PrimHandler"0);
    
g_ArmorMenuID menu_create(g_ArmorMenu"m_ArmorHandler"0);
    
g_NadeMenuID menu_create(g_NadeMenu"m_NadeHandler"0);
    
g_EquipMenuID menu_create(g_EquipMenu"m_EquipHandler"0);

    
menu_setprop(g_PrimMenuIDMPROP_EXITMEXIT_NEVER);
    
menu_setprop(g_SecMenuIDMPROP_EXITMEXIT_NEVER);

    
g_cSecondary menu_makecallback("c_Secondary");
    
g_cPrimary menu_makecallback("c_Primary");
    
g_cEquip menu_makecallback("c_Equip");
}

public 
csdm_CfgInit()
{
    
csdm_reg_cfg("settings""cfgMainSettings");
    
csdm_reg_cfg("misc""cfgMiscSettings");

    
// Config reader
    
csdm_reg_cfg("equip""cfgSetting");

    
// In order for weapon menu
    
csdm_reg_cfg("secondary""cfgSecondary");
    
csdm_reg_cfg("primary""cfgPrimary");
    
csdm_reg_cfg("botprimary""cfgBotPrim");
    
csdm_reg_cfg("botsecondary""cfgBotSec");
    
csdm_reg_cfg("item_restrictions""cfgrestricts");

    
set_task(2.0"check_cvar_pointers"790);
}

public 
check_cvar_pointers()
{
    
pv_csdm_additems get_cvar_pointer("csdm_add_items");
}

public 
plugin_init()
{
    
register_plugin(PLUGINNAMEVERSIONAUTHORS);

    
buildMenu(); // Build Armor/Nade/Equip Menu's

    
register_clcmd("say guns""enableMenu");
    
register_clcmd("say /guns""enableMenu");
    
register_clcmd("say menu""enableMenu");
    
register_clcmd("say enablemenu""enableMenu");
    
register_clcmd("say enable_menu""enableMenu");
    
register_clcmd("csdm_equip_sett_menu""csdm_equip_sett_menu"ADMIN_MAP"CSDM Equip Settings Menu");
    
register_event("TextMsg","eRestart","a","2&#Game_C","2&#Game_w");

    
RegisterHam(Ham_Weapon_SecondaryAttack"weapon_usp""Weapon_SecondaryAttack_usp_Post"true);
    
RegisterHam(Ham_Weapon_SecondaryAttack"weapon_m4a1""Weapon_SecondaryAttack_m4a1_Post"true);

    new 
main_plugin module_exists("csdm_main") ? true false;

    if(
main_plugin)
    {
        
g_SettingsMenu csdm_settings_menu();
        
g_ItemsInMenuNr menu_items(g_SettingsMenu);
        
g_PageSettMenu g_ItemsInMenuNr 7;

        
g_EquipSettMenu menu_create("Menu de configuracion del equipo""use_csdm_equip_menu");

        
menu_additem(g_SettingsMenu"Configuracion de equipos""csdm_equip_sett_menu"ADMIN_MAP);

        if(
g_EquipSettMenu)
        {
            new 
callback menu_makecallback("hook_equip_sett_display");

            
menu_additem(g_EquipSettMenu"Menu del equipo primario [on/off]""1"ADMIN_MAPcallback);
            
menu_additem(g_EquipSettMenu"Menu del equipo secundario [on/off]""2"ADMIN_MAPcallback);
            
menu_additem(g_EquipSettMenu"Menu de armadura [on/off]""3"ADMIN_MAPcallback);
            
menu_additem(g_EquipSettMenu"Menu de granadas [on/off]""4"ADMIN_MAPcallback);
            
menu_additem(g_EquipSettMenu"Emision automatica de armadura [on/off]""5"ADMIN_MAPcallback);
            
menu_additem(g_EquipSettMenu"Emision automatica del casco [on/off]""6"ADMIN_MAPcallback);
            
menu_additem(g_EquipSettMenu"Entrega automatica de granadas [on/off]""7"ADMIN_MAPcallback);
            
menu_additem(g_EquipSettMenu"Pinzas automaticas de dispensacion [on/off]""8"ADMIN_MAPcallback);
            
menu_additem(g_EquipSettMenu"Visión nocturna automatica [on/off]""9"ADMIN_MAPcallback);
            
menu_additem(g_EquipSettMenu"Granadas de luz [on/off]""10"ADMIN_MAPcallback);
            
menu_additem(g_EquipSettMenu"Granadas de humo [on/off]""11"ADMIN_MAPcallback);
            
menu_additem(g_EquipSettMenu"Granadas explosivas [on/off]""12"ADMIN_MAPcallback);
            
menu_additem(g_EquipSettMenu"Permitir utilizar siempre el menu de armas [on/off]""13"ADMIN_MAPcallback);
            
menu_additem(g_EquipSettMenu"Atras""14"0, -1);
        }
    } else {
        
log_amx("CSDM - csdm_equip - no main plugin loaded");
    }

    if(
g_iNumUsedSec == 0)
        
g_mSecStatus false;

    if(
g_iNumUsedPrim == 0)
        
g_mPrimStatus false;

    
g_MaxPlayers get_maxplayers();
}

public 
eRestart()
{
    
arrayset(UsedWpsT0ITEMTYPES_NUM);
    
arrayset(UsedWpsCT0ITEMTYPES_NUM);

    return 
PLUGIN_CONTINUE;
}

public 
client_connect(id)
{
    
g_mShowuser[id] = true;
    
g_mNades[id] = false;
    
g_mArmor[id] = false;
    
g_Silenced[id][SILENCED_M4A1] = false;
    
g_Silenced[id][SILENCED_USP] = false;

    return 
PLUGIN_CONTINUE;
}

public 
client_disconnected(id)
{
    
g_mShowuser[id] = false;
    
g_mNades[id] = false;
    
g_mArmor[id] = false;

    new 
weapons[MAX_WEAPONS], numweapid;

    
get_user_weapons(idweaponsnum);

    for (new 
0numi++)
    {
        
weapid weapons[i];

        if(
IsRestricted[weapid] && UsedWpsT[weapid] > && g_Teamuser[id] == _TEAM_T) {
            
UsedWpsT[weapid]--;
        }

        if(
IsRestricted[weapid] && UsedWpsCT[weapid] > && g_Teamuser[id] == _TEAM_CT) {
            
UsedWpsCT[weapid]--;
        }
    }

    return 
PLUGIN_CONTINUE;
}

public 
csdm_RemoveWeapon(ownerentity_idboxed_id)
{
    if(!
pev_valid(entity_id))
        return 
PLUGIN_HANDLED;

    new 
szClassname[32], weaponteam;

    
pev(entity_idpev_classnameszClassnamecharsmax(szClassname));

    
weapon get_weaponid(szClassname);

    if(
owner && weapon)
    {
        
team _:cs_get_user_team(owner);

        if(
IsRestricted[weapon] && UsedWpsT[weapon] > && team == _TEAM_T) {
            
UsedWpsT[weapon]--;
            
// log_amx("[DEBUG] CSDM - restricted weapon %s removed. Currently there is %d such weapons on the map.", szClassname, UsedWpsT[weapon])
        
}

        if(
IsRestricted[weapon] && UsedWpsCT[weapon] > && team == _TEAM_CT) {
            
UsedWpsCT[weapon]--;
            
//log_amx("[DEBUG] CSDM - restricted weapon %s removed. Currently there is %d such weapons on the map.", szClassname, UsedWpsCT[weapon])
        
}
    }

    return 
PLUGIN_CONTINUE;
}

public 
csdm_PostDeath(killervictimheadshot, const weapon[])
{
    
/* Clean up any defusal kits we might have made! */
    
if(!g_DefuseKit) return;

    
g_Teamuser[victim] = _:cs_get_user_team(victim);

    
/* This might have a race condition for team switches... */
    
if(g_Teamuser[victim] == _TEAM_CT)
        
cs_set_user_defuse(victim0);
}

public 
Weapon_SecondaryAttack_usp_Post(Ent)
{
    if(
pev_valid(Ent) != PDATA_SAFE)
        return 
HAM_IGNORED;

    new 
id get_pdata_cbase(Entm_pPlayerOFFSET_LINUX_WEAPONS);

    if(
id || id g_MaxPlayers)
        return 
HAM_IGNORED;

    
g_Silenced[id][SILENCED_USP] = cs_get_weapon_silen(Ent) ? true false;

    return 
HAM_IGNORED;
}

public 
Weapon_SecondaryAttack_m4a1_Post(Ent)
{
    if(
pev_valid(Ent) != PDATA_SAFE)
        return 
HAM_IGNORED;

    new 
id get_pdata_cbase(Entm_pPlayerOFFSET_LINUX_WEAPONS);

    if(
id || id g_MaxPlayers)
        return 
HAM_IGNORED;

    
g_Silenced[id][SILENCED_M4A1] = cs_get_weapon_silen(Ent) ? true false;

    return 
HAM_IGNORED;
}

public 
cfgSecondary(readActionline[], section[])
{
    if(
readAction == CFG_READ)
    {
        if (
g_iNumSec >= MAX_SECONDARY)
            return 
PLUGIN_HANDLED;

        new 
wep[16], display[48], dis[4], cmd[6];

        
parse(linewepcharsmax(wep), displaycharsmax(display), discharsmax(dis));

        new 
disabled str_to_num(dis);

        
//Copy weapon into array
        
formatex(g_Secondary[g_iNumSec], charsmax(g_Secondary[]), "weapon_%s"wep);

        
g_DisabledSec[g_iNumSec] = disabled false true;

        
formatex(cmd5"%d "g_iNumSec);

        
g_iNumSec++;

        if(
disabled 0)
            
g_iNumUsedSec++;

        
//TODO: Add menu_destroy_items to remake menu on cfg reload
        
menu_additem(g_SecMenuIDdisplaycmd0g_cSecondary);

    } else if (
readAction == CFG_RELOAD) {
        
g_SecMenuID menu_create(g_SecMenu"m_SecHandler"0);
        
g_iNumSec 0;
        
g_iNumUsedSec 0;

    } else if(
readAction == CFG_DONE) {
        
//Nothing for now
        
return PLUGIN_HANDLED;
    }

    return 
PLUGIN_HANDLED;
}

public 
cfgPrimary(readActionline[], section[])
{
    if(
readAction == CFG_READ)
    {
        if(
g_iNumPrim >= MAX_PRIMARY)
            return 
PLUGIN_HANDLED;

        new 
wep[16], display[48], dis[4], cmd[6];

        
parse(linewepcharsmax(wep), displaycharsmax(display), discharsmax(dis));

        new 
disabled str_to_num(dis);

        
//Copy weapon into array
        
formatex(g_Primary[g_iNumPrim], charsmax(g_Secondary[]), "weapon_%s"wep);

        
g_DisabledPrim[g_iNumPrim] = disabled false true;

        
formatex(cmdcharsmax(cmd), "%d"g_iNumPrim);

        
g_iNumPrim++;

        if(
disabled 0)
            
g_iNumUsedPrim++;

        
//TODO: Add menu_destroy_items to remake menu on cfg reload
        
menu_additem(g_PrimMenuIDdisplaycmd0g_cPrimary);

    } else if(
readAction == CFG_RELOAD) {
        
g_PrimMenuID menu_create(g_PrimMenu"m_PrimHandler"0);
        
g_iNumPrim 0;
        
g_iNumUsedPrim 0;

    } else if(
readAction == CFG_DONE) {
        
//Nothing for now
        
return PLUGIN_HANDLED;
    }

    return 
PLUGIN_HANDLED;
}

public 
cfgBotPrim(readActionline[], section[])
{
    if(
readAction == CFG_READ)
    {
        new 
wep[16], display[32];

        
parse(linewepcharsmax(wep), displaycharsmax(display));

        
//Copy weapon into array
        
formatex(g_BotPrim[g_iNumBotPrim], charsmax(g_BotPrim[]), "weapon_%s"wep);

        
g_iNumBotPrim++;

    } else if(
readAction == CFG_RELOAD) {
        
g_iNumBotPrim 0;

    } else if(
readAction == CFG_DONE) {
        
//Nothing for now
        
return PLUGIN_HANDLED;
    }

    return 
PLUGIN_HANDLED;
}

public 
cfgBotSec(readActionline[], section[])
{
    if(
readAction == CFG_READ)
    {
        new 
wep[16], display[32];

        
parse(linewepcharsmax(wep), displaycharsmax(display));

        
//Copy weapon into array
        
formatex(g_BotSec[g_iNumBotSec], charsmax(g_BotPrim[]), "weapon_%s"wep);

        
g_iNumBotSec++;

    } else if(
readAction == CFG_RELOAD) {
        
g_iNumBotSec 0;

    } else if(
readAction == CFG_DONE) {
        
//Nothing for now
        
return PLUGIN_HANDLED;
    }

    return 
PLUGIN_HANDLED;
}

public 
cfgSetting(readActionline[], section[])
{
    if(
readAction == CFG_READ)
    {
        new 
setting[24], sign[3], value[6];

        
parse(linesettingcharsmax(setting), signcharsmax(sign), valuecharsmax(value));

        
// Menus settings
        
if(contain(setting,"menus") != -1)
        {
            if(
containi(value"p") != -1)
                
g_mPrimStatus true;

            if(
containi(value"s") != -1)
                
g_mSecStatus true;

            if(
containi(value"a") != -1)
                
g_mArmorStatus true;

            if(
containi(value"g") != -1)
                
g_mNadeStatus true;

            return 
PLUGIN_HANDLED;

        } else if(
contain(setting"autoitems") != -1) {

            if(
containi(value"a")  != -1) {
                
//Disable Armor Menu
                
g_mArmorStatus false;
                
g_mAutoArmor true;
                
g_Armor 1;
            }

            if(
containi(value"h") != -1) {
                
//Disable Armor Menu
                
g_mArmorStatus false;
                
g_mAutoArmor true;
                
g_Armor 2;
            }

            if(
containi(value"g") != -1) {
                
//Disable Grenade Menu
                
g_mNadeStatus false;
                
g_mAutoNades true;
            }

            if(
containi(value"d") != -1)
                
g_DefuseKit true;

            if(
containi(value"n") != -1)
                
g_NightVision true;

            return 
PLUGIN_HANDLED;

        } else if(
contain(setting"grenades") != -1) {

            if(
containi(value"f") != -1)
                
g_Flash true;

            if(
containi(value"h") != -1)
                
g_Nade true;

            if (
containi(value"s") != -1)
                
g_Smoke true;

        } else if(
contain(setting"fnadesnum") != -1) {
            
fnadesnum str_to_num(value);

        } else if(
contain(setting"always_allow_gunmenu") != -1) {
            
g_AlwaysAllowGunMenu str_to_num(value)? true false;
        }

        return 
PLUGIN_HANDLED;

    } else if(
readAction == CFG_RELOAD) {
        
g_mArmorStatus false;
        
g_mNadeStatus false;
        
g_Flash false;
        
g_Nade false;
        
g_Smoke false;
        
g_Armor 0;
        
g_mSecStatus false;
        
g_mPrimStatus false;
        
g_mAutoNades false;
        
g_DefuseKit false;
        
g_NightVision false;
        
fnadesnum 1;

    } else if(
readAction == CFG_DONE) {
        
//Nothing for now
        
return PLUGIN_HANDLED;
    }

    return 
PLUGIN_HANDLED;
}

public 
cfgrestricts(readActionline[], section[])
{
    if(
readAction == CFG_READ)
    {
        new 
itemname[24], value[32], limit;
        
parse(lineitemnamecharsmax(itemname), valuecharsmax(value));

        
limit 0;

        if(
value[0] != '0')
            
limit str_to_num(value);

        new 
weapname[24], weaptype;

        
formatex(weapnamecharsmax(weapname), "weapon_%s"itemname);

        
weaptype getWeapId(weapname);

        
// weaptype = get_weaponid(weapname) // why this crap doesn't work here but works correctly during the game ?!?
        // log_amx("[DEBUG] CSDM - reading restrictions, weapon %s (weaptype = %d).", itemname, weaptype)

        
if(weaptype != 0) {
            
IsRestricted[weaptype] = true;
            
RestrictWps[weaptype] = limit;
        }

        
// log_amx("[DEBUG] CSDM - reading restrictions, restricted %s (weaptype = %d) = %d", itemname, weaptype, limit)
    
}
    else if(
readAction == CFG_RELOAD)
    {
        
// Reset all restrictions
        
arrayset(IsRestrictedfalseITEMTYPES_NUM);
        
arrayset(RestrictWps32ITEMTYPES_NUM);
        return 
PLUGIN_HANDLED;
    }
    else if(
readAction == CFG_DONE)
    {
        
//Nothing for now
        
return PLUGIN_HANDLED;
    }

    return 
PLUGIN_HANDLED;
}

public 
cfgMainSettings(readActionline[], section[])
{
    if(
readAction == CFG_READ)
    {
        new 
setting[24], sign[3], value[32];

        
parse(linesettingcharsmax(setting), signcharsmax(sign), valuecharsmax(value));

        if(
equali(setting"weapons_stay")) {
            
g_WeaponStayTime str_to_num(value);
        }
    }
}

public 
cfgMiscSettings(readActionline[], section[])
{
    if(
readAction == CFG_READ)
    {
        new 
setting[24], sign[3], value[32];

        
parse(linesettingcharsmax(setting), signcharsmax(sign), valuecharsmax(value));

        if(
equali(setting"ammo_refill")) {
            
g_AmmoRefill str_to_num(value) ? true false;
        }

    } else if(
readAction == CFG_RELOAD) {
        
g_AmmoRefill true;
    }
}

//Equipment Menu callback
public c_Equip(idmenuitem)
{
    if(
item 0)
        return 
PLUGIN_CONTINUE;

    new 
cmd[6], iName[64], accesscallback;

    
menu_item_getinfo(menuitemaccesscmdcharsmax(cmd), iNamecharsmax(iName), callback);

    new 
weapon_sweapon_p;
    
weapon_s get_weaponid(g_SecWeapons[id]);
    
weapon_p get_weaponid(g_PrimWeapons[id]);

    if(
weapon_s == && g_mSecStatus
        
|| weapon_p == && g_mPrimStatus
        
|| IsRestricted[weapon_s]
        || 
IsRestricted[weapon_p]) {
            return 
ITEM_DISABLED;
    }

    return 
ITEM_ENABLED;
}

//Secondary Weapon Callback
public c_Secondary(idmenuitem)
{
    if(
item 0)
        return 
PLUGIN_CONTINUE;

    new 
cmd[6], iName[64], accesscallback;

    
menu_item_getinfo(menuitemaccesscmdcharsmax(cmd), iNamecharsmax(iName), callback);

    new 
dis str_to_num(cmd);
    new 
team _:cs_get_user_team(id);
    new 
weaptype get_weaponid(g_Secondary[dis]);

    
//Check to see if item is disabled
    
if(g_DisabledSec[dis]) {
        return 
ITEM_DISABLED;

    } else if(!
IsRestricted[weaptype]) {
        return 
ITEM_ENABLED;

    } else if(
UsedWpsT[weaptype] < RestrictWps[weaptype] && team == _TEAM_T 
        
|| UsedWpsCT[weaptype] < RestrictWps[weaptype] && team == _TEAM_CT) {
        return 
ITEM_ENABLED;
    }

    return 
ITEM_DISABLED;
}

//Primary Weapon Callback
public c_Primary(idmenuitem)
{
    if(
item 0)
        return 
PLUGIN_CONTINUE;

    
// Get item info
    
new cmd[6], iName[64], accesscallback;

    
menu_item_getinfo(menuitemaccesscmdcharsmax(cmd), iNamecharsmax(iName), callback);

    new 
dis str_to_num(cmd);
    new 
team _:cs_get_user_team(id);
    new 
weaptype get_weaponid(g_Primary[dis]);

    
//Check to see if item is disabled
    
if(g_DisabledPrim[dis]) {
        return 
ITEM_DISABLED;

    } else if(!
IsRestricted[weaptype]) {
        return 
ITEM_ENABLED;

    } else if(
UsedWpsT[weaptype] < RestrictWps[weaptype] && team == _TEAM_T 
        
|| UsedWpsCT[weaptype] < RestrictWps[weaptype] && team == _TEAM_CT) {
            return 
ITEM_ENABLED;
    }

    return 
ITEM_DISABLED;
}

//Equipment Menu handler
public m_EquipHandler(idmenuitem)
{
    if(
item 0)
        return 
PLUGIN_CONTINUE;

    
// Get item info
    
new cmd[2], iName[64], accesscallback;

    
menu_item_getinfo(menuitemaccesscmdcharsmax(cmd), iNamecharsmax(iName), callback);

    switch(
str_to_num(cmd))
    {
        case 
1:
        {
            if(
g_mSecStatus)
                
menu_display(idg_SecMenuID0);

            else if(
g_mPrimStatus)
                
menu_display(idg_PrimMenuID0);

            else if(
g_mArmorStatus)
                
menu_display(idg_ArmorMenuID0);

            else if(
g_mNadeStatus)
            {
                if(
g_mAutoArmor
                    
equipUser(idEQUIP_ARMOR);

                
menu_display(idg_NadeMenuID0);

            } else {
                if(
g_mAutoArmor
                    
equipUser(idEQUIP_ARMOR);

                if(
g_mAutoNades
                    
equipUser(idEQUIP_GREN);

                
equipUser(idEQUIP_ITEMS);
            }
        }
        case 
2:
        {
            
// Equip person with last settings
            
equipUser(idEQUIP_ALL);
        }
        case 
3:
        {
            
g_mShowuser[id] = false;
            
client_print(idprint_chat"");
            
equipUser(idEQUIP_ALL);
        }
    }

    return 
PLUGIN_HANDLED;
}

//Secondary Weapon Menu handler
public m_SecHandler(idmenuitem)
{
    if(!
is_user_connected(id))
        return 
PLUGIN_HANDLED;

    
// Get item info
    
new cmd[6], iName[64], accesscallback;

    
menu_item_getinfo(menuitemaccesscmdcharsmax(cmd), iNamecharsmax(iName), callback);

    new 
wep str_to_num(cmd);

    new 
team _:cs_get_user_team(id);
    new 
weaptype get_weaponid(g_Secondary[wep]);

    if((
UsedWpsT[weaptype] < RestrictWps[weaptype] && team == _TEAM_T 
        
|| UsedWpsCT[weaptype] < RestrictWps[weaptype] && team == _TEAM_CT)
        && !
g_DisabledSec[wep])
    {
        
copy(g_SecWeapons[id],17,g_Secondary[wep]);
        
equipUser(idEQUIP_SEC);

    } else if(
g_mSecStatus) {
        
menu_display(idg_SecMenuID0);
        return 
PLUGIN_HANDLED;
    }

    
// Show next menu here

    
if(g_mPrimStatus)
        
menu_display(idg_PrimMenuID0);

    else if(
g_mArmorStatus)
        
menu_display(idg_ArmorMenuID0);

    else if(
g_mNadeStatus)
    {
        if (
g_mAutoArmor)
            
equipUser(idEQUIP_ARMOR);

        
menu_display(idg_NadeMenuID0);

    } else {
        if (
g_mAutoArmor)
            
equipUser(idEQUIP_ARMOR);

        if (
g_mAutoNades)
            
equipUser(idEQUIP_GREN);

        
equipUser(idEQUIP_ITEMS);
    }

    return 
PLUGIN_HANDLED;
}

//Primary Weapon Menu handler
public m_PrimHandler(idmenuitem)
{
    if (
item 0)
        return 
PLUGIN_HANDLED;

    
// Get item info
    
new cmd[6], iName[64], accesscallback;

    if(
menu_item_getinfo(menuitemaccesscmdcharsmax(cmd), iNamecharsmax(iName), callback))
    {
        new 
wep str_to_num(cmd);
        new 
team _:cs_get_user_team(id);
        new 
weaptype get_weaponid(g_Primary[wep]);

        if((
UsedWpsT[weaptype] < RestrictWps[weaptype] && team == _TEAM_T 
            
|| UsedWpsCT[weaptype] < RestrictWps[weaptype] && team == _TEAM_CT)
            && !
g_DisabledPrim[wep])
        {
            
copy(g_PrimWeapons[id], charsmax(g_PrimWeapons[]), g_Primary[wep]);
            
equipUser(idEQUIP_PRI);

        } else if (
g_mPrimStatus) {
            
menu_display(idg_PrimMenuID0);
            return 
PLUGIN_HANDLED;
        }
    }

    
// Show next menu here
    
if(g_mArmorStatus) {
        
menu_display(idg_ArmorMenuID0);
    }
    else if(
g_mNadeStatus)
    {
        if(
g_mAutoArmor)
            
equipUser(idEQUIP_ARMOR);

        
menu_display(idg_NadeMenuID0);

    } else {
        if (
g_mAutoArmor)
            
equipUser(idEQUIP_ARMOR);

        if (
g_mAutoNades)
            
equipUser(idEQUIP_GREN);

        
equipUser(idEQUIP_ITEMS);
    }

    return 
PLUGIN_HANDLED;
}

//Armor Menu handler
public m_ArmorHandler(idmenuitem)
{
    if(
item 0)
        return 
PLUGIN_CONTINUE;

    
// Get item info
    
new cmd[6], iName[64], accesscallback;

    
menu_item_getinfo(menuitemaccesscmdcharsmax(cmd), iNamecharsmax(iName), callback);

    new 
choice str_to_num(cmd);

    if(
choice == 1) {
        
g_mArmor[id] = true;
    } else if (
choice == 2) {
        
g_mArmor[id] = false;
    }

    
equipUser(idEQUIP_ARMOR);

    
// Show next menu here

    
if(g_mNadeStatus) {
        
menu_display(idg_NadeMenuID0);
    } else {
        if (
g_mAutoNades)
            
equipUser(idEQUIP_GREN);

        
equipUser(idEQUIP_ITEMS);
    }

    return 
PLUGIN_HANDLED;
}

//Nade Menu handler
public m_NadeHandler(idmenuitem)
{
    if (
item 0)
        return 
PLUGIN_CONTINUE;

    new 
cmd[6], iName[64], accesscallback;

    
menu_item_getinfo(menuitemaccesscmdcharsmax(cmd), iNamecharsmax(iName), callback);

    new 
choice str_to_num(cmd);

    if (
choice == 1) {
        
g_mNades[id] = true;
    } else if (
choice == 2) {
        
g_mNades[id] = false;
    }

    
equipUser(idEQUIP_GREN);
    
equipUser(idEQUIP_ITEMS);

    return 
PLUGIN_HANDLED;
}

buildMenu()
{
    
//Equip Menu
    
menu_additem(g_EquipMenuID"Nuevo equipo""1"0, -1);
    
menu_additem(g_EquipMenuID"Seleccion previa""2"0g_cEquip);
    
menu_additem(g_EquipMenuID"Seleccion previa y no volver a preguntar.""3"0g_cEquip);
    
menu_setprop(g_EquipMenuIDMPROP_EXITMEXIT_NEVER);

    
//Armor Menu
    
menu_additem(g_ArmorMenuID"Si, armadura""1"0, -1);
    
menu_additem(g_ArmorMenuID"Sin armadura""2"0, -1);
    
menu_setprop(g_ArmorMenuIDMPROP_EXITMEXIT_NEVER);

    
//Nade Menu
    
menu_additem(g_NadeMenuID"Todas las granadas""1"0, -1);
    
menu_additem(g_NadeMenuID"Sin granadas""2"0, -1);
    
menu_setprop(g_NadeMenuIDMPROP_EXITMEXIT_NEVER);

    return 
PLUGIN_HANDLED;
}

equipUser(idto)
{
    if(!
is_user_alive(id)) return;

    new 
weaptype;
    new 
team _:cs_get_user_team(id);

    if((
to EQUIP_SEC) && get_weaponid(g_SecWeapons[id])) {

        
//Give Secondary
        
GiveUserFullWeapon(idg_SecWeapons[id]);
    }

    if((
to EQUIP_PRI) && get_weaponid(g_PrimWeapons[id])) {

        
//Give Primary
        
GiveUserFullWeapon(idg_PrimWeapons[id]);
    }

    if(
to EQUIP_ARMOR)
    {
        
//Give Armor
        
if(g_mAutoArmor || g_mArmor[id]) {
            new 
armor g_mArmor[id] ? g_Armor;
            
cs_set_user_armor(idDEFAULT_ARMORCsArmorType:armor);
        }
    }

    if(
to EQUIP_GREN)
    {
        
//Give Nades
        
if(g_mNades[id] || g_mAutoNades)
        {
            if(
g_Nade)
            {

                
weaptype get_weaponid("weapon_hegrenade");

                if(
IsRestricted[weaptype])
                {

                    if(
UsedWpsT[weaptype] < RestrictWps[weaptype] && team == _TEAM_T) {
                        
UsedWpsT[weaptype]++;
                        
GiveUserFullWeapon(id,"weapon_hegrenade");
                    }

                    if(
UsedWpsCT[weaptype] < RestrictWps[weaptype] && team == _TEAM_CT) {
                        
UsedWpsCT[weaptype]++;
                        
GiveUserFullWeapon(id,"weapon_hegrenade");
                    }

                } else {
                    
GiveUserFullWeapon(id,"weapon_hegrenade");
                }
            }

            if(
g_Smoke)
            {
                
weaptype get_weaponid("weapon_smokegrenade");

                if(
IsRestricted[weaptype])
                {

                    if(
UsedWpsT[weaptype] < RestrictWps[weaptype] && team == _TEAM_T) {
                        
UsedWpsT[weaptype]++;
                        
GiveUserFullWeapon(id,"weapon_smokegrenade");
                    }

                    if(
UsedWpsCT[weaptype] < RestrictWps[weaptype] && team == _TEAM_CT) {
                        
UsedWpsCT[weaptype]++;
                        
GiveUserFullWeapon(id,"weapon_smokegrenade");
                    }

                } else {
                    
GiveUserFullWeapon(id"weapon_smokegrenade");
                }
            }

            if(
g_Flash && fnadesnum)
            {

                
weaptype get_weaponid("weapon_flashbang");

                if(
IsRestricted[weaptype])
                {

                    if(
UsedWpsT[weaptype] < RestrictWps[weaptype] && team == _TEAM_T) {
                        
UsedWpsT[weaptype]++;
                        
GiveUserFullWeapon(id"weapon_flashbang");
                    }

                    if(
UsedWpsCT[weaptype] < RestrictWps[weaptype] && team == _TEAM_CT) {
                        
UsedWpsCT[weaptype]++;
                        
GiveUserFullWeapon(id"weapon_flashbang");
                    }

                } else {
                    
GiveUserFullWeapon(id"weapon_flashbang");
                }

                if(
fnadesnum == 2)
                {
                    if(
IsRestricted[weaptype])
                    {

                        if((
UsedWpsT[weaptype] < RestrictWps[weaptype]) && (team == _TEAM_T)) {
                            
UsedWpsT[weaptype]++;
                            
GiveUserFullWeapon(id"weapon_flashbang");
                        }

                        if((
UsedWpsCT[weaptype] < RestrictWps[weaptype]) && (team == _TEAM_CT)) {
                            
UsedWpsCT[weaptype]++;
                            
GiveUserFullWeapon(id"weapon_flashbang");
                        }

                    } else {
                        
GiveUserFullWeapon(id"weapon_flashbang");
                    }

                }
            }
        }
    }

    if (
to EQUIP_ITEMS)
    {
        if (
g_DefuseKit && (_:cs_get_user_team(id) == _TEAM_CT)) {
            
cs_set_user_defuse(id1);
        }

        if (
g_NightVision) {
            
cs_set_user_nvg(id1);
        }
    }
}

GiveUserFullWeapon(id, const wp[])
{
    if(!
is_user_connected(id)) return;

    
/** First check to make sure the user does not have a weapon in this slot */
    
new wpnid get_weaponid(wp);
    new 
weapons[MAX_WEAPONS], numname[24], weapslot;
    new 
team _:cs_get_user_team(id);

    if(
wpnid == 0)
    {
        if(
equal(wp"weapon_shield")) {
            
slot SLOT_PRIMARY;
            
wpnid = -1;
        }

    } else {
        
slot g_WeaponSlots[wpnid];
    }

    if((
slot == SLOT_SECONDARY || slot == SLOT_PRIMARY) && wpnid 0)
    {
        
get_user_weapons(idweaponsnum);

        for (new 
0numi++)
        {
            
weap weapons[i];

            if(
weap == wpnid)
                continue;

            if(
g_WeaponSlots[weap] == slot)
            {
                if(
slot == SLOT_SECONDARY && cs_get_user_shield(id)) {
                    
//temporary fix!
                    
drop_with_shield(idweap);

                } else {
                    
get_weaponname(weapnamecharsmax(name));
                    
csdm_force_drop(idname);
                }
            }
        }

    } else if(
slot == SLOT_PRIMARY && wpnid == -&& cs_get_user_shield(id)) {
        return;
    }

    if(
slot == SLOT_PRIMARY && cs_get_user_shield(id) && wpnid 0) {
        
csdm_fwd_drop(id, -1"weapon_shield");
    }

    new 
item_id csdm_give_item(idwp);

    if(
item_id 0)
    {
        if (
wpnid == CSW_M4A1) {
            
cs_set_weapon_silen(item_idg_Silenced[id][SILENCED_M4A1], 1);
        } else if (
wpnid == CSW_USP) {
            
cs_set_weapon_silen(item_idg_Silenced[id][SILENCED_USP], 1);
        }
    }

    if(
wpnid 0)
    {
        new 
bpammo g_MaxBPAmmo[wpnid];

        if(
bpammo)
            
cs_set_user_bpammo(idwpnidbpammo);

        if (
IsRestricted[wpnid])
        {
            if ((
UsedWpsT[wpnid] < RestrictWps[wpnid]) && (team == _TEAM_T)) {
                
UsedWpsT[wpnid]++;
            }

            if ((
UsedWpsCT[wpnid] < RestrictWps[wpnid]) && (team == _TEAM_CT)) {
                
UsedWpsCT[wpnid]++;
            }
        }
    }
}

// MAIN FUNCTION OF THE PLUGIN
public csdm_PostSpawn(player)
{
    if(
pv_csdm_additems)
    {
        if(
get_pcvar_num(pv_csdm_additems)) {
            return 
PLUGIN_CONTINUE;
        }
    }

    
g_Teamuser[player] = _:cs_get_user_team(player);

    if(
is_user_bot(player))
    {
        new 
iweapon_pweapon_s;
        new 
randPrim random_num(0g_iNumBotPrim-1);
        new 
randSec random_num(0g_iNumBotSec-1);

        
weapon_p get_weaponid(g_BotPrim[randPrim]);

        
0;

        while(
10 && IsRestricted[weapon_p
            && (
UsedWpsT[weapon_p] >= RestrictWps[weapon_p] && g_Teamuser[player] == _TEAM_T 
            
|| UsedWpsCT[weapon_p] >= RestrictWps[weapon_p] && g_Teamuser[player] == _TEAM_CT))
        {
            
randPrim++;

            if(
randPrim >= g_iNumBotPrim)
                
randPrim 0;

            
weapon_p get_weaponid(g_BotPrim[randPrim]);

            
i++;
        }

        
weapon_s get_weaponid(g_BotSec[randSec]);

        
0;

        while(
10 && IsRestricted[weapon_s
            && (
UsedWpsT[weapon_s] >= RestrictWps[weapon_s] && g_Teamuser[player] == _TEAM_T 
            
|| UsedWpsCT[weapon_s] >= RestrictWps[weapon_s] && g_Teamuser[player] == _TEAM_CT))
        {
            
randSec++;

            if(
randSec >= g_iNumBotSec)
                
randSec 0;

            
weapon_s get_weaponid(g_BotSec[randSec]);

            
i++;
        }

        new 
randArm random_num(02);
        new 
randGre random_num(02);

        if(
g_mPrimStatus)
            
GiveUserFullWeapon(playerg_BotPrim[randPrim]);

        if(
g_mSecStatus)
            
GiveUserFullWeapon(playerg_BotSec[randSec]);

        
g_mArmor[player] = (g_mArmorStatus && randArm);
        
g_mNades[player] = (g_mNadeStatus && randGre);

        if(
g_mAutoArmor || g_mArmor[player])
            
equipUser(playerEQUIP_ARMOR);

        if(
g_mAutoNades || g_mNades[player])
            
equipUser(playerEQUIP_GREN);

        if (
g_DefuseKit)
            
equipUser(playerEQUIP_ITEMS);

    } else {

        if(
g_mShowuser[player])
        {
            new 
oldmenuidnewmenuid;
            new 
bool:bEquipMenuDisp false;

            
player_menu_info(playeroldmenuidnewmenuid); // main thing to prevent overwrite some menu by gun menu

            
if(newmenuid != -&& (newmenuid == g_SecMenuID || newmenuid == g_PrimMenuID 
                
|| newmenuid == g_ArmorMenuID || newmenuid == g_EquipMenuID))
            {
                
bEquipMenuDisp true;
            }

            if(
bEquipMenuDisp || oldmenuid <= || g_maxdelmenutime == 0)
            {
                
g_MenuState[player] = 1;
                
menu_display(playerg_EquipMenuID0);

            } else {

                new 
param[1];
                
param[0] = player;

                if(
g_maxdelmenutime 0)
                    
set_task(1.0"checkmenu"850 playerparam1"b");

                
set_task(g_maxdelmenutime"menu_delayed"700 playerparam1);
            }

        } else {
            
g_MenuState[player] = 0;
            
set_task(0.2"delay_equip"player);
            
// equipUser(player, EQUIP_ALL)
        
}
    }

    return 
PLUGIN_CONTINUE;
}

public 
delay_equip(id)
{
    if(
is_user_connected(id))
        
equipUser(idEQUIP_ALL);
}

public 
enableMenu(id)
{
    if(!
csdm_active())
        return 
PLUGIN_CONTINUE;

    if(!
g_mShowuser[id])
    {
        
g_mShowuser[id] = true;
        
client_print(idprint_chat"[CSDM] El menu del equipo ha sido reactivado.");

        if(!
g_MenuState[id]) {
            
g_MenuState[id] = 1;
            
menu_display(idg_EquipMenuID0);
        }

    } else if(!
g_AlwaysAllowGunMenu || !g_AmmoRefill || (g_WeaponStayTime 5)) {

        if(!
g_AlwaysAllowGunMenu
            
client_print(idprint_chat"[CSDM] El menu del equipo ya esta activado. Ya deberias tener un arma");

        else if(!
g_AmmoRefill
            
client_print(idprint_chat"[CSDM] No se puede utilizar el menu del equipo. Ya tienes un arma o la habilidad de elegir otra arma esta deshabilitada.");

        else if(
g_WeaponStayTime 5)
            
client_print(idprint_chat"[CSDM] No se puede utilizar el menu del equipo. ya tienes un arma por mucho tiempo");
    
    } else {
        
g_MenuState[id] = 1;
        
menu_display(idg_EquipMenuID0);
    }

    return 
PLUGIN_HANDLED;
}

public 
checkmenu(param[])
{
    new 
id param[0];

    if(!
id)
    {
        if(
task_exists(850 id)) {
            
remove_task(850 id);
        }

        return 
PLUGIN_CONTINUE;
    }

    if(!
is_user_connected(id))
    {
        if (
task_exists(850 id)) {
            
remove_task(850 id);
        }

        return 
PLUGIN_CONTINUE;
    }

    new 
oldmenuidnewmenuid;
    new 
bool:bEquipMenuDisp false;

    
player_menu_info(idoldmenuidnewmenuid);

    if(
newmenuid != -&& (newmenuid == g_SecMenuID || newmenuid == g_PrimMenuID 
        
|| newmenuid == g_ArmorMenuID || newmenuid == g_EquipMenuID))
    {
        
bEquipMenuDisp true;
    }

    if((
oldmenuid <= 0) || (bEquipMenuDisp))
    {
        
g_MenuState[id] = 1;
        
menu_display(idg_EquipMenuID0);

        if (
task_exists(850+id))
            
remove_task(850+id);

        if (
task_exists(700+id))
            
remove_task(700+id);
    }    

    return 
PLUGIN_CONTINUE;
}

public 
menu_delayed(param[])
{
    new 
id param[0];

    if (!
id)
    {
        if (
task_exists(700 id)) {
            
remove_task(700 id);
        }

        return 
PLUGIN_HANDLED;
    }

    if(!
is_user_connected(id))
    {

        if (
task_exists(850 id)) {
            
remove_task(850 id);
        }

        return 
PLUGIN_HANDLED;
    }

    
g_MenuState[id] = 1;
    
menu_display(idg_EquipMenuID0);

    if (
task_exists(700 id))
        
remove_task(700 id);

    if (
task_exists(850 id))
        
remove_task(850 id);

    return 
PLUGIN_CONTINUE;
}

stock getWeapId(wp[]) // this one is used, because get_weaponid doesn't work when csdm_CfgInit is called (something wrong with core intitialisation?
{
    if(
equal(wp"weapon_p228")) return CSW_P228;
    else if(
equal(wp"weapon_scout")) return CSW_SCOUT;
    else if(
equal(wp"weapon_hegrenade")) return CSW_HEGRENADE;
    else if(
equal(wp"weapon_xm1014")) return CSW_XM1014;
    else if(
equal(wp"weapon_c4")) return CSW_C4;
    else if(
equal(wp"weapon_mac10")) return CSW_MAC10;
    else if(
equal(wp"weapon_aug")) return CSW_AUG;
    else if(
equal(wp"weapon_smokegrenade")) return CSW_SMOKEGRENADE;
    else if(
equal(wp"weapon_elite")) return CSW_ELITE;
    else if(
equal(wp"weapon_fiveseven")) return CSW_FIVESEVEN;
    else if(
equal(wp"weapon_ump45")) return CSW_UMP45;
    else if(
equal(wp"weapon_sg550")) return CSW_SG550;
    else if(
equal(wp"weapon_galil")) return CSW_GALIL;
    else if(
equal(wp"weapon_famas")) return CSW_FAMAS;
    else if(
equal(wp"weapon_usp")) return CSW_USP;
    else if(
equal(wp"weapon_glock18")) return CSW_GLOCK18;
    else if(
equal(wp"weapon_awp")) return CSW_AWP;
    else if(
equal(wp"weapon_mp5navy")) return CSW_MP5NAVY;
    else if(
equal(wp"weapon_m249")) return CSW_M249;
    else if(
equal(wp"weapon_m3")) return CSW_M3;
    else if(
equal(wp"weapon_m4a1")) return CSW_M4A1;
    else if(
equal(wp"weapon_tmp")) return CSW_TMP;
    else if(
equal(wp"weapon_g3sg1")) return CSW_G3SG1;
    else if(
equal(wp"weapon_flashbang")) return CSW_FLASHBANG;
    else if(
equal(wp"weapon_deagle")) return CSW_DEAGLE;
    else if(
equal(wp"weapon_sg552")) return CSW_SG552;
    else if(
equal(wp"weapon_ak47")) return CSW_AK47;
    else if(
equal(wp"weapon_knife")) return CSW_KNIFE;
    else if(
equal(wp"weapon_p90")) return CSW_P90;

    return 
PLUGIN_CONTINUE;
}

// stuff for settings menu - START
public csdm_equip_sett_menu(idlevelcid)
{
    if(!
cmd_access(idlevelcid1))
        return 
PLUGIN_HANDLED;

    
menu_display(idg_EquipSettMenu0);

    return 
PLUGIN_HANDLED;
}

public 
use_csdm_equip_menu(idmenuitem)
{
    if(
item 0)
        return 
PLUGIN_CONTINUE;

    new 
command[6], paccesscall;

    if(!
menu_item_getinfo(g_EquipSettMenuitempaccesscommandcharsmax(command), __call)) {
        
log_amx("Error: csdm_menu_item() failed (menu %d) (page %d) (item %d)"g_EquipSettMenu0item);
        return 
PLUGIN_HANDLED;
    }

    if(
paccess && !(get_user_flags(id) & paccess)) {
        
client_print(idprint_chat"No tienes acceso a esta opcion del menu.");
        return 
PLUGIN_HANDLED;
    }

    new 
iChoice str_to_num(command);

    switch(
iChoice)
    {
        case 
1:
        {
            
g_mPrimStatus g_mPrimStatusfalse true;

            
client_print(idprint_chat"Mostrar el menu del arma principal %s."g_mPrimStatus "Habilitado" "Fuera de");
            
log_amx("CSDM mostrando el menu del arma principal %s."g_mPrimStatus "enabled" "disabled");

            
menu_display(idg_EquipSettMenu0);
            
write_menus_settings(id);

            return 
PLUGIN_HANDLED;
        }
        case 
2:
        {
            
g_mSecStatus g_mSecStatusfalse true;

            
client_print(idprint_chat"Mostrar menu de armas secundarias %s."g_mSecStatus "Habilitado" "Fuera de");
            
log_amx("CSDM mostrando el menu de la pistola secundaria %s."g_mSecStatus "enabled" "disabled");

            
menu_display(idg_EquipSettMenu0);
            
write_menus_settings(id);

            return 
PLUGIN_HANDLED;
        }
        case 
3:
        {
            
g_mArmorStatus g_mArmorStatusfalse true;

            if(
g_mArmorStatus)
                
g_mAutoArmor false;

            
client_print(idprint_chat"Visualizacion del menu de reserva %s."g_mArmorStatus "Habilitado" "Fuera de");
            
log_amx("CSDM desplegando el menu de armadura %s."g_mArmorStatus "enabled" "disabled");

            
menu_display(idg_EquipSettMenu0);
            
write_menus_settings(id);

            return 
PLUGIN_HANDLED;
        }
        case 
4:
        {
            
g_mNadeStatus g_mNadeStatusfalse true;

            if(
g_mNadeStatus)
                
g_mAutoNades false;

            
client_print(idprint_chat"Pantalla de menu de granada %s."g_mNadeStatus "Habilitado" "Fuera de");
            
log_amx("CSDM mostrando el menu de nades %s."g_mNadeStatus "enabled" "disabled");

            
menu_display(idg_EquipSettMenu0);
            
write_menus_settings(id);

            return 
PLUGIN_HANDLED;
        }
        case 
5:
        {
            if(
g_Armor == || g_Armor == 2) {
                
g_Armor 0;
                
g_mAutoArmor false;
            }
            else if(
g_Armor == 0) {
                
g_Armor 1;
                
g_mAutoArmor true;
                
g_mArmorStatus false;
            }

            
client_print(idprint_chat"Auto emision de reserva. %s."g_mAutoArmor "Habilitado" "Fuera de");
            
log_amx("CSDM auto equipando jugadores con armadura %s."g_mAutoArmor "enabled" "disabled");

            
menu_display(idg_EquipSettMenu0);
            
write_autoequip_settings(id);

            return 
PLUGIN_HANDLED;
        }
        case 
6:
        {
            if(
g_Armor == || g_Armor == 1) {
                
g_Armor 2;
                
g_mAutoArmor true;
                
g_mArmorStatus false;
            }
            else if(
g_Armor == 2) {
                
g_Armor 1;
                
g_mAutoArmor true;
                
g_mArmorStatus false;
            }

            
client_print(idprint_chat"Casco autoemisor %s.", (g_Armor == 2) ? "Habilitado" "Fuera de");
            
log_amx("CSDM auto equipando jugadores con casco %s.", (g_Armor == 2) ? "enabled" "disabled");

            
menu_display(idg_EquipSettMenu0);
            
write_autoequip_settings(id);

            return 
PLUGIN_HANDLED;
        }
        case 
7:
        {
            
g_mAutoNades g_mAutoNadesfalse true;

            if(
g_mAutoNades)
                
g_mNadeStatus false;

            
client_print(idprint_chat"Emision automatica de granadas. %s."g_mAutoNades "Habilitado" "Fuera de");
            
log_amx("CSDM Auto equipando jugadores con granadas. %s."g_mAutoNades "enabled" "disabled");

            
menu_display(idg_EquipSettMenu0);
            
write_autoequip_settings(id);

            return 
PLUGIN_HANDLED;
        }
        case 
8:
        {
            
g_DefuseKit g_DefuseKitfalse true;

            
client_print(idprint_chat"Forceps automaticos (solo fuerzas especiales) %s."g_DefuseKit "Habilitado" "Fuera de");
            
log_amx("CSDM Auto equipando jugadores con difusor. (CTs) %s."g_DefuseKit "enabled" "disabled");

            
menu_display(idg_EquipSettMenu1);
            
write_autoequip_settings(id);

            return 
PLUGIN_HANDLED;
        }
        case 
9:
        {
            
g_NightVision g_NightVisionfalse true;

            
client_print(idprint_chat"Auto vision nocturna %s."g_NightVision "Habilitado" "Fuera de");
            
log_amx("CSDM Auto equipando jugadores con vision nocturna. %s."g_NightVision "enabled" "disabled");

            
menu_display(idg_EquipSettMenu1);
            
write_autoequip_settings(id);

            return 
PLUGIN_HANDLED;
        }
        case 
10:
        {
            
g_Flash g_Flashfalse true;

            
client_print(idprint_chat"Usa granadas de luz. %s."g_Flash "Habilitado" "Fuera de");
            
log_amx("CSDM el uso de flashbangs es %s."g_Flash "enabled" "disabled");

            
menu_display(idg_EquipSettMenu1);
            
write_nades_settings(id);

            return 
PLUGIN_HANDLED;
        }
        case 
11:
        {
            
g_Smoke g_Smokefalse true;

            
client_print(idprint_chat"Usar granadas de humo %s."g_Smoke "Habilitado" "Fuera de");
            
log_amx("CSDM el uso de granadas de humo es %s."g_Smoke "enabled" "disabled");

            
menu_display(idg_EquipSettMenu1);
            
write_nades_settings(id);

            return 
PLUGIN_HANDLED;
        }
        case 
12:
        {
            
g_Nade g_Nadefalse true;

            
client_print(idprint_chat"Utilizar todas las granadas %s."g_Nade "Habilitado" "Fuera de");
            
log_amx("CSDM el uso de el nades es %s."g_Nade "enabled" "disabled");

            
menu_display(idg_EquipSettMenu1);
            
write_nades_settings(id);

            return 
PLUGIN_HANDLED;
        }
        case 
13:
        {
            
g_AlwaysAllowGunMenu g_AlwaysAllowGunMenufalse true;

            
client_print(idprint_chat"Utiliza el menu del equipo siempre. %s."g_AlwaysAllowGunMenu "Habilitado" "Fuera de");
            
log_amx("CSDM Permitir siempre el menu de pistola es %s."g_AlwaysAllowGunMenu "enabled" "disabled");

            
menu_display(idg_EquipSettMenu1);
            
csdm_write_cfg(id"equip""always_allow_gunmenu"g_AlwaysAllowGunMenu "1" "0");

            return 
PLUGIN_HANDLED;
        }
        case 
14:
        {
            
menu_display(idg_SettingsMenug_PageSettMenu);

            return 
PLUGIN_HANDLED;
        }
    }

    return 
PLUGIN_HANDLED;
}

public 
hook_equip_sett_display(playermenuitem)
{
    new 
paccesscommand[24], call;

    
menu_item_getinfo(menuitempaccesscommandcharsmax(command), __call);

    if (
equali(command"1")) {
        if (
g_mPrimStatusmenu_item_setname(menuitem"El menu principal de armas esta en");
        else 
menu_item_setname(menuitem"El menu principal de armas esta desactivado");
    } else if (
equali(command"2")) {
        if (
g_mSecStatusmenu_item_setname(menuitem"El menu del arma secundaria esta en");
        else 
menu_item_setname(menuitem"El menu del arma secundaria esta desactivado");
    } else if (
equali(command"3")) {
        if (
g_mArmorStatusmenu_item_setname(menuitem"Menu de reserva incluido");
        else 
menu_item_setname(menuitem"Menu de armadura esta desactivado");
    } else if (
equali(command"4")) {
        if (
g_mNadeStatusmenu_item_setname(menuitem"Equipar menu granadas habilitado");
        else 
menu_item_setname(menuitem"Equipar menu granadas desactivado");
    } else if (
equali(command"5")) {
        if (
g_mAutoArmormenu_item_setname(menuitem"Equipo de auto blindaje incluido");
        else 
menu_item_setname(menuitem"Equipo de blindaje automatico apagado");
    } else if (
equali(command"6")) {
        if (
g_mAutoArmor && g_Armor == 2menu_item_setname(menuitem"Equipo de auto casco incluido");
        else 
menu_item_setname(menuitem"Casco auto engranaje apagado");
    } else if (
equali(command"7")) {
        if (
g_mAutoNadesmenu_item_setname(menuitem"Incluye granadas de auto");
        else 
menu_item_setname(menuitem"Incluye granadas de auto");
    } else if (
equali(command"8")) {
        if (
g_DefuseKitmenu_item_setname(menuitem"Traje de auto con pinzas incluidas");
        else 
menu_item_setname(menuitem"Traje de auto con pinzas incluidas");
    } else if (
equali(command"9")) {
        if (
g_NightVisionmenu_item_setname(menuitem"Equipo de vision nocturna incluido");
        else 
menu_item_setname(menuitem"Equipo de vision nocturna incluido");
    } else if (
equali(command"10")) {
        if (
g_Flashmenu_item_setname(menuitem"Granadas de luz incluidas");
        else 
menu_item_setname(menuitem"Las granadas de luz estan apagadas");
    } else if (
equali(command"11")) {
        if (
g_Smokemenu_item_setname(menuitem"Granadas de humo incluidas");
        else 
menu_item_setname(menuitem"Las granadas de humo estan apagadas");
    } else if (
equali(command"12")) {
        if (
g_Nademenu_item_setname(menuitem"Granadas explosivas incluidas");
        else 
menu_item_setname(menuitem"Las granadas explosivas estan apagadas");
    } else if (
equali(command"13")) {
        if (
g_AlwaysAllowGunMenumenu_item_setname(menuitem"El uso del menu del equipo esta siempre activado");
        else 
menu_item_setname(menuitem"El uso del menu del equipo siempre esta apagado");
    }
}

public 
write_menus_settings(id)
{
    new 
flags[5] = "";
    new 
menu_flags 0;

    if(
g_mPrimStatus)
        
menu_flags |= (1<<0);
    if(
g_mSecStatus)
        
menu_flags |= (1<<1);
    if(
g_mArmorStatus)
        
menu_flags |= (1<<2);
    if(
g_mNadeStatus)
        
menu_flags |= (1<<3);

    
get_flags(menu_flagsflagscharsmax(flags));

    
replace(flagscharsmax(flags), "a""p");
    
replace(flagscharsmax(flags), "b""s");
    
replace(flagscharsmax(flags), "c""a");
    
replace(flagscharsmax(flags), "d""g");

    
csdm_write_cfg(id"equip""menus"flags);
}

public 
write_autoequip_settings(id)
{
    new 
flags[6] = "";
    new 
auto_flags 0;

    if(
g_mAutoArmor)
        
auto_flags |= (1<<0);
    if(
g_mAutoArmor && g_Armor == 2)
        
auto_flags |= (1<<1);
    if(
g_mAutoNades)
        
auto_flags |= (1<<2);
    if(
g_DefuseKit)
        
auto_flags |= (1<<3);
    if(
g_NightVision)
        
auto_flags |= (1<<4);

    
get_flags(auto_flagsflagscharsmax(flags));

    
// replace(flags, charsmax(flags), "a", "a");
    
replace(flagscharsmax(flags), "b""h");
    
replace(flagscharsmax(flags), "c""g");
    
// replace(flags, charsmax(flags), "d", "d");
    
replace(flagscharsmax(flags), "e""n");

    
csdm_write_cfg(id"equip""autoitems"flags);
}

public 
write_nades_settings(id)
{
    new 
flags[4] = "";
    new 
nade_flags 0;

    if(
g_Flash)
        
nade_flags |= (1<<0);
    if(
g_Nade)
        
nade_flags |= (1<<1);
    if(
g_Smoke)
        
nade_flags |= (1<<2);

    
get_flags(nade_flagsflagscharsmax(flags));

    
replace(flagscharsmax(flags), "a""f");
    
replace(flagscharsmax(flags), "b""h");
    
replace(flagscharsmax(flags), "c""s");

    
csdm_write_cfg(id"equip""grenades"flags);
}
// stuff for settings menu - END 
»» RENTA TU SERVIDOR EN EVOLUTIÓN-HOST ««

Si deseas contactarme para comprar tu servidor de counter-strike puedes enviar un M.P
Responder
#2
pasa el inc csdm
Aprendiendo scripting Excitedeyes || Tratare ayudar en lo que pueda Trolleyes || PD: Soy pobre Cutecry
Responder
#3
(06/06/2019, 12:20 AM)whOo escribió: pasa el inc csdm

Código:
#if defined _csdm_included
    #endinput
#endif

#define _csdm_included

#if AMXX_VERSION_NUM >= 175
    #pragma reqlib csdm
    #if !defined AMXMODX_NOAUTOLOAD
        #pragma loadlib csdm
    #endif
#else
    #pragma library csdm
#endif

#define    CSDM_VERSION     "3.6"

#define    CFG_READ        0        //Line is being read normally
#define    CFG_RELOAD        1        //Section is being parsed from the start
#define    CFG_DONE        2        //Section is done being parsed

#define DEFAULT_ARMOR        100

#define MAX_WEAPONS         32
#define MAX_SECONDARY         8
#define MAX_PRIMARY         18

#define CSDM_FFA_ENABLE        3
#define CSDM_FFA_DISABLE    2
#define CSDM_ENABLE        1
#define CSDM_DISABLE        0

#define CSDM_DROP_CONTINUE    0    //continue normally
#define CSDM_DROP_REMOVE    1    //remove the dropped weapon
#define CSDM_DROP_IGNORE    2    //ignore entirely

#define CSDM_MAXPLAYERS        32

/************
* FORWARDS *
************/

//Called when CSDM initializes.  It passes in a version string, or a blank
// string if some load failure occurred.
//Do pre-config stuff here.
forward csdm_Init(const version[]);

//Called when CSDM is ready to accept config hooks.
forward csdm_CfgInit();

//Called right before a death message is sent.  Return value has no effect.
forward csdm_PreDeath(killer, victim, headshot, const weapon[]);

//Called right after a death message is handled.  
//return PLUGIN_HANDLED will block CSDM from doing any physical respawning.
forward csdm_PostDeath(killer, victim, headshot, const weapon[]);

//Called after a player is physically respawned,
// but before the spawn handler is called.  Returning PLUGIN_HANDLED
// will block CSDM from calling the set spawn handler.
//Note! this will only be called if CSDM internally respawns or you use
// csdm_respawn().
forward csdm_PreSpawn(player, bool:fake);

//Called after a player is physically respawned,
// and after all spawn handling is completed.
forward csdm_PostSpawn(player, bool:fake);

//Called right before round is restarted
//The post parameter is set to 1 if the event is post.
//If post is 0, the event is pre, and PLUGIN_HANDLED will block
// CSDM from doing round restart actions (respawning)
forward csdm_RoundRestart(post);

//Called when a CSDM state is set
forward csdm_StateChange(csdm_state);

/**
* Called when CSDM is about to remove a weapon.  Return PLUGIN_HANDLED to block.
*
* owner - The player who owned this weapon.
* entity_id - The entity index of the weapon.
* box_id - If the weapon is boxed, this will be set to the boxed entity index..
*/
forward csdm_RemoveWeapon(owner, entity_id, boxed_id);

//Called by the main plugin right now
//If death is true, the weapon was dropped on death
//if weapon is -1, the weapon is the shield.
forward csdm_HandleDrop(id, weapon, death);

/***********
* NATIVES *
***********/

//To retrieve/set angles and v_angles, pass up to two more vectors
native csdm_getpos(player, Float:origin[3], ...);

native csdm_setpos(player, const Float:origin[3], ...);

//Returns the number of registered spawn styles
native csdm_spawnstyles();

//Retrieves the name of a spawn style by index (indices start at 0)
native csdm_styleinfo(style_index, name[], maxlength);

//Adds a spawn style handler
native csdm_addstyle(const name[], const function[]);

//Sets the current spawn style handler by name.
//The handler registered to this name will be called after every spawn.
native csdm_setstyle(const name[]);

//Returns the current style id
native csdm_curstyle();

//Respawns a player correctly under the CSDM spawn system.
native csdm_respawn(player);

//Forces a "fake" respawn on the player - sort of like a ResetHUD
native csdm_fakespawn(player);

//Registers a hook on the config reader
//The forward looks like this:
//forward my_cfg_reader(read_mode, const line[], const section[])
native csdm_reg_cfg(const sectionName[], const handler[]);

//Gives an item.  Same as give_item from fun.
native csdm_give_item(player, const item_name[]);

//Forces a player to drop a weapon
native csdm_force_drop(player, const weapon[], remove = 1);

//Schedules a weapon for removal.  0 seconds means immediate
//delay specifies whether it should wait 0.1 seconds or not (0 for immediate lookup)
native csdm_remove_weapon(player, const weapon[], seconds, delay);

//Schedules a weapon for removal.  0 seconds means immediate
//delay specifies whether it should wait 0.1 seconds or not (0 for immediate lookup)
native csdm_remove_weaponbox(player, ent, seconds, delay, shield);

// remove all entity is find name
native csdm_remove_entity_all(const NameEnt[]);

//Reloads the config file
//If you specify a named file, CSDM auto-prepends the configs dir.
// I.e., passing csdm\mapconfigs\de_dust2.cfg will turn into:
// addons\amxmodx\configs\csdm\mapconfigs\de_dust2.cfg
native csdm_reload_cfg(const file[] = "");

//Returns whether CSDM is active
native csdm_active();

//Sets CSDM to active (do not set the cvar!)
native csdm_set_active(on_or_off);

//Returns/sets the current FFA (free for all) state
native csdm_get_ffa();

native csdm_set_ffa(on_or_off);

//Gets/sets the respawn wait time
native Float:csdm_get_spawnwait();

native csdm_set_spawnwait(Float:time);

//returns cache information into each array slot
// 0 - number of free items in spawn task cache
// 1 - number of free task in general task cache
// 2 - number of hot tasks (ones in use)
// 3 - number of cached weapon removals in table
// 4 - number of live weapon removals in table
// 5 - number of weapon find tasks in cache
// in general, 0+5+4 should about equal 1+2
// do not edit the vers parameter.
native csdm_cache(ar[6], vers = 2);

//Quick hack to replace engine dependency and work around a FM bug
//returns 1 if a hull collision is found
native csdm_trace_hull(Float:origin[3], hull_no);

//Disables the CSDM welcome message
//This is useful if you only use CSDM as an engine
//Returns the old value.  Pass -1 to do nothing.
native csdm_set_intromsg(value = -1);

/**
* Natives defined by csdm_main
*/

//Returns the handle for the main CSDM menu, letting you modify it.
native csdm_main_menu();

//Returns the handle for the settings CSDM menu, letting you modify it.
native csdm_settings_menu();

#define CSDM_OPTION_SAYRESPAWN        1    //No extra parameters
#define CSDM_SET_DISABLED        -1
#define CSDM_SET_DEFAULT        0
#define CSDM_SET_ENABLED        1

//Sets an internal option.  Options listed above.
native csdm_set_mainoption(option, setting, ...);

//Runs through the weapon drop deletion algorithm.
//If weapon_id is -1, name should be "weapon_shield"
native csdm_fwd_drop(player, weapon_id, const name[]);

// Writes the Value of the Setting Parameter in the Section of csdm.cfg
native csdm_write_cfg(id, const section[], const parameter[], const value[]);

// Respawn All Player
native csdm_respawn_all_player();

/*** ************ ***
*** HELPER STUFF
***/

#define    SLOT_PRIMARY        1
#define    SLOT_SECONDARY        2
#define    SLOT_KNIFE        3
#define    SLOT_GRENADE        4
#define    SLOT_C4            5

#define    _TEAM_T            1
#define    _TEAM_CT        2

//Weapon slot lookup table
stock g_WeaponSlots[] = {
        0,
        2,    //CSW_P228
        0,
        1,    //CSW_SCOUT
        4,    //CSW_HEGRENADE
        1,    //CSW_XM1014
        5,    //CSW_C4
        1,    //CSW_MAC10
        1,    //CSW_AUG
        4,    //CSW_SMOKEGRENADE
        2,    //CSW_ELITE
        2,    //CSW_FIVESEVEN
        1,    //CSW_UMP45
        1,    //CSW_SG550
        1,    //CSW_GALIL
        1,    //CSW_FAMAS
        2,    //CSW_USP
        2,    //CSW_GLOCK18
        1,    //CSW_AWP
        1,    //CSW_MP5NAVY
        1,    //CSW_M249
        1,    //CSW_M3
        1,    //CSW_M4A1
        1,    //CSW_TMP
        1,    //CSW_G3SG1
        4,    //CSW_FLASHBANG
        2,    //CSW_DEAGLE
        1,    //CSW_SG552
        1,    //CSW_AK47
        3,    //CSW_KNIFE
        1    //CSW_P90
};
    
//Maximum backpack ammo lookup table
stock g_MaxBPAmmo[] = {
        0,
        52,        //CSW_P228
        0,
        90,        //CSW_SCOUT
        1,        //CSW_HEGRENADE
        32,        //CSW_XM1014
        1,        //CSW_C4
        100,        //CSW_MAC10
        90,        //CSW_AUG
        1,        //CSW_SMOKEGRENADE
        120,        //CSW_ELITE
        100,        //CSW_FIVESEVEN
        100,        //CSW_UMP45
        90,        //CSW_SG550
        90,        //CSW_GALIL
        90,        //CSW_FAMAS
        100,        //CSW_USP
        120,        //CSW_GLOCK18
        30,        //CSW_AWP
        120,        //CSW_MP5NAVY
        200,        //CSW_M249
        32,        //CSW_M3
        90,        //CSW_M4A1
        120,        //CSW_TMP
        90,        //CSW_G3SG1
        2,        //CSW_FLASHBANG
        35,        //CSW_DEAGLE
        90,        //CSW_SG552
        90,        //CSW_AK47
        0,        //CSW_KNIFE
        100        //CSW_P90
};
    
#define getWepId(%1)    get_weaponid(%1)

stock bool:IsValidTeam(team)
{
    if (team == 1 || team == 2) {
        return true;
    }
    return false;
}

stock drop_with_shield(player, weapon_id)
{
    new name[32];
    get_weaponname(weapon_id, name, charsmax(name));
    csdm_force_drop(player, "weapon_shield", 0);
    csdm_force_drop(player, name, 0);
    csdm_fwd_drop(player, -1, "weapon_shield");
    csdm_fwd_drop(player, weapon_id, name);
    csdm_give_item(player, "weapon_shield");
}
»» RENTA TU SERVIDOR EN EVOLUTIÓN-HOST ««

Si deseas contactarme para comprar tu servidor de counter-strike puedes enviar un M.P
Responder
#4
Esa configuración debe estar en alguno de los .ini o .cfg

Es cuestión de leer
[Imagen: bvpq9q-6.png]

NO DOY AYUDA VIA MENSAJE PRIVADO

* Si requieres algún servicio de pago puedes contactarme vía MP o en mi facebook
Responder
#5
me imagino que debe ser este esta en csdm.cfg
Cita:grenades = fhs

---->

Cita:grenades = h
Aprendiendo scripting Excitedeyes || Tratare ayudar en lo que pueda Trolleyes || PD: Soy pobre Cutecry
Responder
#6
Muchas gracias a los 2 por ayudarme, el detalle para desactivar la smoke y flasbang era en csdm.cfg, no me habia fijado porque estaba en russo y no lo había traducido
»» RENTA TU SERVIDOR EN EVOLUTIÓN-HOST ««

Si deseas contactarme para comprar tu servidor de counter-strike puedes enviar un M.P
Responder


Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)