PHP Code:
#pragma semicolon 1
#include <amxmodx>
#include <cstrike>
#include <engine>
#include <fun>
#include <hamsandwich>
#define ADMIN_DRVIP ADMIN_LEVEL_H
new const VERSION[] = { "1.5" };
new const PREFIX[] = { "!g[DRX-VIP]!n" };
new VipUsed[33];
new HasGravity[33];
new HasSpeed[33];
new Float:low_gravity = 0.4;
new Float:normal_gravity = 1.0;
new Float:fast_speed = 600.0;
new Float:normal_speed = 250.0;
public plugin_init()
{
register_plugin("DRX-VIP", VERSION, "");
RegisterHam(Ham_Spawn, "player", "FwdHamSpawn_Post", 1);
RegisterHam(Ham_Item_PreFrame, "player", "FwdPreFrame_Post", 1);
register_clcmd("say /vip", "Motd");
register_clcmd("say /vipmenu", "cmdVmenu");
register_clcmd("say vipmenu", "cmdVmenu");
register_clcmd("say_team /vipmenu", "cmdVmenu");
register_clcmd("say_team vipmenu", "cmdVmenu");
register_message(get_user_msgid("ScoreAttrib"),"vip_scoreboard");
}
public Motd(id)
{
show_motd(id,"vip.html");
}
public FwdPreFrame_Post(id)
{
if(is_user_alive(id) && HasGravity[id])
set_user_gravity(id, low_gravity);
else
if(is_user_alive(id) && HasSpeed[id])
set_user_maxspeed(id, fast_speed);
}
public FwdHamSpawn_Post(id)
{
HasGravity[id] = false;
HasSpeed[id] = false;
VipUsed[id] = false;
set_user_gravity(id, normal_gravity);
set_user_maxspeed(id, normal_speed);
set_user_health(id, 100);
set_user_armor(id, 0);
}
public cmdVmenu(id)
{
if(!is_user_alive(id))
{
client_printc(id, "%s !tNu poti folosi !gVIPMENU !tatunci cand esti mort.", PREFIX);
return PLUGIN_HANDLED;
}
if(!(get_user_flags(id) & ADMIN_DRVIP))
{
client_printc(id, "%s Meniu accesibil numai pt. VIP.Vrei sa fii VIP? Scrie !g/vip !npentru info.", PREFIX);
return PLUGIN_HANDLED;
}
if(VipUsed[id])
{
client_printc(id, "%s !tAi folosit !gMeniul VIP!t in aceasta runda.", PREFIX);
return PLUGIN_HANDLED;
}
switch(cs_get_user_team(id))
{
case CS_TEAM_T:
VipTMenu(id);
case CS_TEAM_CT:
VipCTMenu(id);
}
return PLUGIN_HANDLED;
}
public VipCTMenu(id)
{
new menu = menu_create("\rMeniu VIP \y(CT):^n", "VipCTMenu_handler");
menu_additem(menu, "\w+150HP & 250 Aparare", "1", 0);
menu_additem(menu, "\wGravitatie", "2", 0);
menu_additem(menu, "\wRespawn", "3", 0);
menu_additem(menu, "\wGrenazi", "4", 0);
menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
menu_display(id, menu, 0);
}
public VipCTMenu_handler(id, menu, item)
{
if(!is_user_alive(id))
return PLUGIN_HANDLED;
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) + 150);
set_user_armor(id, get_user_armor(id) + 250);
VipUsed[id] = true;
}
case 2:
{
VipUsed[id] = true;
HasGravity[id] = true;
set_user_gravity(id, 0.4);
}
case 3:
{
ExecuteHamB(Ham_CS_RoundRespawn, id);
VipUsed[id] = true;
}
case 4:
{
give_item(id, "weapon_hegrenade");
give_item(id, "weapon_flashbang");
cs_set_user_bpammo(id, CSW_FLASHBANG, 2);
give_item(id, "weapon_smokegrenade");
VipUsed[id] = true;
}
}
menu_destroy(menu);
return PLUGIN_HANDLED;
}
public VipTMenu(id)
{
new menu = menu_create("\yMeniu VIP \r(TR):^n", "VipTMenu_handler");
menu_additem(menu, "\w+150 HP & Aparare", "1", 0);
menu_additem(menu, "\wArma \r(MP5Navy)", "2", 0);
menu_additem(menu, "\wPistol \r(Dual Elites)", "3", 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:
{
set_user_health(id, get_user_health(id) + 150);
set_user_armor(id, get_user_armor(id) + 150);
VipUsed[id] = true;
}
case 2:
{
VipUsed[id] = true;
give_item(id, "weapon_mp5navy");
}
case 3:
{
give_item(id, "weapon_elite");
VipUsed[id] = true;
}
}
menu_destroy(menu);
return PLUGIN_HANDLED;
}
public vip_scoreboard(const MsgId, const MsgType, const MsgDest) {
static id;
id = get_msg_arg_int(1);
if(get_user_flags(id) & ADMIN_LEVEL_F )
set_msg_arg_int(2, ARG_BYTE, (1 << 2 ));
}
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();
}
}
}
}