PHP Code:
//#pragma semicolon 1
#include <amxmodx>
#include <cstrike>
#include <engine>
#include <fun>
#include <hamsandwich>
#include <zombieplague>
// Define the Plugin Version
new const VERSION[] = { "2.3" };
// PREFIX
new const PREFIX[] = { "!g[.:V.I.P:.]!n" };
new pNum;
new VipUsed[33];
public plugin_init()
{
register_plugin("Zombie Plague: New VIP Menu", VERSION, "");
RegisterHam(Ham_Spawn, "player", "FwdHamSpawn_Post", 1);
pNum = register_cvar("c_minplayers","15") // Number of Min. Players
register_clcmd("say /freevip", "cmdVmenu");
register_clcmd("say_team /freevip", "cmdVmenu");
}
public FwdHamSpawn_Post(id)
{
if ( !is_user_alive(id)) return 1;
VipUsed[id] = false;
set_user_rendering( id, _, 0, 0, 0, _, 0 );
return 0;
}
public cmdVmenu(id)
{
if ( is_user_alive(id) ){
if( get_playersnum() >= get_pcvar_num(pNum))
{
if (!VipUsed[id]){
VipUsed[id] = true;
switch(cs_get_user_team(id))
{
case ZP_TEAM_ZOMBIE:
VipTMenu(id);
case ZP_TEAM_HUMAN:
VipCTMenu(id);
}
}
else
{
client_printc(id, "%s u can use !gFree VIP Menu!n . One Time, every round", PREFIX);
client_cmd(id, "spk /sound/ng_no.wav");
}
}
else {
client_printc(id, "%s VIP Will Be Actived ON !g%d !nPLayers", PREFIX , get_pcvar_num(pNum));
client_cmd(id, "spk /sound/ng_ok.wav");
}
}
else
{
client_printc(id, "%s !nYou need to be !gAlive to run the menu", PREFIX);
client_cmd(id, "spk /sound/ng_no.wav");
}
return PLUGIN_CONTINUE;
}
public VipCTMenu(id)
{
client_cmd(id, "spk /sound/ng_vipmenu.wav");
new menu = menu_create("\yFree VIP Menu \r(Human):^n", "VipCTMenu_handler");
menu_additem(menu, "\w50 Hp + 50 Armor", "1", 0);
menu_additem(menu, "\wMachingun + Gravity", "2", 0);
menu_additem(menu, "\w100 Armor \d[Anti Inf Armor]", "3", 0);
menu_additem(menu, "\wExtra AmmoPacks \d[8 AmmoPacks]", "4", 0);
menu_additem(menu, "\wG3SG1 \d[Sniper]", "5", 0);
menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
menu_display(id, menu, 0);
}
public VipCTMenu_handler(id, menu, item)
{
if( item == MENU_EXIT )
{
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:
{
set_user_health(id, get_user_health(id) + 50)
set_user_armor(id, get_user_armor(id) + 100)
VipUsed[id] = true
client_printc(id, "%s You Have !g50 Hp!n + !g100 Armor!n", PREFIX)
}
case 2:
{
give_item(id, "weapon_m249");
set_user_gravity( id, 0.5 );
cs_set_user_bpammo(id, CSW_M249, 200);
VipUsed[id] = true;
client_printc(id, "%s You Have !gM249!n + !gGravity!n", PREFIX)
}
case 3:
{
VipUsed[id] = true;
set_user_armor(id, get_user_armor(id) + 100);
client_printc(id, "%s You Have !g140 Armor!n", PREFIX)
}
case 4:
{
zp_set_user_ammo_packs(id, zp_get_user_ammo_packs(id) + random_num(8, 8));
VipUsed[id] = true;
client_printc(id, "%s You Have !g8 Ammo", PREFIX);
}
case 5:
{
give_item(id, "weapon_g3sg1");
cs_set_user_bpammo(id, CSW_G3SG1, 200);
VipUsed[id] = true;
client_printc(id, "%s You choose !gG3sg1", PREFIX);
}
}
menu_destroy(menu);
return PLUGIN_HANDLED;
}
public VipTMenu(id)
{
new menu = menu_create("\yFree VIP Menu \r(Zombies):^n", "VipTMenu_handler");
menu_additem(menu, "\w500 Hp", "1", 0);
menu_additem(menu, "\wRandom AmmoPacks \d[From 1 to 9 AP]", "2", 0);
menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
menu_display(id, menu, 0);
}
public VipTMenu_handler(id, menu, item)
{
if( item == MENU_EXIT )
{
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:
{
VipUsed[id] = true;
set_user_health(id, get_user_health(id) + 500);
client_printc(id, "%s You Have !g500 HP", PREFIX);
VipUsed[id] = true;
}
case 2:
{
zp_set_user_ammo_packs(id, zp_get_user_ammo_packs(id) + random_num(1, 9))
VipUsed[id] = true;
client_printc(id, "%s You Have !gSome AmmoPacks!n", PREFIX);
}
}
menu_destroy(menu);
return PLUGIN_HANDLED;
}
// Colour Chat
stock client_printc(const id, const input[], any:...)
{
new count = 1, players[32];
static msg[191];
vformat(msg, 190, input, 3);
replace_all(msg, 190, "!g", "^x04"); // Green Color
replace_all(msg, 190, "!n", "^x01"); // Default Color
replace_all(msg, 190, "!t", "^x03"); // 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();
}
}
}
}