Code:
#include <amxmodx>
#include <amxmisc>
#include <fakemeta>
#include <cstrike>
#include <fun>
#include <hamsandwich>
enum eShopItems
{
ITEM_NAME[ 64 ],
ITEM_COUNT,
ITEM_ACCESS
}
new const g_szItems[ ][eShopItems] =
{
{ "\y+100 \wHealth", 100, ADMIN_ALL },
{ "\y+200 \wArmor", 200, ADMIN_ALL },
{ "\y600 \wGravity", 600, ADMIN_ALL },
{ "\y450 \wSpeed", 450, ADMIN_ALL },
{ "\wGrenade Pack", 0, ADMIN_ALL },
{ "\wNightvision [\yFor Dark Maps\w]", 0, ADMIN_ALL },
{ "\wAll in One \r(Admins Only)", 0, ADMIN_CHAT },
}
new g_iHasSpeed[ 33 ];
public plugin_init( )
{
register_plugin( "VIP SHOP", "1.0", "Supremache" );
register_clcmd("menu_vip", "VIPShopMenu", ADMIN_LEVEL_H, "VIP's Menu" );
RegisterHam( Ham_Item_PreFrame, "player", "@CBase_Player_ResetMaxSpeed", 1 );
}
@CBase_Player_ResetMaxSpeed( id )
{
if( ! is_user_alive( id ) || !g_iHasSpeed[ id ] )
{
return;
}
set_pev( id, pev_maxspeed, float( g_szItems[ 3 ][ ITEM_COUNT ] ) );
}
public VIPShopMenu( id, iLevel, iCid )
{
if( !cmd_access( id, iLevel, iCid, 1 ) )
{
return PLUGIN_HANDLED;
}
new szID[ 5 ], iMenu = menu_create( "VIP MENU:", "VIPShopHandler" )
for( new i ; i < sizeof g_szItems; i++ )
{
num_to_str( i, szID, charsmax( szID ) );
menu_additem( iMenu, g_szItems[ i ][ ITEM_NAME ], szID, g_szItems[ i ][ ITEM_ACCESS ] );
}
menu_display( id, iMenu );
return PLUGIN_HANDLED;
}
public VIPShopHandler( id, iMenu, iItem )
{
if( iItem != MENU_EXIT )
{
static szData[ 10 ], iUnused;
menu_item_getinfo( iMenu, iItem, iUnused, szData, charsmax(szData), .callback = iUnused )
new iItemID = str_to_num( szData );
switch( iItemID )
{
case 0: set_pev( id, pev_health, pev( id, pev_health ) + float( g_szItems[ iItemID ][ ITEM_COUNT ] ) );
case 1: set_pev( id, pev_armorvalue, pev( id, pev_armorvalue ) + float( g_szItems[ iItemID ][ ITEM_COUNT ] ) );
case 2: set_pev( id, pev_gravity, float( g_szItems[ iItemID ][ ITEM_COUNT ] ) / 800.0 );
case 3: g_iHasSpeed[ id ] = true;
case 4: { give_item(id, "CSW_HEGRENADE"); give_item(id, "CSW_SMOKEGRENADE"); }
case 5: cs_set_user_nvg( id );
case 6:
{
g_iHasSpeed[ id ] = true;
set_pev( id, pev_health, pev( id, pev_health ) + float( g_szItems[ iItemID ][ ITEM_COUNT ] ) );
set_pev( id, pev_armorvalue, pev( id, pev_armorvalue ) + float( g_szItems[ iItemID ][ ITEM_COUNT ] ) );
set_pev( id, pev_gravity, float( g_szItems[ iItemID ][ ITEM_COUNT ] ) / 800.0 );
give_item(id, "CSW_HEGRENADE");
give_item(id, "CSW_SMOKEGRENADE");
cs_set_user_nvg( id );
}
}
}
menu_destroy( iMenu );
return PLUGIN_HANDLED;
}