Code:
/* Plugin generated by AMXX-Studio */
#include < amxmodx >
#include < cstrike >
#include < colorchat >
#include < hamsandwich >
#include < fakemeta_util >
#include < fun >
#define VIP_ACCESS ADMIN_KICK
new const PLUGIN[ ] = "Vip menu"
new const VERSION[ ] = "1.1"
new const AUTHOR[ ] = "alliedmodders"
new bool:gRoundUsage[ 33 ] = false
new bool:gGlowing[ 33 ] = false
new PlayerUsed[ 33 ]
public plugin_init( )
{
register_plugin ( PLUGIN, VERSION, AUTHOR )
register_logevent ( "logevent_round_start", 2, "1=Round_Start" )
RegisterHam(Ham_Spawn, "player", "fw_PlayerSpawn_Post", 1)
register_clcmd ( "say /vmenu", "VipMenu" )
// Add your code here...
}
public client_putinserver( id )
{
gRoundUsage[ id ] = false
gGlowing[ id ] = false
PlayerUsed[ id ] = false
}
public fw_PlayerSpawn_Post(id)
{
PlayerUsed[ id ] = false;
}
public logevent_round_start( )
{
new Players[ 32 ], PlayersNum, id
get_players( Players, PlayersNum, "ch" )
for( new i; i < PlayersNum; i++ )
{
id = Players[ i ]
gRoundUsage[ id ] = false
PlayerUsed[ id ] = false
if( gGlowing[ id ] )
{
if( cs_get_user_team( id ) == CS_TEAM_T )
set_user_rendering(id,kRenderFxGlowShell,255,0,0,kRenderNormal,25)//red
if( cs_get_user_team( id ) == CS_TEAM_CT )
set_user_rendering( id, kRenderFxGlowShell, 0, 0, 255, kRenderNormal, 25 )//blue
}
}
}
public VipMenu( id )
{
if( ~get_user_flags( id ) & VIP_ACCESS )
return PLUGIN_HANDLED
new menu
if( cs_get_user_team( id ) == CS_TEAM_CT )
menu = menu_create( "\wVIP Menu --> \rHumans ", "menu_handler" )
if( cs_get_user_team( id ) == CS_TEAM_T )
menu = menu_create( "\wVIP Menu --> \rZombies ", "menu_handler" )
if( cs_get_user_team( id ) == CS_TEAM_CT )
menu_additem( menu, "\r255 HP / ARMOR ", "", 0 )
if( cs_get_user_team( id ) == CS_TEAM_T )
menu_additem( menu, "\r1000 HP ", "", 0 )
menu_additem( menu, "\rSwitch team ", "", 0 )
menu_additem( menu, "\rRevive ", "", 0 )
menu_additem( menu, "\rGlow ", "", 0)
menu_display( id, menu, 0 )
return PLUGIN_CONTINUE
}
public menu_handler( id, menu, item )
{
switch( item )
{
case 0:
{
if(PlayerUsed[id] == 1)
{
ColorChat( id, RED, "^x04[Thirsty-Devils]^x01 You can only buy that item once in round.")
return PLUGIN_HANDLED
}
if( cs_get_user_team( id ) == CS_TEAM_CT )
{
if( !is_user_alive( id ) )
{
ColorChat( id, RED, "^x04[Thirsty-Devils]^x01 You're dead." )
return PLUGIN_HANDLED
}
set_user_health( id, 255 )
set_user_armor( id, 255 )
ColorChat( id, RED, "^x04[Thirsty-Devils]^x01 You recieved 255 HP / ARMOR." )
gRoundUsage[ id ] = true
PlayerUsed[ id ] = true;
return PLUGIN_CONTINUE
}
if( cs_get_user_team( id ) == CS_TEAM_T )
{
if( !is_user_alive( id ) )
{
ColorChat( id, RED, "^x04[Thirsty-Devils]^x01 You're dead." )
return PLUGIN_HANDLED
}
set_user_health(id, get_user_health(id) + 1000)
ColorChat( id, RED, "^x04[Thirsty-Devils]^x01 You recieved 1000 HP." )
gRoundUsage[ id ] = false
PlayerUsed[id] = true;
return PLUGIN_CONTINUE
}
}
case 1:
{
if(PlayerUsed[id] == 1)
{
ColorChat( id, RED, "^x04[Thirsty-Devils]^x01 You can only buy that item once in round.")
return PLUGIN_HANDLED
}
if( cs_get_user_team( id ) == CS_TEAM_CT )
{
cs_set_user_team( id, CS_TEAM_T )
ColorChat( id, RED, "^x04[Thirsty-Devils]^x01 Team switched." )
set_user_rendering(id,kRenderFxGlowShell,255,0,0,kRenderNormal,25)//red
gRoundUsage[ id ] = true
PlayerUsed[ id ] = true
Revive( id, 100, 100 )
return PLUGIN_CONTINUE
}
if( cs_get_user_team( id ) == CS_TEAM_T )
{
cs_set_user_team( id, CS_TEAM_CT )
ColorChat( id, RED, "^x04[Thirsty-Devils]^x01 Team switched." )
set_user_rendering( id, kRenderFxGlowShell, 0, 0, 255, kRenderNormal, 25 )//blue
gRoundUsage[ id ] = true
PlayerUsed[ id ] = true;
Revive( id, 100, 100 )
return PLUGIN_CONTINUE
}
}
case 2:
{
if(PlayerUsed[id] == 1)
{
ColorChat( id, RED, "^x04[Thirsty-Devils]^x01 You can only buy that item once in round.")
return PLUGIN_HANDLED
}
if( cs_get_user_team( id ) == CS_TEAM_CT || cs_get_user_team( id ) == CS_TEAM_T )
{
if( !is_user_alive( id ) )
{
ColorChat( id, RED, "^x04[Thirsty-Devils]^x01 You've been revived!" )
gRoundUsage[ id ] = true
PlayerUsed[ id ] = true;
Revive( id, 100, 100 )
return PLUGIN_CONTINUE
} else {
ColorChat( id, RED, "^x04[Thirsty-Devils]^x01 You're already alive!" )
return PLUGIN_CONTINUE
}
} else {
ColorChat( id, RED, "^x04[Thirsty-Devils]^x01 You're a spectator." )
return PLUGIN_CONTINUE
}
}
case 3:
{
if(PlayerUsed[id] == 1)
{
ColorChat( id, RED, "^x04[Thirsty-Devils]^x01 You can only buy that item once in round.")
return PLUGIN_HANDLED
}
if( cs_get_user_team( id ) == CS_TEAM_T )
set_user_rendering(id,kRenderFxGlowShell,255,0,0,kRenderNormal,25)//red
if( cs_get_user_team( id ) == CS_TEAM_CT )
set_user_rendering( id, kRenderFxGlowShell, 0, 0, 255, kRenderNormal, 25 )//blue
ColorChat( id, RED, "^x04[Thirsty-Devils]^x01 You're glowing!" )
gRoundUsage[ id ] = true
PlayerUsed[ id ] = true;
gGlowing[ id ] = true
return PLUGIN_HANDLED
}
}
PlayerUsed[id]++
return PLUGIN_HANDLED
}
// this is from ut revive
Revive( index, hp, armor )
{
set_pev( index, pev_deadflag, DEAD_RESPAWNABLE )
set_pev( index, pev_iuser1, 0 )
dllfunc( DLLFunc_Think, index )
engfunc( EngFunc_SetOrigin, index, Float:{-4800.0,-4800.0,-4800.0} )
new array[ 3 ]
array[ 0 ] = index
array[ 1 ] = hp
array[ 2 ] = armor
set_task( 0.5, "respawn", 0, array, 3 )
}
public respawn( array[ 3 ] )
{
new index = array[ 0 ]
new hp = array[ 1 ]
new armor = array[ 2 ]
if( is_user_connected( index ) )
{
dllfunc( DLLFunc_Spawn,index )
set_pev( index,pev_health, float( hp ) )
set_pev( index,pev_armorvalue, float( armor ) )
switch( get_user_team( index ) )
{
case 1: fm_give_items( index, "weapon_knife" ) // items?
case 2: fm_give_item( index, "weapon_knife" ) // item?
}
}
}
stock fm_give_items( id, const item[ ] )
{
static ent
ent = engfunc( EngFunc_CreateNamedEntity, engfunc( EngFunc_AllocString, item ) )
if( !pev_valid( ent ) ) return
static Float:originF[ 3 ]
pev( id, pev_origin, originF )
set_pev( ent, pev_origin, originF )
set_pev( ent, pev_spawnflags, pev( ent, pev_spawnflags ) | SF_NORESPAWN )
dllfunc( DLLFunc_Spawn, ent )
static save
save = pev( ent, pev_solid )
dllfunc( DLLFunc_Touch, ent, id )
if( pev( ent,pev_solid ) != save )
return
engfunc( EngFunc_RemoveEntity, ent )
}