Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /**
- * AMX Mod X
- * V.I.P. Plugin
- *
- * Originally developed by wasntme/Caldeum
- *
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the
- * Free Software Foundation; either version 2 of the License, or (at
- * your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- *
- * In addition, as a special exception, the author gives permission to
- * link the code of this program with the Half-Life Game Engine ("HL
- * Engine") and Modified Game Libraries ("MODs") developed by Valve,
- * L.L.C ("Valve"). You must obey the GNU General Public License in all
- * respects for all of the code used other than the HL Engine and MODs
- * from Valve. If you modify this file, you may extend this exception
- * to your version of the file, but you are not obligated to do so. If
- * you do not wish to do so, delete this exception statement from your
- * version.
- *
- *
- * Link to the plugin
- *
- * http://forums.alliedmods.net/showthread.php?t=131494
- *
- **/
- #include < amxmodx >
- #include < amxmisc >
- #include < cstrike >
- #include < fun >
- #include < fakemeta >
- #include < fakemeta_util >
- #include < hamsandwich >
- #define PLUGIN "VIP"
- #define VERSION "0.3"
- #define AUTHOR "wasntme/Caldeum"
- #define VIP_ACCESS ADMIN_LEVEL_H
- #define FFADE_IN 0x0000
- #define CharsMax(%1) sizeof %1 - 1
- #define IsPlayer(%1) ( 1 <= %1 <= g_iMaxPlayers )
- const m_LastHitGroup = 75;
- new equipment_mode[ 33 ], money_mode[ 33 ], critical_mode[ 33 ], soldier_mode[ 33 ], heavy_mode[ 33 ], medic_mode[ 33 ];
- new equipment_active[ 33 ], money_active[ 33 ], critical_active[ 33 ], soldier_active[ 33 ], heavy_active[ 33 ], medic_active[ 33 ];
- new bool:g_showrecieved;
- new bool:canHeal = true;
- new g_iMaxPlayers;
- new g_iRoundCount = 0, g_roundendfix;
- new g_hudmsg1, g_hudmsg2;
- new g_msgFade, g_msgShake;
- new g_msgSayText, g_msgTeamInfo;
- new p_Enabled, p_Join, p_Damage, p_Type, p_Recieved, p_Defuser, p_Equipment, p_Money, p_Critical, p_Soldier, p_Heavy, p_Medic, p_MoneyGive, p_CriticalChance, p_CriticalDamage, p_SoldierMaxHp, p_SoldierKillHp, p_SoldierArmor, p_HeavyArmor, p_MedicHpRegen, p_MedicHpRegenSpeed, p_MedicMaxHp;
- public plugin_init ( )
- {
- register_plugin( PLUGIN, VERSION, AUTHOR );
- register_event( "HLTV", "event_NewRound", "a", "1=0", "2=0" );
- register_logevent( "event_RoundEnd", 2, "0=World triggered", "1=Round_End" );
- RegisterHam( Ham_Spawn, "player", "player_Spawn", 1 );
- RegisterHam( Ham_TraceAttack, "player", "player_Attack" );
- RegisterHam( Ham_TakeDamage, "player", "player_TakeDamage" );
- register_event( "DeathMsg", "event_PlayerHeal", "a" );
- register_event( "Damage", "event_ShowDamage", "b", "2!0", "3=0", "4!0" );
- register_forward( FM_PlayerPreThink, "pthink" );
- p_Enabled = register_cvar( "amx_vip_script", "1" );
- p_Join = register_cvar( "amx_vip_join", "1" );
- p_Type = register_cvar( "amx_vip_damage", "2" );
- p_Recieved = register_cvar( "amx_vip_damage_recieved", "1" );
- p_Defuser = register_cvar( "amx_vip_defuser", "1" );
- p_Equipment = register_cvar( "amx_vip_equipment", "1" );
- p_Money = register_cvar( "amx_vip_money", "1" );
- p_MoneyGive = register_cvar( "amx_vip_money_give", "2500" );
- p_Critical = register_cvar( "amx_vip_critical", "1" );
- p_CriticalChance = register_cvar( "amx_vip_critical_chance", "15" );
- p_CriticalDamage = register_cvar( "amx_vip_critical_damage", "2.0" );
- p_Soldier = register_cvar( "amx_vip_soldier", "1" );
- p_SoldierKillHp = register_cvar( "amx_vip_soldier_kill_hp", "5" );
- p_SoldierMaxHp = register_cvar( "amx_vip_soldier_max_hp", "120" );
- p_SoldierArmor = register_cvar( "amx_vip_soldier_armor", "120" );
- p_Heavy = register_cvar( "amx_vip_heavy", "1" );
- p_HeavyArmor = register_cvar( "amx_vip_heavy_armor", "250" );
- p_Medic = register_cvar( "amx_vip_medic", "1" );
- p_MedicHpRegen = register_cvar( "amx_vip_medic_hp_regen", "2" );
- p_MedicHpRegenSpeed = register_cvar( "amx_vip_medic_hp_regen_speed", "2.0" );
- p_MedicMaxHp = register_cvar( "amx_vip_medic_max_hp", "100" );
- register_concmd( "vipmenu", "show_vip_menu" );
- register_clcmd( "say /vipmenu", "show_vip_menu" );
- register_clcmd( "say vipmenu", "show_vip_menu" );
- register_clcmd( "say_team /vipmenu", "show_vip_menu" );
- register_clcmd( "say_team vipmenu", "show_vip_menu" );
- register_clcmd( "say /vips", "viplist" );
- register_clcmd( "say vips", "viplist" );
- register_clcmd( "say_team /vips", "viplist" );
- register_clcmd( "say_team vips", "viplist" );
- g_hudmsg1 = CreateHudSyncObj( );
- g_hudmsg2 = CreateHudSyncObj( );
- g_msgFade = get_user_msgid( "ScreenFade" );
- g_msgShake = get_user_msgid( "ScreenShake" );
- g_msgSayText = get_user_msgid( "SayText" );
- g_msgTeamInfo = get_user_msgid( "TeamInfo" );
- g_iMaxPlayers = get_maxplayers( );
- register_dictionary( "vip.txt" );
- }
- public client_connect ( id )
- {
- if ( get_user_flags( id ) & VIP_ACCESS )
- {
- equipment_mode[ id ] = 0;
- money_mode[ id ] = 0;
- critical_mode[ id ] = 0;
- soldier_mode[ id ] = 0;
- heavy_mode[ id ] = 0;
- medic_mode[ id ] = 0;
- }
- }
- public client_disconnect ( id )
- {
- remove_task( id );
- if ( get_user_flags( id ) & VIP_ACCESS )
- {
- equipment_mode[ id ] = 0;
- money_mode[ id ] = 0;
- critical_mode[ id ] = 0;
- soldier_mode[ id ] = 0;
- heavy_mode[ id ] = 0;
- medic_mode[ id ] = 0;
- }
- }
- public client_putinserver ( id )
- {
- if ( get_user_flags( id ) & VIP_ACCESS )
- {
- if ( get_pcvar_num( p_Join ) && g_iRoundCount > 1 )
- {
- new name[ 32 ];
- get_user_name( id, name, 31 );
- print_color( 0, id, 0, "%L", LANG_SERVER, "VIP_JOIN", name );
- }
- }
- }
- public event_ShowDamage ( id )
- {
- if ( p_Damage )
- {
- static attacker, damage;
- attacker = get_user_attacker( id );
- damage = read_data( 2 );
- if ( g_showrecieved && ( get_user_flags( id ) & VIP_ACCESS ) )
- {
- set_hudmessage( 200, 20, 20, 0.45, 0.50, 2, 0.1, 4.0, 0.1, 0.1, -1 );
- ShowSyncHudMsg( id, g_hudmsg2, "%i^n", damage );
- }
- if ( is_user_connected( attacker ) )
- {
- switch( p_Damage )
- {
- case 1:
- {
- if ( is_user_alive( attacker ) && ( get_user_flags( attacker ) & VIP_ACCESS ) )
- {
- set_hudmessage( 34, 139, 34, -1.0, 0.55, 2, 0.1, 4.0, 0.02, 0.02, -1 );
- ShowSyncHudMsg( attacker, g_hudmsg1, "%i^n", damage );
- }
- }
- case 2:
- {
- if ( is_user_alive( attacker ) && ( get_user_flags( attacker ) & VIP_ACCESS ) && fm_is_ent_visible( attacker, id ) )
- {
- set_hudmessage( 34, 139, 34, -1.0, 0.55, 2, 0.1, 4.0, 0.02, 0.02, -1 );
- ShowSyncHudMsg( attacker, g_hudmsg1, "%i^n", damage );
- }
- }
- }
- }
- }
- }
- public player_TakeDamage ( VictimId, InflictorId, AttackerId, Float:damage, dmgbits )
- {
- if ( IsPlayer( AttackerId ) && critical_active[ AttackerId ] && cs_get_user_team( VictimId ) != cs_get_user_team( AttackerId ) && get_pcvar_num( p_CriticalChance ) > random( 100 ) )
- {
- if ( get_user_flags( AttackerId ) & VIP_ACCESS )
- {
- new Float:crit_damage = damage * get_pcvar_float( p_CriticalDamage );
- SetHamParamFloat( 4, crit_damage );
- new szVictim[ 32 ];
- get_user_name( VictimId, szVictim, 31 );
- print_color( AttackerId, AttackerId, 0, "%L", LANG_PLAYER, "VIP_CRITICAL_HIT", szVictim );
- client_cmd( AttackerId, "spk silent/vip/player/critical" );
- }
- }
- return HAM_IGNORED;
- }
- public event_PlayerHeal ( )
- {
- new iKiller = read_data( 1 );
- new iVictim = read_data( 2 );
- if ( get_user_flags( iKiller ) & VIP_ACCESS )
- {
- if ( soldier_active[ iKiller ] && cs_get_user_team( iVictim ) != cs_get_user_team( iKiller ) )
- {
- new MaxHp = get_pcvar_num( p_SoldierMaxHp );
- new BonusHp = get_pcvar_num( p_SoldierKillHp );
- new TotalHp = get_user_health( iKiller ) + BonusHp;
- if ( TotalHp >= MaxHp )
- {
- set_user_health( iKiller, MaxHp );
- print_color( iKiller, iKiller, 0, "%L", LANG_SERVER, "VIP_SOLDIER_MAX_HP", get_pcvar_num( p_SoldierMaxHp ) );
- client_cmd( iKiller, "spk silent/vip/player/maximum" );
- message_begin( MSG_ONE_UNRELIABLE, g_msgFade, .player=iKiller );
- {
- write_short( 1<<13 );
- write_short( 1<<5 );
- write_short( FFADE_IN );
- write_byte( 139 );
- write_byte( 34 );
- write_byte( 34 );
- write_byte( 75 );
- }
- message_end( );
- message_begin( MSG_ONE_UNRELIABLE, g_msgShake, .player=iKiller );
- {
- write_short( 255<<7 );
- write_short( 50<<7 );
- write_short( 255<<7 );
- }
- message_end( );
- } else {
- set_user_health( iKiller, TotalHp );
- print_color( iKiller, iKiller, 0, "%L", LANG_SERVER, "VIP_SOLDIER_HEAL", get_pcvar_num( p_SoldierKillHp ) );
- client_cmd( iKiller, "spk silent/vip/items/health" );
- message_begin( MSG_ONE_UNRELIABLE, g_msgFade, .player=iKiller );
- {
- write_short( 1<<12 );
- write_short( 1<<5 );
- write_short( FFADE_IN );
- write_byte( 139 );
- write_byte( 34 );
- write_byte( 34 );
- write_byte( 75 );
- }
- message_end( );
- message_begin( MSG_ONE_UNRELIABLE, g_msgShake, .player=iKiller );
- {
- write_short( 255<<5 );
- write_short( 50<<5 );
- write_short( 255<<5 );
- }
- message_end( );
- }
- }
- }
- }
- public player_Attack ( id, iAttacker, Float:flDamage, Float:fVecDir[3], tr )
- {
- if ( get_user_flags( id ) & VIP_ACCESS )
- {
- if ( IsPlayer( iAttacker ) && heavy_active[ id ] && cs_get_user_team( id ) != cs_get_user_team( iAttacker ) && get_tr2( tr, TR_iHitgroup ) == HIT_HEAD && get_tr2( tr, TR_iHitgroup ) == HIT_HEAD )
- {
- set_tr2( tr, TR_iHitgroup, HIT_CHEST );
- set_tr2( tr, TR_iHitgroup, HIT_STOMACH );
- client_cmd( id, "spk silent/vip/player/headshot" );
- message_begin( MSG_ONE_UNRELIABLE, g_msgFade, .player=id );
- {
- write_short( 1<<12 );
- write_short( 1<<5 );
- write_short( FFADE_IN );
- write_byte( 139 );
- write_byte( 34 );
- write_byte( 34 );
- write_byte( 75 );
- }
- message_end( );
- message_begin( MSG_ONE_UNRELIABLE, g_msgShake, .player=id );
- {
- write_short( 255<<5 );
- write_short( 50<<5 );
- write_short( 255<<5 );
- }
- message_end( );
- }
- }
- }
- public waiter ( id )
- {
- canHeal = false;
- set_task( get_pcvar_float( p_MedicHpRegenSpeed ), "givehp", id );
- }
- public givehp ( id )
- {
- canHeal = true;
- new MaxHp = get_pcvar_num( p_MedicMaxHp );
- new BonusHp = get_pcvar_num( p_MedicHpRegen );
- new TotalHp = get_user_health( id ) + BonusHp;
- new hp = pev( id, pev_health );
- if ( get_user_flags( id ) & VIP_ACCESS )
- {
- if ( medic_active[ id ] && is_user_alive( id ) && get_user_weapon( id ) == CSW_KNIFE )
- {
- if ( TotalHp >= MaxHp )
- {
- set_user_health( id, MaxHp );
- print_color( id, id, 0, "%L", LANG_SERVER, "VIP_MEDIC_MAX_HP", get_pcvar_num( p_MedicMaxHp ) );
- client_cmd( id, "spk silent/vip/player/maximum" );
- message_begin( MSG_ONE_UNRELIABLE, g_msgFade, .player=id );
- {
- write_short( 1<<13 );
- write_short( 1<<5 );
- write_short( FFADE_IN );
- write_byte( 134 );
- write_byte( 34 );
- write_byte( 34 );
- write_byte( 75 );
- }
- message_end( );
- message_begin( MSG_ONE_UNRELIABLE, g_msgShake, .player=id );
- {
- write_short( 255<<7 );
- write_short( 50<<7 );
- write_short( 255<<7 );
- }
- message_end( );
- } else {
- set_user_health( id, hp + BonusHp );
- client_cmd( id, "spk silent/vip/items/health" );
- message_begin( MSG_ONE_UNRELIABLE, g_msgFade, .player=id );
- {
- write_short( 1<<12 );
- write_short( 1<<5 );
- write_short( FFADE_IN );
- write_byte( 134 );
- write_byte( 34 );
- write_byte( 34 );
- write_byte( 75 );
- }
- message_end( );
- message_begin( MSG_ONE_UNRELIABLE, g_msgShake, .player=id );
- {
- write_short( 255<<5 );
- write_short( 50<<5 );
- write_short( 255<<5 );
- }
- message_end( );
- }
- }
- }
- }
- public pthink ( id )
- {
- if ( medic_active[ id ] )
- {
- if ( canHeal && ( pev( id, pev_health ) < 100) )
- {
- waiter( id );
- }
- }
- return FMRES_HANDLED;
- }
- public show_vip_menu ( id )
- {
- if ( get_user_flags( id ) & VIP_ACCESS )
- {
- if ( !get_pcvar_num( p_Enabled ) )
- {
- print_color( id, id, 0, "%L", LANG_SERVER, "VIP_MENU_DISSABLE" );
- client_cmd( id, "spk silent/vip/noaccess" );
- }
- if ( get_pcvar_num( p_Enabled ) )
- {
- if ( g_iRoundCount < 1 )
- {
- print_color( id, id, 0, "%L", LANG_SERVER, "VIP_WAIT" );
- client_cmd( id, "spk silent/vip/attention" );
- return PLUGIN_HANDLED;
- }
- client_cmd( id, "spk silent/vip/menu/open" );
- new menu = menu_create( "\rV.I.P. Меню \wv \r0\w.\r3 \wstable", "menu" );
- if ( !equipment_mode[ id ] && get_pcvar_num( p_Equipment ) )
- {
- menu_additem( menu, "Ammo \y(HE,FB,SG,патроны)", "1", 0 );
- }
- else if ( equipment_mode[ id ] )
- {
- menu_additem( menu, "\dAmmo \r* \y(HE,FB,SG,патроны)", "1", 0 );
- }
- else if ( !get_pcvar_num( p_Equipment ) )
- {
- menu_additem( menu, "\dAmmo (\rВЫКЛ\d)", "1", 0 );
- }
- if ( !money_mode[ id ] && get_pcvar_num( p_Money ) )
- {
- menu_additem( menu, "Деньги \y(+2.500$)", "2", 0 );
- }
- else if ( money_mode[ id ] )
- {
- menu_additem( menu, "\dДеньги \r* \y(+2.500$)", "2", 0 );
- }
- else if ( !get_pcvar_num( p_Money ) )
- {
- menu_additem( menu, "\dДеньги (\rВЫКЛ\d)", "2", 0 );
- }
- if ( !critical_mode[ id ] && get_pcvar_num( p_Critical ) )
- {
- menu_additem( menu, "Вампир\y(+15%HP-убийство)", "3", 0 );
- }
- else if ( critical_mode[ id ] )
- {
- menu_additem( menu, "\dВампир \r* \y(+15%HP-убийство)", "3", 0 );
- }
- else if ( !get_pcvar_num( p_Critical ) )
- {
- menu_additem( menu, "\dВампир (\rВЫКЛ\d)", "3", 0 );
- }
- if ( !soldier_mode[ id ] && get_pcvar_num( p_Soldier ) )
- {
- menu_additem( menu, "Солдат \y(150AP и +5HP убей всех)", "4", 0 );
- }
- else if ( soldier_mode[ id ] )
- {
- menu_additem( menu, "\dСолдат \r* \y(150AP и +5HP убей всех)", "4", 0 );
- }
- else if ( !get_pcvar_num( p_Soldier ) )
- {
- menu_additem( menu, "\dСолдат (\rВЫКЛ\d)", "4", 0 );
- }
- if ( !heavy_mode[ id ] && get_pcvar_num( p_Heavy ) )
- {
- menu_additem( menu, "Шлем \y(+250AP)", "5", 0 );
- }
- else if ( heavy_mode[ id ] )
- {
- menu_additem( menu, "\dШлем \r* \y(+250AP)", "5", 0 );
- }
- else if ( !get_pcvar_num( p_Heavy ) )
- {
- menu_additem( menu, "\dШлем (\rВЫКЛ\d)", "5", 0 );
- }
- if ( !medic_mode[ id ] && get_pcvar_num( p_Medic ) )
- {
- menu_additem( menu, "Медик \y(Регенерация H-P, держа Нож)", "6", 0 );
- }
- else if ( medic_mode[ id ] )
- {
- menu_additem( menu, "\dМедик \r* \y(Регенерация H-P, держа Нож)", "6", 0 );
- }
- else if ( !get_pcvar_num( p_Medic ) )
- {
- menu_additem( menu, "\dМедик (\rВЫКЛ\d)", "6", 0 );
- }
- menu_additem( menu, "\rВыключить все функции", "7", 0 );
- menu_setprop( menu, MPROP_EXIT, MEXIT_ALL );
- menu_setprop( menu, MPROP_NUMBER_COLOR, "\r" );
- menu_setprop( menu, MPROP_BACKNAME, "Назад" );
- menu_setprop( menu, MPROP_NEXTNAME, "Вперед" );
- menu_setprop( menu, MPROP_EXITNAME, "Выход" );
- menu_setprop( menu, MPROP_PERPAGE, 7 );
- menu_display( id, menu, 0 );
- }
- }
- else if ( get_user_flags( id ) != VIP_ACCESS )
- {
- print_color( id, id, 0, "%L", LANG_SERVER, "VIP_NO_ACCESS" );
- client_cmd( id, "spk silent/vip/noaccess" );
- }
- return PLUGIN_HANDLED;
- }
- public menu ( id, menu, item )
- {
- if ( item == MENU_EXIT )
- {
- client_cmd( id, "spk silent/vip/menu/button" );
- client_cmd( id, "spk silent/vip/menu/close" );
- menu_destroy( menu );
- return PLUGIN_HANDLED;
- }
- new data[ 6 ], iName[ 64 ];
- new access, callback;
- menu_item_getinfo( menu, item, access, data,5, iName, 63, callback );
- new key = str_to_num( data );
- switch( key )
- {
- case 1:
- {
- if ( !equipment_mode[ id ] && get_pcvar_num( p_Equipment ) )
- {
- equipment_mode[ id ] = 1;
- money_mode[ id ] = 0;
- critical_mode[ id ] = 0;
- soldier_mode[ id ] = 0;
- heavy_mode[ id ] = 0;
- medic_mode[ id ] = 0;
- client_cmd( id, "spk silent/vip/menu/button" );
- print_color( id, id, 0, "%L", LANG_SERVER, "VIP_EQUIPMENT_FUNCTION" );
- }
- else if ( equipment_mode[ id ] )
- {
- client_cmd( id, "spk silent/vip/menu/close" );
- }
- else if ( !get_pcvar_num( p_Equipment ) )
- {
- client_cmd( id, "spk silent/vip/menu/close" );
- }
- }
- case 2:
- {
- if ( !money_mode[ id ] && get_pcvar_num( p_Money ) )
- {
- equipment_mode[ id ] = 0;
- money_mode[ id ] = 1;
- critical_mode[ id ] = 0;
- soldier_mode[ id ] = 0;
- heavy_mode[ id ] = 0;
- medic_mode[ id ] = 0;
- client_cmd( id, "spk silent/vip/menu/button" );
- print_color( id, id, 0, "%L", LANG_SERVER, "VIP_MONEY_FUNCTION" );
- }
- else if ( money_mode[ id ] )
- {
- client_cmd( id, "spk silent/vip/menu/close" );
- }
- else if ( !get_pcvar_num( p_Money ) )
- {
- client_cmd( id, "spk silent/vip/menu/close" );
- }
- }
- case 3:
- {
- if ( !critical_mode[ id ] && get_pcvar_num( p_Critical ) )
- {
- equipment_mode[ id ] = 0;
- money_mode[ id ] = 0;
- critical_mode[ id ] = 1;
- soldier_mode[ id ] = 0;
- heavy_mode[ id ] = 0;
- medic_mode[ id ] = 0;
- client_cmd( id, "spk silent/vip/menu/button" );
- print_color( id, id, 0, "%L", LANG_SERVER, "VIP_CRITICAL_FUNCTION" );
- }
- else if ( critical_mode[ id ] )
- {
- client_cmd( id, "spk silent/vip/menu/close" );
- }
- else if ( !get_pcvar_num( p_Critical ) )
- {
- client_cmd( id, "spk silent/vip/menu/close" );
- }
- }
- case 4:
- {
- if ( !soldier_mode[ id ] && get_pcvar_num( p_Soldier ) )
- {
- equipment_mode[ id ] = 0;
- money_mode[ id ] = 0;
- critical_mode[ id ] = 0;
- soldier_mode[ id ] = 1;
- heavy_mode[ id ] = 0;
- medic_mode[ id ] = 0;
- client_cmd( id, "spk silent/vip/menu/button" );
- print_color( id, id, 0, "%L", LANG_SERVER, "VIP_SOLDIER_FUNCTION" );
- }
- else if ( soldier_mode[ id ] )
- {
- client_cmd( id, "spk silent/vip/menu/close" );
- }
- else if ( !get_pcvar_num( p_Soldier ) )
- {
- client_cmd( id, "spk silent/vip/menu/close" );
- }
- }
- case 5:
- {
- if ( !heavy_mode[ id ] && get_pcvar_num( p_Heavy ) )
- {
- equipment_mode[ id ] = 0;
- money_mode[ id ] = 0;
- critical_mode[ id ] = 0;
- soldier_mode[ id ] = 0;
- heavy_mode[ id ] = 1;
- medic_mode[ id ] = 0;
- client_cmd( id, "spk silent/vip/menu/button" );
- print_color( id, id, 0, "%L", LANG_SERVER, "VIP_HEAVY_FUNCTION" );
- }
- else if ( heavy_mode[ id ] )
- {
- client_cmd( id, "spk silent/vip/menu/close" );
- }
- else if ( !get_pcvar_num( p_Heavy ) )
- {
- client_cmd( id, "spk silent/vip/menu/close" );
- }
- }
- case 6:
- {
- if ( !medic_mode[ id ] && get_pcvar_num( p_Medic ) )
- {
- equipment_mode[ id ] = 0;
- money_mode[ id ] = 0;
- critical_mode[ id ] = 0;
- soldier_mode[ id ] = 0;
- heavy_mode[ id ] = 0;
- medic_mode[ id ] = 1;
- client_cmd( id, "spk silent/vip/menu/button" );
- print_color( id, id, 0, "%L", LANG_SERVER, "VIP_MEDIC_FUNCTION" );
- }
- else if ( medic_mode[ id ] )
- {
- client_cmd( id, "spk silent/vip/menu/close" );
- }
- else if ( !get_pcvar_num( p_Medic ) )
- {
- client_cmd( id, "spk silent/vip/menu/close" );
- }
- }
- case 7:
- {
- equipment_mode[ id ] = 0;
- money_mode[ id ] = 0;
- critical_mode[ id ] = 0;
- soldier_mode[ id ] = 0;
- heavy_mode[ id ] = 0;
- medic_mode[ id ] = 0;
- client_cmd( id, "spk silent/vip/menu/button" );
- print_color( id, id, 0, "%L", LANG_SERVER, "VIP_DISSABLE_FUNCTIONS" );
- client_cmd( id, "spk silent/vip/items/dissable" );
- }
- }
- return PLUGIN_HANDLED;
- }
- public event_NewRound ( id )
- {
- g_iRoundCount++;
- p_Damage = get_pcvar_num( p_Type );
- if ( get_pcvar_num( p_Recieved ) )
- {
- g_showrecieved = true;
- }
- }
- public event_RoundEnd ( id )
- {
- g_roundendfix = 1;
- }
- public player_Spawn ( id )
- {
- if ( get_user_flags( id ) & VIP_ACCESS )
- {
- if ( get_pcvar_num( p_Enabled ) && g_roundendfix )
- {
- if ( is_user_alive( id ) )
- {
- equipment_active[ id ] = 0;
- money_active[ id ] = 0;
- critical_active[ id ] = 0;
- soldier_active[ id ] = 0;
- heavy_active[ id ] = 0;
- medic_active[ id ] = 0;
- if ( g_iRoundCount == 1 )
- {
- show_vip_menu( id );
- }
- if ( equipment_mode[ id ] )
- {
- equipment_active[ id ] = 1;
- equipment( id );
- }
- if ( money_mode[ id ] )
- {
- money_active[ id ] = 1;
- money( id );
- }
- if ( critical_mode[ id ] )
- {
- critical_active[ id ] = 1;
- critical( id );
- }
- if ( soldier_mode[ id ] )
- {
- soldier_active[ id ] = 1;
- soldier( id );
- }
- if ( heavy_mode[ id ] )
- {
- heavy_active[ id ] = 1;
- heavy( id );
- }
- if ( medic_mode[ id ] )
- {
- medic_active[ id ] = 1;
- medic( id );
- }
- if ( p_Defuser )
- {
- if ( fm_find_ent_by_class( -1, "func_bomb_target" ) || fm_find_ent_by_class( -1, "info_bomb_target" ) )
- {
- if ( cs_get_user_team( id ) == CS_TEAM_CT )
- {
- fm_give_item( id, "item_thighpack" );
- }
- }
- }
- }
- }
- }
- }
- public equipment ( id )
- {
- if ( equipment_active[ id ] )
- {
- cs_set_user_armor( id, 100, CS_ARMOR_VESTHELM );
- fm_give_item( id, "weapon_hegrenade" );
- fm_give_item( id, "weapon_flashbang" );
- fm_give_item( id, "weapon_flashbang" );
- cs_set_user_bpammo( id, CSW_USP, 100 );
- cs_set_user_bpammo( id, CSW_ELITE, 120 );
- cs_set_user_bpammo( id, CSW_DEAGLE, 35) ;
- cs_set_user_bpammo( id, CSW_GLOCK18, 120) ;
- cs_set_user_bpammo( id, CSW_P228, 52 );
- cs_set_user_bpammo( id, CSW_FIVESEVEN, 100 );
- cs_set_user_bpammo( id, CSW_XM1014, 32 );
- cs_set_user_bpammo( id, CSW_M3, 32 );
- cs_set_user_bpammo( id, CSW_P90, 100 );
- cs_set_user_bpammo( id, CSW_MAC10, 100 );
- cs_set_user_bpammo( id, CSW_MP5NAVY, 120 );
- cs_set_user_bpammo( id, CSW_TMP, 120 );
- cs_set_user_bpammo( id, CSW_UMP45, 100 );
- cs_set_user_bpammo( id, CSW_FAMAS, 90 );
- cs_set_user_bpammo( id, CSW_GALIL, 90 );
- cs_set_user_bpammo( id, CSW_SCOUT, 90 );
- cs_set_user_bpammo( id, CSW_AUG, 90 );
- cs_set_user_bpammo( id, CSW_M4A1, 90 );
- cs_set_user_bpammo( id, CSW_AK47, 90 );
- cs_set_user_bpammo( id, CSW_SG552, 90 );
- cs_set_user_bpammo( id, CSW_G3SG1, 90 );
- cs_set_user_bpammo( id, CSW_SG552, 90 );
- cs_set_user_bpammo( id, CSW_AWP, 30 );
- cs_set_user_bpammo( id, CSW_M249, 200 );
- print_color( id, id, 0, "%L", LANG_SERVER, "VIP_EQUIPMENT" );
- set_task( 0.1, "shake", id );
- }
- }
- public money ( id )
- {
- if ( money_active[ id ] )
- {
- new MaxMoney = 16000;
- new BonusMoney = get_pcvar_num( p_MoneyGive );
- new TotalMoney = cs_get_user_money( id ) + BonusMoney;
- if ( TotalMoney >= MaxMoney )
- {
- cs_set_user_money( id, MaxMoney );
- print_color( id, id, 0, "%L", LANG_SERVER, "VIP_MONEY_MAX", get_pcvar_num( p_MoneyGive ) );
- client_cmd( id, "spk silent/vip/items/money_max" );
- set_task( 0.1, "shake", id );
- show_vip_menu( id );
- } else {
- cs_set_user_money( id, TotalMoney );
- print_color( id, id, 0, "%L", LANG_SERVER, "VIP_MONEY", get_pcvar_num( p_MoneyGive ) );
- set_task( 0.1, "shake", id );
- }
- }
- }
- public critical ( id )
- {
- if ( critical_active[ id ] )
- {
- print_color( id, id, 0, "%L", LANG_SERVER, "VIP_CRITICAL", get_pcvar_num( p_CriticalChance ) );
- set_task( 0.1, "shake", id );
- }
- }
- public soldier ( id )
- {
- if ( soldier_active[ id ] )
- {
- cs_set_user_armor( id, get_pcvar_num( p_SoldierArmor ), CS_ARMOR_VESTHELM );
- print_color( id, id, 0, "%L", LANG_SERVER, "VIP_SOLDIER", get_pcvar_num( p_SoldierArmor ), get_pcvar_num( p_SoldierKillHp ) );
- set_task( 0.1, "shake", id );
- }
- }
- public heavy( id )
- {
- if ( heavy_active[ id ] )
- {
- cs_set_user_armor( id, get_pcvar_num( p_HeavyArmor ), CS_ARMOR_VESTHELM );
- print_color( id, id, 0, "%L", LANG_SERVER, "VIP_HEAVY", get_pcvar_num( p_HeavyArmor ) );
- set_task( 0.1, "shake", id );
- }
- }
- public medic ( id )
- {
- if ( medic_active[ id ] )
- {
- print_color( id, id, 0, "%L", LANG_SERVER, "VIP_MEDIC", get_pcvar_num( p_MedicHpRegen ), get_pcvar_num( p_MedicHpRegenSpeed ) );
- set_task( 0.1, "shake", id );
- }
- }
- public viplist ( id )
- {
- static sPlayers[ 32 ], iNum, iPlayer;
- static sName[ 32 ], sBuffer[ 1024 ];
- static iLen;
- iLen = formatex( sBuffer, sizeof sBuffer - 1, "<html><head><link rel='stylesheet' type='text/css' href='http://silent.lt/motd/motd.css' media='screen' />" );
- iLen += formatex( sBuffer[ iLen ], CharsMax( sBuffer ) - iLen,"<html><head><link rel='stylesheet' type='text/css' href='http://silent.lt/motd/motd.css' media='screen' />" );
- get_players( sPlayers, iNum, "ch" );
- iLen += formatex( sBuffer[ iLen ], CharsMax( sBuffer ) - iLen, "<center><img src='http://silent.lt/images/vips.png'></img></center><br>" );
- for( new x = 0; x < iNum ; x++ )
- {
- iPlayer = sPlayers[ x ];
- if ( get_user_flags( iPlayer ) & VIP_ACCESS )
- {
- get_user_name( iPlayer, sName, sizeof sName - 1 );
- iLen += formatex( sBuffer[ iLen ], CharsMax( sBuffer ) - iLen, "<left>%s</left><br>", sName );
- }
- }
- show_motd( id, sBuffer, "Vip's Online" );
- return 0;
- }
- public shake ( id )
- {
- client_cmd( id, "spk silent/vip/items/give_item" );
- message_begin( MSG_ONE_UNRELIABLE, g_msgFade, .player=id );
- {
- write_short( 1<<14 );
- write_short( 1<<5 );
- write_short( FFADE_IN );
- write_byte( 34 );
- write_byte( 34 );
- write_byte( 139 );
- write_byte( 75 );
- }
- message_end( );
- message_begin( MSG_ONE_UNRELIABLE, g_msgShake, .player=id );
- {
- write_short( 255<<15 );
- write_short( 50<<8 );
- write_short( 255<<15 );
- }
- message_end( );
- }
- public print_color ( id, cid, color, const message[ ], any:... )
- {
- new msg[ 192 ];
- vformat( msg, charsmax( msg ), message, 5 );
- replace_all( msg, charsmax( msg ), "!g", "^x04" );
- replace_all( msg, charsmax( msg ), "!n", "^x01" );
- replace_all( msg, charsmax( msg ), "!t", "^x03" );
- new param;
- if ( !cid )
- {
- return;
- } else {
- param = cid;
- }
- new team[ 32 ];
- get_user_team( param, team, 31 );
- switch ( color )
- {
- case 0: msg_teaminfo( param, team );
- case 1: msg_teaminfo( param, "TERRORIST" );
- case 2: msg_teaminfo( param, "CT" );
- case 3: msg_teaminfo( param, "SPECTATOR" );
- }
- if ( id )
- {
- msg_saytext( id, param, msg );
- } else {
- msg_saytext( 0, param, msg );
- }
- if ( color != 0 )
- {
- msg_teaminfo( param, team );
- }
- }
- msg_saytext ( id, cid, msg[ ] )
- {
- message_begin( id?MSG_ONE:MSG_ALL, g_msgSayText, {0,0,0}, id );
- write_byte( cid );
- write_string( msg );
- message_end( );
- }
- msg_teaminfo ( id, team[ ] )
- {
- message_begin( MSG_ONE, g_msgTeamInfo, {0,0,0}, id );
- write_byte( id );
- write_string( team );
- message_end( );
- }
- public plugin_precache ( )
- {
- if ( file_exists( "sound/silent/vip/noaccess.wav" ) )
- precache_sound( "silent/vip/noaccess.wav" );
- if ( file_exists( "sound/silent/vip/attention.wav" ) )
- precache_sound( "silent/vip/attention.wav" );
- if ( file_exists( "sound/silent/vip/menu/open.wav" ) )
- precache_sound( "silent/vip/menu/open.wav" );
- if ( file_exists( "sound/silent/vip/menu/button.wav" ) )
- precache_sound( "silent/vip/menu/button.wav" );
- if ( file_exists( "sound/silent/vip/items/give_item.wav" ) )
- precache_sound( "silent/vip/items/give_item.wav" );
- if ( file_exists( "sound/silent/vip/items/money_max.wav" ) )
- precache_sound( "silent/vip/items/money_max.wav" );
- if ( file_exists( "sound/silent/vip/player/headshot.wav" ) )
- precache_sound( "silent/vip/player/headshot.wav" );
- if ( file_exists( "sound/silent/vip/player/critical.wav" ) )
- precache_sound( "silent/vip/player/critical.wav" );
- if ( file_exists( "sound/silent/vip/player/maximum.wav" ) )
- precache_sound( "silent/vip/player/maximum.wav" );
- if ( file_exists( "sound/silent/vip/items/health.wav" ) )
- precache_sound( "silent/vip/items/health.wav" );
- if ( file_exists( "sound/silent/vip/items/dissable.wav" ) )
- precache_sound( "silent/vip/items/dissable.wav" );
- if ( file_exists( "sound/silent/vip/menu/close.wav" ) )
- precache_sound( "silent/vip/menu/close.wav" );
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement