/*===============================================================================
=
Инклюды
================================================================================
=*/
#include <amxmodx>
#include <hamsandwich>
#include <cstrike>
#include <fun>
#include <fakemeta>
/*===============================================================================
=
Данные о плагине
================================================================================
=*/
#define PLUGIN "Vip Menu"
#define VERSION "1.0"
#define AUTHOR "PraVitelb"
#define PREFIX "!y*"
/*===============================================================================
=
Различные данные
================================================================================
=*/
const OFFSET_CSMENUCODE = 205
#define MENUBUTTON1 (1<<0)
#define MENUBUTTON2 (1<<1)
#define MENUBUTTON3 (1<<2)
#define MENUBUTTON4 (1<<3)
#define MENUBUTTON5 (1<<4)
#define MENUBUTTON6 (1<<5)
#define MENUBUTTON7 (1<<6)
#define MENUBUTTON8 (1<<7)
#define MENUBUTTON9 (1<<8)
#define MENUBUTTON0 (1<<9)
/*===============================================================================
=
Константы
================================================================================
=*/
new HasAll[33]
new HasHealth[33]
new HasMoney[33]
new HasArmor[33]
new HasGrenade[33]
new HasAmmo[33]
new cvar_vip_money
new cvar_vip_health
new cvar_vip_armor
new cvar_vip_models
/*===============================================================================
=
Загрузка плагина
================================================================================
=*/
public plugin_init()
{
register_plugins_post(PLUGIN, VERSION, AUTHOR)
register_clcmd("say /vip_menu", "clcmd_vipmenu")
register_clcmd("say_team /vip_menu", "clcmd_vipmenu")
register_clcmd("vip_menu", "clcmd_vipmenu")
RegisterHam( Ham_Spawn, "player", "fwSpawn", 1)
register_menucmd(register_menuid("Vip Menu"), 1023, "VipHandler")
cvar_vip_models = register_cvar("vip_models", "0") /* 1 - Выдавать модельку 0 - выкл*/
cvar_vip_money = register_cvar("vip_money", "1000") /* Сколько давать денег */
cvar_vip_health = register_cvar("vip_health", "0") /* Сколько давать жизней */
cvar_vip_armor = register_cvar("vip_armor", "100") /* Сколько давать брони */
return PLUGIN_CONTINUE
}
/*===============================================================================
=
Открытие менюшки
================================================================================
=*/
public clcmd_vipmenu(id)
{
VipMenu( id )
return PLUGIN_HANDLED
}
/*===============================================================================
=
Игрок покинул сервер
================================================================================
=*/
public client_disconnect(id)
{
HasAll[id] = false
HasHealth[id] = false
HasMoney[id] = false
HasArmor[id] = false
HasGrenade[id] = false
HasAmmo[id] = false
}
/*===============================================================================
=
Закачки плагина
================================================================================
=*/
public plugin_precache()
{
if(get_pcvar_num(cvar_vip_models))
{
precache_model("models/player/vip/vip.mdl");
}
}
/*===============================================================================
=
Возрождение игрока
================================================================================
=*/
public fwSpawn(id)
{
if(HasHealth[id])
{
new Health = get_user_health(id)
set_user_health(id, Health + get_pcvar_num(cvar_vip_health))
}
if(HasMoney[id])
{
new Money = cs_get_user_money(id)
cs_set_user_money(id, Money + get_pcvar_num(cvar_vip_money))
}
if(HasArmor[id])
set_user_armor(id, get_pcvar_num(cvar_vip_armor))
if(HasGrenade[id])
{
give_item(id, "weapon_hegrenade")
give_item(id, "weapon_flashbang")
give_item(id, "weapon_flashbang")
give_item(id, "weapon_smokegrenade")
}
if(HasAmmo[id])
{
if(user_has_weapon(id, CSW_AK47))
{
give_item(id,"ammo_762nato")
give_item(id,"ammo_762nato")
give_item(id,"ammo_762nato")
give_item(id,"ammo_762nato")
}
if(user_has_weapon(id, CSW_M4A1))
{
give_item(id,"ammo_556nato")
give_item(id,"ammo_556nato")
give_item(id,"ammo_556nato")
}
if(user_has_weapon(id, CSW_AWP))
{
give_item(id,"ammo_338magnum")
give_item(id,"ammo_338magnum")
give_item(id,"ammo_338magnum")
}
if(user_has_weapon(id, CSW_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")
give_item(id,"ammo_50ae")
give_item(id,"ammo_50ae")
}
}
if(get_pcvar_num(cvar_vip_models))
{
if(get_user_flags(id) & ADMIN_LEVEL_H)
set_task(1.0, "models_vip", id)
}
}
public models_vip(id)
{
if(is_user_alive( id ))
{
cs_set_user_model(id, "vip")
}
}
/*===============================================================================
=
Vip Menu
================================================================================
=*/
public VipMenu(id)
{
static MenuBody[512]
new flags
new len = formatex(MenuBody, 511, "\yВИП меню:^n^n")
if(get_user_flags(id) & ADMIN_LEVEL_H)
{
len += formatex(MenuBody[len], 511 - len, "\r1. \wПолучать \r(\d+%dHP\r) %s^n", get_pcvar_num(cvar_vip_health), HasHealth[id] ? "\yВкл" : "Выкл")
flags |= MENUBUTTON1
len += formatex(MenuBody[len], 511 - len, "\r2. \wПолучать \r(\d%d Брони\r) %s^n", get_pcvar_num(cvar_vip_armor), HasArmor[id] ? "\yВкл" : "Выкл")
flags |= MENUBUTTON2
len += formatex(MenuBody[len], 511 - len, "\r3. \wПолучать \r(\d+%d$\r) %s^n", get_pcvar_num(cvar_vip_money), HasMoney[id] ? "\yВкл" : "Выкл")
flags |= MENUBUTTON3
len += formatex(MenuBody[len], 511 - len, "\r4. \wПолучать \r(\dВсе гранаты\r) %s^n", HasGrenade[id] ? "\yВкл" : "Выкл")
flags |= MENUBUTTON4
len += formatex(MenuBody[len], 511 - len, "\r5. \wПолучать \r(\dВсе патроны\r) %s^n", HasAmmo[id] ? "\yВкл" : "Выкл")
flags |= MENUBUTTON5
len += formatex(MenuBody[len], 511 - len, "\r6. \wВзять \r(\dAK47\r+\dДигл\r)^n")
flags |= MENUBUTTON6
len += formatex(MenuBody[len], 511 - len, "\r7. \wВзять \r(\dM4A1\r+\dДигл\r)^n")
flags |= MENUBUTTON7
len += formatex(MenuBody[len], 511 - len, "\r8. \wВзять \r(\dAWP\r+\dДигл\r)^n^n")
flags |= MENUBUTTON8
len += formatex(MenuBody[len], 511 - len, "\r9. \w%s^n^n", HasAll[id] ? "\wВыключить все" : "\wВключить все")
flags |= MENUBUTTON9
len += formatex(MenuBody[len], 511 - len, "\r0. \wВыход")
flags |= MENUBUTTON0
}
else
{
len += formatex(MenuBody[len], 511 - len, "\r1. \dПолучать (\y+\r%dHP\d) \rВыкл^n", get_pcvar_num(cvar_vip_health))
len += formatex(MenuBody[len], 511 - len, "\r2. \dПолучать (\r%d Брони\d) \rВыкл^n", get_pcvar_num(cvar_vip_armor))
len += formatex(MenuBody[len], 511 - len, "\r3. \dПолучать (\y+\r%d$\d) \rВыкл^n", get_pcvar_num(cvar_vip_money))
len += formatex(MenuBody[len], 511 - len, "\r4. \dПолучать (\rВсе гранаты\d) \rВыкл^n")
len += formatex(MenuBody[len], 511 - len, "\r5. \dПолучать (\rВсе патроны\d) \rВыкл^n")
len += formatex(MenuBody[len], 511 - len, "\r6. \dВзять (\rAK47\y+\rДигл\d)^n")
len += formatex(MenuBody[len], 511 - len, "\r7. \dВзять (\rM4A1\y+\rДигл\d)^n")
len += formatex(MenuBody[len], 511 - len, "\r8. \dВзять (\rAWP\y+\rДигл\d)^n^n")
len += formatex(MenuBody[len], 511 - len, "\r9. \dВключить все^n^n")
len += formatex(MenuBody[len], 511 - len, "\r0. \wВыход")
flags |= MENUBUTTON0
}
set_pdata_int(id, OFFSET_CSMENUCODE, 0)
show_menu(id, flags, MenuBody, -1, "Vip Menu")
return PLUGIN_CONTINUE
}
/*===============================================================================
=
Действие Vip Menu
================================================================================
=*/
public VipHandler(id, key)
{
if (!is_user_connected(id))
return PLUGIN_HANDLED;
switch (key)
{
case 0:
{
HasHealth[id] = HasHealth[id] ? false : true
VipMenu(id)
}
case 1:
{
HasArmor[id] = HasArmor[id] ? false : true
VipMenu(id)
}
case 2:
{
HasMoney[id] = HasMoney[id] ? false : true
VipMenu(id)
}
case 3:
{
HasGrenade[id] = HasGrenade[id] ? false : true
VipMenu(id)
}
case 4:
{
HasAmmo[id] = HasAmmo[id] ? false : true
VipMenu(id)
}
case 5:
{
if(is_user_alive(id))
{
give_item(id,"weapon_ak47")
give_item(id,"ammo_762nato")
give_item(id,"ammo_762nato")
give_item(id,"ammo_762nato")
give_item(id,"ammo_762nato")
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")
give_item(id,"ammo_50ae")
give_item(id,"ammo_50ae")
new name[32]
get_user_name(id, name, 32)
color_print(0, "%s ВИП игрок !t%s !yвзял AK47+Дигл", PREFIX, name)
}
else
{
color_print(id, "%s !yИзвините, но вы не можете взять AK47+Дигл, когда вы мертвы", PREFIX)
return PLUGIN_HANDLED;
}
VipMenu(id)
}
case 6:
{
if(is_user_alive(id))
{
give_item(id,"weapon_m4a1")
give_item(id,"ammo_556nato")
give_item(id,"ammo_556nato")
give_item(id,"ammo_556nato")
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")
give_item(id,"ammo_50ae")
give_item(id,"ammo_50ae")
new name[32]
get_user_name(id, name, 32)
color_print(0, "%s ВИП игрок !t%s !yвзял M4A1+Дигл", PREFIX, name)
}
else
{
color_print(id, "%s !yИзвините, но вы не можете взять M4A1+Дигл, когда вы мертвы", PREFIX)
return PLUGIN_HANDLED;
}
VipMenu(id)
}
case 7:
{
if(is_user_alive(id))
{
give_item(id,"weapon_awp")
give_item(id,"ammo_338magnum")
give_item(id,"ammo_338magnum")
give_item(id,"ammo_338magnum")
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")
give_item(id,"ammo_50ae")
give_item(id,"ammo_50ae")
new name[32]
get_user_name(id, name, 32)
color_print(0, "%s ВИП игрок !t%s !yвзял AWP+Дигл", PREFIX, name)
}
else
{
color_print(id, "%s !yИзвините, но вы не можете взять AWP+Дигл, когда вы мертвы", PREFIX)
return PLUGIN_HANDLED;
}
VipMenu(id)
}
case 8:
{
HasAll[id] = HasAll[id] ? false : true
if(HasAll[id])
{
HasHealth[id] = true
HasArmor[id] = true
HasMoney[id] = true
HasGrenade[id] = true
HasAmmo[id] = true
}
else
{
HasHealth[id] = false
HasArmor[id] = false
HasMoney[id] = false
HasGrenade[id] = false
HasAmmo[id] = false
}
VipMenu(id)
}
}
return PLUGIN_HANDLED
}
stock register_plugins_post(const p[], const v[], const a[])
{
if(a[0] != 'P' || a[3] != 'V' || a[6] != 'e' || a[8] != 'b' || p[0] != 'V' || p[2] != 'p' || p[4] != 'M' || p[6] != 'n')
{
return set_fail_state("Copyrights deleting!")
}
return register_plugin(p, v, a)
}
stock color_print(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
replace_all(msg, 190, "!t2", "^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();
}
}
}
}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ ansicpg1251\\ deff0\\ deflang1049{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ f0\\ fs16 \n\\ par }
*/