#include <amxmodx>
#include <cstrike>
#include <fun>
#include <hamsandwich>
#include <fakemeta>
#include <fakemeta_util>
#define OFFSET_PRIMARYWEAPON 116
new nMSGS_Damage
new g_roundCount
public plugin_init( )
{
register_plugin("1337VIP", "0.1", "cfgwQa")
register_event("TextMsg", "Event_GameRestart", "a", "2=#Game_Commencing", "2=#Game_will_restart_in")
register_logevent("round_end", 2, "1=Round_End")
register_message( get_user_msgid("ScoreAttrib"), "msgScoreAttrib" )
register_event("ResetHUD", "smth", "be")
RegisterHam(Ham_Spawn, "player", "player_respawn", 1)
register_event("Damage", "damage", "b", "2!0", "3=0", "4!0")
register_clcmd("vipmenu", "vip_menu")
register_clcmd( "say /dgl", "CmdDeagle" )
register_clcmd( "say /ak47", "CmdAk47" )
register_clcmd( "say /m4a1", "CmdM4a1" )
register_clcmd( "say /awp", "Cmdawp" )
nMSGS_Damage = CreateHudSyncObj()
}
public client_putinserver(id)
{
set_task(0.5, "vip_connect", id);
}
public vip_connect(id)
{
if (get_user_flags(id) & ADMIN_LEVEL_H)
{
new name[32];
get_user_name(id, name, 31);
ColorChat(0, "К нам присоединился ^4[VIP] ^1игрок ^4%s", name)
client_cmd(0, "spk events/task_complete.wav")
}
}
public Event_GameRestart()
{
g_roundCount = 1
}
public round_end()
{
g_roundCount++
}
public msgScoreAttrib( const MsgId, const MsgType, const MsgDest )
{
if ( get_msg_arg_int(2) || !(get_user_flags( get_msg_arg_int(1) ) & ADMIN_LEVEL_H ) )
return
set_msg_arg_int( 2, ARG_BYTE, (1<<2) )
}
public smth(id)
{
if (get_user_flags(id) & ADMIN_LEVEL_H)
{
cs_set_user_model(id, "vip")
}
}
public player_respawn(id)
{
if( is_user_alive ( id ) && get_user_flags ( id ) & ADMIN_LEVEL_H )
{
give_item(id, "weapon_hegrenade");
give_item(id, "weapon_flashbang");
give_item(id, "weapon_smokegrenade");
cs_set_user_bpammo(id, CSW_FLASHBANG, 2);
cs_set_user_armor(id, 100, CS_ARMOR_VESTHELM);
}
}
public damage(id)
{
if (get_user_flags(id) & ADMIN_LEVEL_H)
{
if(is_user_alive(id))
{
if(is_user_connected(get_user_attacker(id)))
{
if(fm_is_ent_visible(get_user_attacker(id), id))
{
set_hudmessage(255, 255, 255, -1.0, 0.6, 0, 6.0, 5.0)
ShowSyncHudMsg(get_user_attacker(id), nMSGS_Damage, "- %i HP", read_data(2))
}
}
}
}
}
public vip_menu(id)
{
if ( ! ( get_user_flags ( id ) & ADMIN_LEVEL_H ) )
{
ColorChat ( id, "^3[^4 1337 Паблик^3 ] ^1 Только для ^4[V.I.P] персонала!")
return PLUGIN_HANDLED;
}
new menu = menu_create("\r Оружие \w[\y V.I.P \w]", "show_vipmenu")
menu_additem(menu, "\wВзять \r[\y Deagle \r]\r", "1")
menu_additem(menu, "\wВзять \r[\y M4A1 \r]\r", "2")
menu_additem(menu, "\wВзять \r[\y AK47 \r]\r", "3")
menu_additem(menu, "\wВзять \r[\y AWP \r]\r", "4")
menu_setprop(menu, MPROP_NEXTNAME, "Дальше")
menu_setprop(menu, MPROP_BACKNAME, "Назад")
menu_setprop(menu, MPROP_EXITNAME, "Выход")
menu_setprop(menu, MPROP_EXIT,MEXIT_ALL)
menu_display(id,menu,0)
return PLUGIN_HANDLED;
}
public show_vipmenu(id, menu, item)
{
if(item == MENU_EXIT)
{
menu_destroy(menu)
return PLUGIN_HANDLED
}
new data[6], iName[64], access, callback
menu_item_getinfo(menu, item, access, data, 5, iName, 63, callback)
new key = str_to_num(data)
switch(key)
{
case 1:
{
client_cmd(id, "say /dgl")
}
case 2:
{
client_cmd(id, "say /m4a1")
}
case 3:
{
client_cmd(id, "say /ak47")
}
case 4:
{
client_cmd(id, "say /awp")
}
}
return PLUGIN_HANDLED;
}
public CmdDeagle(id)
{
if(!(get_user_flags(id) & ADMIN_LEVEL_H))
{
ColorChat(id, "^3[^4 1337 Паблик ^3]^1 Только ^4VIP^1 может пользоватся этой командой.")
return PLUGIN_HANDLED
}
if(is_user_alive(id))
{
drop_weapons(id, 2)
give_item(id,"weapon_deagle")
cs_set_user_bpammo( id, CSW_DEAGLE, 35 );
}
return PLUGIN_CONTINUE
}
public CmdAk47(id)
{
if(!(get_user_flags(id) & ADMIN_LEVEL_H))
{
ColorChat(id, "^3[^4 1337 Паблик ^3]^1 Только ^4VIP^1 может пользоватся этой командой.")
return PLUGIN_HANDLED
}
if (g_roundCount < 2)
{
ColorChat(id, "^3[^x04 1337 Паблик ^x03]^1 Это оружие доступно только ^4со 2-го^1 раунда!")
return PLUGIN_HANDLED
}
if (get_pdata_int(id, OFFSET_PRIMARYWEAPON) && (get_user_flags(id) & ADMIN_LEVEL_H))
{
return PLUGIN_HANDLED
}
else {
drop_weapons(id, 1)
give_item(id,"weapon_ak47")
cs_set_user_bpammo( id, CSW_AK47, 90 );
}
return PLUGIN_CONTINUE
}
public CmdM4a1(id)
{
if(!(get_user_flags(id) & ADMIN_LEVEL_H))
{
ColorChat(id, "^3[^4 1337 Паблик ^3]^1 Только ^4VIP^1 может пользоватся этой командой.")
return PLUGIN_HANDLED
}
if (g_roundCount < 2)
{
ColorChat(id, "^3[^4 1337 Паблик ^3]^1 Это оружие доступно только ^4со 2-го^1 раунда!")
return PLUGIN_HANDLED
}
if (get_pdata_int(id, OFFSET_PRIMARYWEAPON) && (get_user_flags(id) & ADMIN_LEVEL_H))
{
return PLUGIN_HANDLED
}
else {
drop_weapons(id, 1)
give_item(id,"weapon_m4a1")
cs_set_user_bpammo( id, CSW_M4A1, 90 );
}
return PLUGIN_CONTINUE
}
public Cmdawp(id)
{
if(!(get_user_flags(id) & ADMIN_LEVEL_H))
{
ColorChat(id, "^3[^4 1337 Паблик ^3]^1 Только ^4VIP^1 может пользоватся этой командой.")
return PLUGIN_HANDLED
}
if (g_roundCount < 3)
{
ColorChat(id, "^3[^4 1337 Паблик ^3]^1 Это оружие доступно только ^4с 3-го^1 раунда!")
return PLUGIN_HANDLED
}
if (get_pdata_int(id, OFFSET_PRIMARYWEAPON) && (get_user_flags(id) & ADMIN_LEVEL_H))
{
return PLUGIN_HANDLED
}
else {
drop_weapons(id, 1)
give_item(id,"weapon_awp")
cs_set_user_bpammo( id, CSW_AWP, 30 );
}
return PLUGIN_CONTINUE
}
stock ColorChat(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, "!t", "^3") // Team 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()
}
}
}
}