#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <fun>
#include <hamsandwich>
#include <fakemeta_util>
#define DAMAGE_RECIEVED
#define VIP_FLAG ADMIN_LEVEL_H
new pistols[6] = {CSW_P228, CSW_ELITE, CSW_FIVESEVEN, CSW_GALIL, CSW_USP, CSW_GLOCK18};
new round_number
new g_HudSync
new g_HudSync2
new health_add
new health_hs_add
new health_max
new nKiller
new nKiller_hp
new nHp_add
new nHp_max
public plugin_init()
{
register_plugin("Vipka", "1.5", "7eVen");
register_event("ResetHUD", "ResetHUD", "be");
register_event("HLTV", "event_round_start", "a", "1=0", "2=0")
register_event("Damage", "damage_message", "b", "2!0", "3=0", "4!0")
register_event("DeathMsg", "hook_death", "a", "1>0")
register_clcmd("say /vip","ShowMotd");
register_clcmd("vipmenu", "showWeaponMenu");
new keys = MENU_KEY_0|MENU_KEY_1|MENU_KEY_2|MENU_KEY_3|MENU_KEY_4|MENU_KEY_5
register_menucmd(register_menuid("Выберите оружия?"), keys, "giveWeapon");
g_HudSync = CreateHudSyncObj()
#if defined DAMAGE_RECIEVED
g_HudSync2 = CreateHudSyncObj()
#endif
health_add = register_cvar("amx_vampire_hp", "5")
health_hs_add = register_cvar("amx_vampire_hp_hs", "10")
health_max = register_cvar("amx_vampire_max_hp", "100")
}
public hook_death()
{
nKiller = read_data(1)
if(!(get_user_flags(nKiller) & VIP_FLAG))
return PLUGIN_HANDLED;
if ( (read_data(3) == 1) && (read_data(5) == 0) )
{
nHp_add = get_pcvar_num (health_hs_add)
}
else
nHp_add = get_pcvar_num (health_add)
nHp_max = get_pcvar_num (health_max)
nKiller_hp = get_user_health(nKiller)
nKiller_hp += nHp_add
if (nKiller_hp > nHp_max) nKiller_hp = nHp_max
set_user_health(nKiller, nKiller_hp)
set_hudmessage(0, 255, 0, -1.0, 0.15, 0, 1.0, 1.0, 0.1, 0.1, -1)
show_hudmessage(nKiller, "Healed +%d hp", nHp_add)
return PLUGIN_CONTINUE;
}
public damage_message(id)
{
new attacker = get_user_attacker(id)
if (get_user_flags(attacker) & VIP_FLAG && is_user_connected(attacker))
{
new damage = read_data(2)
set_hudmessage(255, 0, 0, 0.45, 0.50, 2, 0.1, 4.0, 0.1, 0.1, -1)
ShowSyncHudMsg(id, g_HudSync2, "%i", damage)
set_hudmessage(0, 100, 200, -1.0, 0.55, 2, 0.1, 4.0, 0.02, 0.02, -1)
ShowSyncHudMsg(attacker, g_HudSync, "%i", damage)
}
return PLUGIN_CONTINUE;
}
public showWeaponMenu(id)
{
if ( ! ( get_user_flags ( id ) & VIP_FLAG ) )
{
ChatColor ( id , "!g[V.I.P]!team Только для !g[V.I.P] " );
return PLUGIN_HANDLED;
}
new menu[192]
new keys = MENU_KEY_0|MENU_KEY_1|MENU_KEY_2|MENU_KEY_3|MENU_KEY_4|MENU_KEY_5
format(menu, 191, "Выберите оружия?^n^n\r1. \wВзять \r[\yAK47\r]^n\r2. \wВзять \r[\yM4A1\r]^n\r3. \wВзять \r[\yAWP\r]^n\r4. \wВзять \r[\yFAMAS\r]^n^n\r5. \wВыход^n")
show_menu(id, keys, menu)
return PLUGIN_HANDLED
}
public event_round_start ( )
{
round_number++
}
public giveWeapon(id, key)
{
if ( ! is_user_alive ( id ) )
{
ChatColor ( id , "!g[V.I.P]!team Ты мертв!" );
return PLUGIN_HANDLED;
}
if (key == 0)
{
if ( round_number <= 1 )
{
ChatColor ( id , "!g[V.I.P]!team Доступно со 2 раунда!" );
return PLUGIN_HANDLED;
}
give_item(id, "weapon_ak47")
cs_set_user_bpammo( id , CSW_AK47, 90 )
}
else if (key == 1)
{
if ( round_number <= 1 )
{
ChatColor ( id , "!g[V.I.P]!team Доступно со 2 раунда!" );
return PLUGIN_HANDLED;
}
give_item(id, "weapon_m4a1")
cs_set_user_bpammo( id , CSW_M4A1, 90 )
}
else if (key == 2)
{
if ( round_number <= 2 )
{
ChatColor ( id , "!g[V.I.P]!team Доступно со 3 раунда!" );
return PLUGIN_HANDLED;
}
give_item(id, "weapon_awp")
cs_set_user_bpammo( id , CSW_AWP, 30 )
}
else if (key == 3)
{
if ( round_number <= 1 )
{
ChatColor ( id , "!g[V.I.P]!team Доступно со 2 раунда!" );
return PLUGIN_HANDLED;
}
give_item(id, "weapon_famas")
cs_set_user_bpammo( id , CSW_FAMAS, 90 )
}
else if (key == 4)
{
}
return PLUGIN_HANDLED;
}
public client_authorized(id)
{
client_cmd(id, "bind ^"F3^" ^"vipmenu^"")
}
public client_putinserver(id)
{
if(get_user_flags(id) & VIP_FLAG)
{
set_task(2.0, "welcom", id)
}
}
public welcom(id)
{
new name[32]
get_user_name(id, name, 31)
set_hudmessage(0, 100, 200, 0.10, -1.0, 0, 4.0, 6.0)
show_hudmessage(0, "[Admin/vip] %s - зашол на сервер!", name)
}
public ResetHUD(id)
{
set_task(0.5, "VIP", id + 6910)
}
public VIP(TaskID)
{
new id = TaskID - 6910
if (get_user_flags(id) & VIP_FLAG && is_user_connected(id) && is_user_alive(id))
{
for (new i = 0; i < 6; i++)
{
if (fm_strip_user_gun(id, pistols[i]))
{
break;
}
message_begin(MSG_ALL, get_user_msgid("ScoreAttrib"))
write_byte(id)
write_byte(4)
message_end()
give_item( id, "weapon_hegrenade" )
give_item( id, "weapon_flashbang" );
give_item( id, "weapon_flashbang" );
give_item( id, "weapon_smokegrenade" );
give_item( id, "item_assaultsuit" );
give_item( id, "item_thighpack" );
give_item( id, "weapon_deagle")
give_item( id, "ammo_50ae" )
give_item( id, "ammo_50ae" )
give_item( id, "ammo_50ae" )
give_item( id, "ammo_50ae" )
give_item( id, "ammo_50ae" )
}
}
return PLUGIN_HANDLED
}
public ShowMotd(id)
{
show_motd(id, "vip.txt")
}
stock ChatColor(const id, const input[], any:...)
{
new count = 1, players[32]
static msg[191]
vformat(msg, 190, input, 3)
replace_all(msg, 190, "!g", "^4") // Green Color
replace_all(msg, 190, "!y", "^1") // Default Color
replace_all(msg, 190, "!team", "^3") // Team Color
replace_all(msg, 190, "!team2", "^0") // Team2 Color
if (id) players[0] = id; else get_players(players, count, "ch")
{
for (new i = 0; i < count; i++)
{
if (is_user_connected(players[i]))
{
message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players[i])
write_byte(players[i]);
write_string(msg);
message_end();
}
}
}
}