#include <amxmodx>
#include <hamsandwich>
#include <fakemeta>
#include <fun>
#include <cstrike>
#define VIP ADMIN_LEVEL_H
static const START[] = "^1[^4Chezy | Dust Only^1]"
static const MENU[] = "Chezy | Dust Only"
static const BUY[] = "^3Chezy | Dust Only^1"
new player_t[ ] = "vip_t" //Název T VIP modelu bez .mdl
new player_ct[ ] = "vip_ct" //Název CT VIP modelu bez .mdl
new precache_ct[ ] = "models/player/vip_ct/vip_ct.mdl" //Cesta k CT VIP modelu
new precache_t[ ] = "models/player/vip_t/vip_t.mdl" //Cesta k T VIP modelu
// ID variables
new Menu[33], Round[33], Weapon[33], bool: HasC4[33]
new maxplayers
//cvars
new killHP, hskillHP, killMoney, hskillMoney, maxHP
new onoffhp1[33], onfoffhphs1[33], onoffmoney1[33]
new onoffmoney, onoffhp, onoffskin, onoffnastav, onoffhs, onoffmenu
new g_hudmsg1, g_hudmsg2
public plugin_init()
{
register_plugin("VIP Menu", "3.2", "Pur3")
RegisterHam(Ham_Spawn, "player", "player_spawn", 1)
RegisterHam(Ham_Killed, "player", "player_killed")
register_logevent("round_first", 3, "0=World triggered", "2=Restart_Round")
register_logevent("round_first", 3, "0=World triggered", "1=Game_Commencing")
register_event("Damage", "player_damage", "b", "2!0", "3=0", "4!0")
register_clcmd("say /menu", "cmd_menu")
register_clcmd("say /nastaveni", "cmd_nastaveni")
register_clcmd("say /vips", "print_adminlist")
register_clcmd("say_team /menu", "cmd_menu")
register_clcmd("say_team /nastavenia", "cmd_nastaveni")
register_clcmd("say_team /vips", "print_adminlist")
register_clcmd("say /rs", "cmd_resetscore")
register_clcmd("say /vip", "cmd_motd")
onoffmoney = register_cvar("vip_OnOffMoney", "1")
onoffhp = register_cvar("vip_OnOffHP", "1")
onoffhs = register_cvar("vip_OnOffHPHS", "1") // HP za hlavu
onoffskin = register_cvar("vip_OnOffSkins", "1")
onoffnastav = register_cvar("vip_OnOffNastaveni", "1")
onoffmenu = register_cvar("vip_OnOffMenu", "1")
killHP = register_cvar("vip_killHP", "10")
hskillHP = register_cvar("vip_hskillHP", "15") // Bonus za HS
killMoney = register_cvar("vip_killMoney", "200")
hskillMoney = register_cvar("vip_hskillMoney", "300") // Bonus za HS
maxHP = register_cvar("vip_maxHP", "130")
maxplayers = get_maxplayers()
g_hudmsg1 = CreateHudSyncObj()
g_hudmsg2 = CreateHudSyncObj()
}
public cmd_motd(id)
{
show_motd(id, "vip.txt", "VIP vyhody")
}
public client_putinserver(id)
{
Weapon[id] = 0
Round[id] = 0
Menu[id] = 1
onoffhp1[id] = 1
onfoffhphs1[id] = 1
onoffmoney1[id] = 1
}
public cmd_resetscore(id)
{
if(get_user_flags(id) & VIP)
{
set_user_frags(id, 0)
cs_set_user_deaths(id, 0)
client_print_color(id, "%s Uspesne si si resetoval skore!", START)
}
else
{
client_print_color(id, "%s Pokial si chces resetovat skore kup si VIP na Chezy | Dust Only", START)
}
}
public round_first()
{
for(new i = 0 ; i < maxplayers ; i++)
{
Round[i] = 0
}
}
public cmd_menu(id)
{
if(get_pcvar_num(onoffmenu))
{
if(is_user_alive(id) && get_user_flags(id) & VIP)
{
static item[64]
formatex(item, charsmax(item), "\wV\.I.P Menu", MENU)
new menu = menu_create(item, "menu_handler")
formatex(item, charsmax(item), "\wM4A1 + Deagle! \r(VIP)")
menu_additem(menu, item, "1", 0)
formatex(item, charsmax(item), "\wAK47 + Deagle! \r(VIP)")
menu_additem(menu, item, "2", 0)
formatex(item, charsmax(item), "\wAWP + Deagle \r(VIP)")
menu_additem(menu, item, "3", 0)
formatex(item, charsmax(item), "\wFAMAS + Deagle \y(EXTRA VIP)")
menu_additem(menu, item, "4", 0)
formatex(item, charsmax(item), "\wKulomet + Deagle \y(EXTRA VIP)")
menu_additem(menu, item, "5", 0)
formatex(item, charsmax(item), "\rNezobrazovat")
menu_additem(menu, item, "7", 0)
formatex(item, charsmax(item), "\rU\wzavrit")
menu_additem(menu, item, "8", 0)
menu_setprop(menu, MPROP_EXIT, MEXIT_NEVER)
menu_setprop(menu, MPROP_NUMBER_COLOR, "\w" )
menu_display(id, menu, 0)
}
}
}
public menu_handler(id, menu, item)
{
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(get_user_flags(id) & VIP)
{
if(Round[id] > 1)
{
if(!Weapon[id])
{
if(user_has_weapon(id, CSW_C4) && cs_get_user_team(id) & CS_TEAM_T)
HasC4[id] = true
else
HasC4[id] = false
Weapon[id] = 1
strip_user_weapons(id)
if(HasC4[id]) {
give_item(id, "weapon_c4")
cs_set_user_plant(id)
}
give_item(id, "weapon_m4a1")
give_item(id, "weapon_deagle")
give_item(id, "weapon_knife")
give_item(id, "weapon_hegrenade")
give_item(id, "weapon_flashbang")
give_item(id, "weapon_flashbang")
give_item(id, "weapon_smokegrenade")
give_item(id, "item_thighpack")
cs_set_user_bpammo(id, CSW_M4A1, 90)
cs_set_user_bpammo(id, CSW_DEAGLE, 35)
client_print_color(id, "%s Prave si dostal ^3M4A1 ^1+ ^3Deagle^1!", START)
}
else
{
client_print_color(id, "%s Uz si si vybral jednu ^3Moznost^1!", START)
}
}
else
{
client_print_color(id, "%s Moznost si mozes vybrat az po ^3prvom kole^1!", START)
}
}
else
{
client_print_color(id, "%s Nejsi VIP hrac! Zakup si ho na ^3Chezy | Dust Only^1!", START, BUY)
cmd_menu(id)
}
}
case 2:
{
if(get_user_flags(id) & VIP)
{
if(Round[id] > 1)
{
if(!Weapon[id])
{
if (user_has_weapon(id, CSW_C4) && cs_get_user_team(id) & CS_TEAM_T)
HasC4[id] = true
else
HasC4[id] = false
Weapon[id] = 1
strip_user_weapons(id)
if(HasC4[id]) {
give_item(id, "weapon_c4")
cs_set_user_plant(id)
}
give_item(id, "weapon_ak47")
give_item(id, "weapon_deagle")
give_item(id, "weapon_knife")
give_item(id, "weapon_hegrenade")
give_item(id, "weapon_flashbang")
give_item(id, "weapon_flashbang")
give_item(id, "weapon_smokegrenade")
give_item(id, "item_thighpack")
cs_set_user_bpammo(id, CSW_AK47, 90)
cs_set_user_bpammo(id, CSW_DEAGLE, 35)
client_print_color(id, "%s Prave si dostal ^3AK47 ^1+ ^3Deagle^1!", START)
}
else
{
client_print_color(id, "%s Uz si si vybral jednu ^3Moznost^1!", START)
}
}
else
{
client_print_color(id, "%s Moznost si mozes vybrat az po^3 prvom kole^1!", START)
}
}
else
{
client_print_color(id, "%s Nejsi VIP hrac! Zakup si ho na ^3Chezy | Dust Only^1!", START, BUY)
cmd_menu(id)
}
}
case 3:
{
if(get_user_flags(id) & VIP)
{
if(Round[id] > 1)
{
if(!Weapon[id])
{
if (user_has_weapon(id, CSW_C4) && cs_get_user_team(id) & CS_TEAM_T)
HasC4[id] = true
else
HasC4[id] = false
Weapon[id] = 1
strip_user_weapons(id)
if(HasC4[id]) {
give_item(id, "weapon_c4")
cs_set_user_plant(id)
}
give_item(id, "weapon_awp")
give_item(id, "weapon_deagle")
give_item(id, "weapon_knife")
give_item(id, "weapon_hegrenade")
give_item(id, "weapon_flashbang")
give_item(id, "weapon_flashbang")
give_item(id, "weapon_smokegrenade")
give_item(id, "item_thighpack")
cs_set_user_bpammo(id, CSW_AWP, 30)
cs_set_user_bpammo(id, CSW_DEAGLE, 35)
client_print_color(id, "%s Prave si dostal ^3AWP ^1+ ^3Deagle^1!", START)
}
else
{
client_print_color(id, "%s Uz si si vybral jednu ^3Moznost^1!", START)
}
}
else
{
client_print_color(id, "%s Moznost si mozes vybrat az po^3 prvom kole^1!", START)
}
}
else
{
client_print_color(id, "%s Niesi VIP hrac! Zakup si ho na ^3Chezy | Dust Only^1!", START, BUY)
cmd_menu(id)
}
}
case 4:
{
if(get_user_flags(id) & ADMIN_LEVEL_G)
{
if(Round[id] > 1)
{
if(!Weapon[id])
{
if (user_has_weapon(id, CSW_C4) && cs_get_user_team(id) & CS_TEAM_T)
HasC4[id] = true
else
HasC4[id] = false
Weapon[id] = 1
strip_user_weapons(id)
if(HasC4[id]) {
give_item(id, "weapon_c4")
cs_set_user_plant(id)
}
give_item(id, "weapon_famas")
give_item(id, "weapon_deagle")
give_item(id, "weapon_knife")
give_item(id, "weapon_hegrenade")
give_item(id, "weapon_flashbang")
give_item(id, "weapon_flashbang")
give_item(id, "weapon_smokegrenade")
give_item(id, "item_thighpack")
cs_set_user_bpammo(id, CSW_FAMAS, 90)
cs_set_user_bpammo(id, CSW_DEAGLE, 35)
client_print_color(id, "%s Prave si dostal ^3FAMAS ^1+ ^3Deagle^1!", START)
}
else
{
client_print_color(id, "%s Uz si si vybral jednu ^3Moznost^1!", START)
}
}
else
{
client_print_color(id, "%s Moznost si mozes vybrat az po^3 prvom kole^1!", START)
}
}
else
{
client_print_color(id, "%s Na zebrani teto zbrane potrebujes EXTRA VIP, Zakup si ho na - ^3Chezy | Dust Only^1!", START, BUY)
cmd_menu(id)
}
}
case 5:
{
if(get_user_flags(id) & ADMIN_LEVEL_G)
{
if(Round[id] > 1)
{
if(!Weapon[id])
{
if (user_has_weapon(id, CSW_C4) && cs_get_user_team(id) & CS_TEAM_T)
HasC4[id] = true
else
HasC4[id] = false
Weapon[id] = 1
strip_user_weapons(id)
if(HasC4[id]) {
give_item(id, "weapon_c4")
cs_set_user_plant(id)
}
give_item(id, "weapon_m249")
give_item(id, "weapon_deagle")
give_item(id, "weapon_knife")
give_item(id, "weapon_hegrenade")
give_item(id, "weapon_flashbang")
give_item(id, "weapon_flashbang")
give_item(id, "weapon_smokegrenade")
give_item(id, "item_thighpack")
cs_set_user_bpammo(id, CSW_M249, 200)
cs_set_user_bpammo(id, CSW_DEAGLE, 35)
client_print_color(id, "%s Prave si dostal ^3Gulomet ^1+ ^3Deagle^1!", START)
}
else
{
client_print_color(id, "%s Uz si si vybral jednu ^3Moznost^1!", START)
}
}
else
{
client_print_color(id, "%s Moznost si mozes vybrat az po^3 prvom kole^1!", START)
}
}
else
{
client_print_color(id, "%s Na zebrani teto zbrane potrebujes EXTRA VIP, Zakup si ho na - ^3.Chezy | Dust Only^1!", START, BUY)
cmd_menu(id)
}
}
case 6:
{
cmd_motd(id)
}
case 7:
{
if(Menu[id])
Menu[id] = 0
else
Menu[id] = 1
cmd_menu(id)
}
}
menu_destroy(menu)
return PLUGIN_HANDLED
}
public cmd_nastaveni(id)
{
if(get_user_flags(id) & VIP)
{
if(get_pcvar_num(onoffnastav))
{
new hp = get_pcvar_num(onoffhp)
new hphs = get_pcvar_num(onoffhs)
new money = get_pcvar_num(onoffmoney)
static item[64]
formatex(item, charsmax(item), "\rNastaveni", MENU)
new menu = menu_create(item, "nastaveni_handler")
if(hp)
{
if(onoffhp1[id]) {
formatex(item, charsmax(item), "\yD\woplnovanie HP za \rK\will \y[ZAPNUTE]")
menu_additem(menu, item, "1", 0)
} else {
formatex(item, charsmax(item), "\rD\woplnovanie HP za \rK\will \r[VYPNUTE]")
menu_additem(menu, item, "1", 0)
}
}
if(hphs)
{
if(onfoffhphs1[id]) {
formatex(item, charsmax(item), "\yD\woplnovanie HP za \rH\weadshot \y[ZAPNUTE]")
menu_additem(menu, item, "2", 0)
} else {
formatex(item, charsmax(item), "\rD\woplnovanie HP za \rH\weadshot \r[VYPNUTE]")
menu_additem(menu, item, "2", 0)
}
}
if(money)
{
if(onoffmoney1[id]) {
formatex(item, charsmax(item), "\yD\woplnovanie Penazi za \rK\will \y[ZAPNUTE]")
menu_additem(menu, item, "3", 0)
} else {
formatex(item, charsmax(item), "\rD\woplnovanie Penazi za \rK\will \r[VYPNUTE]")
menu_additem(menu, item, "3", 0)
}
}
if(hp || hphs || money)
menu_addblank(menu, 0)
formatex(item, charsmax(item), "\rV\wratit sa do \rM\wenu")
menu_additem(menu, item, "4", 0)
formatex(item, charsmax(item), "\rU\wzavriet")
menu_additem(menu, item, "5", 0)
menu_setprop(menu, MPROP_EXIT, MEXIT_NEVER)
menu_setprop(menu, MPROP_NUMBER_COLOR, "\w" )
menu_display(id, menu, 0)
}
else
{
client_print_color(id, "%s Nastavenie je na tomto servery ^3vypnute^1!", START)
}
}
else
{
client_print_color(id, "%s Niesi VIP hrac! Zakup si ho na ^3Chezy | Dust Only^1!", START, BUY)
}
return PLUGIN_HANDLED
}
public nastaveni_handler(id, menu, item)
{
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(onoffhp1[id]) {
client_print_color(id, "%s Doplnovanie HP za Kill ^3VYPNUTE", START)
onoffhp1[id] = 0
} else {
client_print_color(id, "%s Doplnovanie HP za Kill ^3ZAPNUTE", START)
onoffhp1[id] = 1
}
cmd_nastaveni(id)
}
case 2:
{
if(onfoffhphs1[id]) {
client_print_color(id, "%s Doplnovanie HP za HS ^3VYPNUTE", START)
onfoffhphs1[id] = 0
} else {
client_print_color(id, "%s Doplnovanie HP za HS ^3ZAPNUTE", START)
onfoffhphs1[id] = 1
}
cmd_nastaveni(id)
}
case 3:
{
if(onoffmoney1[id]) {
client_print_color(id, "%s Doplnovanie Penazi za Kill ^3VYPNUTE", START)
onoffmoney1[id] = 0
} else {
client_print_color(id, "%s Doplnovanie Penazi za Kill ^3ZAPNUTE", START)
onoffmoney1[id] = 1
}
cmd_nastaveni(id)
}
case 4:
{
cmd_menu(id)
}
case 5:
{
//...
}
}
menu_destroy(menu)
return PLUGIN_HANDLED
}
public player_spawn(id)
{
Weapon[id] = 0
Round[id]++
if(get_pcvar_num(onoffmenu))
{
if(Menu[id])
cmd_menu(id)
else
client_print_color(id, "%s K otvoreniu menu, napis ^4/menu^1.", START)
}
if(get_user_flags(id) & VIP)
{
give_item(id, "item_thighpack")
give_item(id, "item_assaultsuit")
if(get_pcvar_num(onoffskin))
{
}
}
}
public player_killed(victim, attacker, shouldgib)
{
new HPkill = get_pcvar_num(killHP)
new HPkillhs = get_pcvar_num(hskillHP)
new Moneykill = get_pcvar_num(killMoney)
new Moneykillhs = get_pcvar_num(hskillMoney)
new HPmax = get_pcvar_num(maxHP)
if(get_user_flags(attacker) & VIP && is_user_alive(attacker))
{
if(get_pcvar_num(onoffhp))
{
if(onoffhp1[attacker])
{
set_user_health(attacker, get_user_health(attacker) + HPkill)
}
}
if(get_pcvar_num(onoffhs))
{
if(get_pdata_int(victim, 75) == HIT_HEAD && onfoffhphs1[attacker])
{
set_user_health(attacker, get_user_health(attacker) + HPkillhs)
}
}
if(get_user_health(attacker) > HPmax)
{
set_user_health(attacker, HPmax)
}
if(get_pcvar_num(onoffmoney))
{
if(onoffmoney1[attacker])
{
cs_set_user_money(attacker, cs_get_user_money(attacker) + Moneykill)
if(get_pdata_int(victim, 75) == HIT_HEAD)
{
cs_set_user_money(attacker, cs_get_user_money(attacker) + Moneykillhs)
}
}
}
}
}
public player_damage(id)
{
static attacker; attacker = get_user_attacker(id)
static damage; damage = read_data(2)
if(get_user_flags(id) & VIP)
{
set_hudmessage(255, 0, 0, 0.45, 0.50, 2, 0.1, 4.0, 0.1, 0.1, -1)
ShowSyncHudMsg(id, g_hudmsg2, "%i^n", damage)
}
if(get_user_flags(attacker) & VIP)
{
set_hudmessage(0, 100, 200, -1.0, 0.55, 2, 0.1, 4.0, 0.02, 0.02, -1)
ShowSyncHudMsg(attacker, g_hudmsg1, "%i^n", damage)
}
}
public print_adminlist(user)
{
new adminnames[33][32]
new message[256]
new id, count, x, len
for(id = 1 ; id <= maxplayers ; id++)
if(is_user_connected(id))
if(get_user_flags(id) & VIP)
get_user_name(id, adminnames[count++], 31)
len = format(message, 255, "^x04VIP HRACI ONLINE: ")
if(count > 0) {
for(x = 0 ; x < count ; x++) {
len += format(message[len], 255-len, "%s%s ", adminnames[x], x < (count-1) ? ", ":"")
if(len > 96 ) {
print_message(user, message)
len = format(message, 255, "^x04 ")
}
}
print_message(user, message)
}
else {
len += format(message[len], 255-len, "Ziadny VIP neni ONLINE")
print_message(user, message)
}
}
print_message(id, msg[]) {
message_begin(MSG_ONE, get_user_msgid("SayText"), {0,0,0}, id)
write_byte(id)
write_string(msg)
message_end()
}
stock client_print_color(const id, const input[], any:...)
{
new count = 1, players[32]
static msg[191]
vformat(msg, 190, input, 3)
replace_all(msg, 190, "^4", "^4") // Green Color
replace_all(msg, 190, "^1", "^1") // Default Color
replace_all(msg, 190, "^3", "^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();
}
}
}
}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1029\\ f0\\ fs16 \n\\ par }
*/