#include <amxmodx>
#include <amxmisc>
#include <fakemeta_util>
#include <hamsandwich>
#include <cstrike>
#define PLUGIN "VIP"
#define VERSION "1.0"
#define AUTHOR "Truth*"
#define SCOREATTRIB_NONE 0
#define SCOREATTRIB_DEAD ( 1 << 0 )
#define SCOREATTRIB_BOMB ( 1 << 1 )
#define SCOREATTRIB_VIP ( 1 << 2 )
#define VIP_ACCESS ADMIN_LEVEL_H
new const vGoldenAk[ 64 ] = "models/v_golden_ak47.mdl";
new const pGoldenAk[ 64 ] = "models/p_golden_ak47.mdl";
new const vGoldenM4[ 64 ] = "models/v_golden_m4a1.mdl";
new const pGoldenM4[ 64 ] = "models/p_golden_m4a1.mdl";
new const vGoldenAWP[ 64 ] = "models/v_golden_mp5.mdl";
new const pGoldenAWP[ 64 ] = "models/p_golden_mp5.mdl";
new const vGDeagle[ 64 ] = "models//v_golden_deagle.mdl";
new const pGDeagle[ 64 ] = "models/p_golden_deagle.mdl";
new bool: HaveWeapon[ 33 ];
new bool: AreGoldenAK[ 33 ];
new bool: AreGoldenM4[ 33 ];
new bool: AreGoldenAWP[ 33 ];
new bool: AreGoldenD[ 33 ];
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
register_event( "CurWeapon", "CurrWeapon", "be", "1=1" );
RegisterHam( Ham_Spawn, "player", "Spawn", true );
register_clcmd( "say_team /vipmenu", "VipMenu" );
register_clcmd( "say_team /vipinfo", "VipMOTD" );
register_message( get_user_msgid( "ScoreAttrib" ), "MessageScoreAttrib" );
// Add your code here...
}
public VipMOTD(id) show_motd(id, "addons/amxmodx/configs/vip.html", "VIP");
public plugin_precache( )
{
//-- | Arme Gold | --//
precache_model( vGoldenAk );
precache_model( pGoldenAk );
precache_model( vGoldenM4 );
precache_model( pGoldenM4 );
precache_model( vGoldenAWP );
precache_model( pGoldenAWP );
precache_model( vGDeagle );
precache_model( pGDeagle );
}
public Spawn ( id )
{
AreGoldenAK[ id ] = false;
AreGoldenM4[ id ] = false;
AreGoldenAWP[ id ] = false;
HaveWeapon[ id ] = false;
AreGoldenD[ id ] = false;
if( is_user_alive(id) && get_user_flags(id) & VIP_ACCESS )
{
fm_give_item( id, "weapon_hegrenade" );
fm_give_item( id, "weapon_flashbang" );
fm_give_item( id, "weapon_smokegrenade" );
}
}
public CurrWeapon ( id ) {
new Arma = read_data( 2 )
if( Arma == CSW_AK47 && AreGoldenAK[ id ] )
{
set_pev( id, pev_viewmodel2, vGoldenAk )
set_pev( id, pev_weaponmodel2, pGoldenAk )
}
if( Arma == CSW_M4A1 && AreGoldenM4[ id ] )
{
set_pev( id, pev_viewmodel2, vGoldenM4 )
set_pev( id, pev_weaponmodel2, pGoldenM4 )
}
if( Arma == CSW_AWP && AreGoldenAWP[ id ] )
{
set_pev( id, pev_viewmodel2, vGoldenAWP )
set_pev( id, pev_weaponmodel2, pGoldenAWP )
}
if ( Arma == CSW_DEAGLE && AreGoldenD [ id ] ) {
set_pev ( id, pev_viewmodel2, vGDeagle );
set_pev ( id, pev_weaponmodel2, pGDeagle );
}
}
public VipMenuCMD( id ) {
new MeniuVIP = menu_create( "\r* V.I.P. * \yMenu", "VipMenuCMDHandler" )
if(get_user_flags(id) & VIP_ACCESS )
{
menu_additem( MeniuVIP, "\yGolden [\r AK47\y ] ", "1", 0 )
}
else
{
menu_additem( MeniuVIP, "\yGolden [\r AK47\y ] - \d( Only VIP )", "1", 0 )
}
if(get_user_flags(id) & VIP_ACCESS )
{
menu_additem( MeniuVIP, "\yGolden [\r M4A1\y ] ", "2", 0 )
}
else
{
menu_additem( MeniuVIP, "\yGolden [\r M4A1\y ] - \d( Only VIP )", "2", 0 )
}
if(get_user_flags(id) & VIP_ACCESS )
{
menu_additem( MeniuVIP, "\yGolden [\r AWP\y ] ", "3", 0 )
}
else
{
menu_additem( MeniuVIP, "\yGolden [\r AWP\y ] - \d( Only VIP )", "3", 0 )
}
menu_setprop( MeniuVIP, MPROP_EXIT, MEXIT_ALL )
menu_display( id, MeniuVIP, 0 )
}
public VipMenuCMDHandler( id, MeniuVIP, item )
{
if( !is_user_alive( id ) )
{
ColorChat( id, "^x01[^x04 Vip Menu^x01 ] Nu poti accesa meniul cand esti mort!" )
return PLUGIN_HANDLED
}
if( item == MENU_EXIT )
{
menu_destroy( MeniuVIP )
return PLUGIN_HANDLED
}
switch( item )
{
case 0 :
{
if(get_user_flags(id) & VIP_ACCESS )
{
fm_strip_user_weapons(id);
fm_give_item(id, "weapon_knife");
fm_give_item( id, "weapon_hegrenade" );
fm_give_item( id, "weapon_flashbang" );
fm_give_item( id, "weapon_smokegrenade" );
fm_give_item(id, "weapon_deagle");
cs_set_user_bpammo( id, CSW_DEAGLE, 70 );
fm_give_item(id, "weapon_ak47" );
cs_set_user_bpammo( id, CSW_AK47, 90 );
set_pev( id, pev_viewmodel2, vGoldenAk );
set_pev( id, pev_weaponmodel2, pGoldenAk );
HaveWeapon[ id ] = true;
AreGoldenAK[ id ] = true;
AreGoldenM4[ id ] = false;
AreGoldenAWP[ id ] = false;
AreGoldenD[ id ] = true;
CurrWeapon( id );
}
else
{
ColorChat(id, "^x01[^x04 Vip Menu^x01 ] Nu ai acces la acest meniu !" );
}
}
case 1 :
{
if(get_user_flags(id) & VIP_ACCESS )
{
fm_strip_user_weapons(id);
fm_give_item(id, "weapon_knife");
fm_give_item( id, "weapon_hegrenade" );
fm_give_item( id, "weapon_flashbang" );
fm_give_item( id, "weapon_smokegrenade" );
fm_give_item(id, "weapon_deagle");
cs_set_user_bpammo( id, CSW_DEAGLE, 70 );
fm_give_item(id, "weapon_m4a1");
cs_set_user_bpammo( id, CSW_M4A1, 90 );
set_pev( id, pev_viewmodel2, vGoldenM4 );
set_pev( id, pev_weaponmodel2, pGoldenM4 );
HaveWeapon[ id ] = true;
AreGoldenAK[ id ] = false;
AreGoldenM4[ id ] = true;
AreGoldenAWP[ id ] = false;
AreGoldenD[ id ] = true;
CurrWeapon( id );
}
else
{
ColorChat(id, "^x01[^x04 Vip Menu^x01 ] Nu ai acces la acest meniu !" );
}
}
case 2 :
{
if(get_user_flags(id) & VIP_ACCESS )
{
fm_strip_user_weapons(id);
fm_give_item(id, "weapon_knife");
fm_give_item( id, "weapon_hegrenade" );
fm_give_item( id, "weapon_flashbang" );
fm_give_item( id, "weapon_smokegrenade" );
fm_give_item(id, "weapon_deagle");
cs_set_user_bpammo( id, CSW_DEAGLE, 70 );
fm_give_item(id, "weapon_mp5navy");
cs_set_user_bpammo( id, CSW_AWP, 90 );
set_pev( id, pev_viewmodel2, vGoldenAWP );
set_pev( id, pev_weaponmodel2, pGoldenAWP );
HaveWeapon[ id ] = true;
AreGoldenAK[ id ] = false;
AreGoldenM4[ id ] = false;
AreGoldenAWP[ id ] = true;
AreGoldenD[ id ] = true;
CurrWeapon( id );
}
else
{
ColorChat(id, "^x01[^x04 Vip Menu^x01 ] Nu ai acces la acest meniu !" );
}
}
}
menu_destroy( MeniuVIP )
return PLUGIN_HANDLED
}
public VipMenu( id )
{
if( !is_user_alive( id ) )
{
ColorChat( id, "^x01[^x04 Vip Menu^x01 ] Nu poti accesa meniul cand esti mort !" );
return
}
if( HaveWeapon[ id ] )
{
ColorChat( id, "^x01[^x04 Vip Menu^x01 ] Ti-ai ales deja arma pe runda aceasta." );
return
}
VipMenuCMD( id );
}
public MessageScoreAttrib( iMsgID, iDest, iReceiver ) {
new iPlayer = get_msg_arg_int( 1 );
if( is_user_connected( iPlayer ) && ( get_user_flags( iPlayer ) & VIP_ACCESS ) )
{
set_msg_arg_int( 2, ARG_BYTE, is_user_alive( iPlayer ) ? SCOREATTRIB_VIP : SCOREATTRIB_DEAD );
}
}
stock ColorChat(const id, const input[], any:...) {
new count = 1, players[32];
static msg[191];
vformat(msg, 190, input, 3);
replace_all(msg, 190, "!x04", "^4");
replace_all(msg, 190, "!x01", "^1");
replace_all(msg, 190, "!x03", "^3");
if(id) players[0] = id;
else get_players(players, count, "ch"); {
for(new i = 0; i < count; i++) {
if(is_user_connected(players)) {
message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players);
write_byte(players);
write_string(msg);
message_end();
}
}
}
}