#pragma semicolon 1
#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <engine>
#include <fun>
#include <hamsandwich>
#include <fakemeta>
#include <vault>
#define ADMIN_BBVIP ADMIN_IMMUNITY
// Define the Plugin Version
new const VERSION[] = { "1.0" };
// PREFIX
new const PREFIX[] = { "!g[ zi.turbatii.com ]!n" };
new const g_szKnifeBModel[] = "models/cutit_nebun.mdl";
new const g_szKnifeWModel[] = "models/cutit_nebun2.mdl";
new const g_szAk47Model[] = "models/dragonu_ak_47.mdl";
new const g_szDeagleModel[] = "models/deagleu.mdl";
new VipUsed[33];
new HasSpeed;
new bool:g_bHasKnifeB[33];
new bool:g_bHasKnifeW[33];
new bool:g_bHasAk47[33];
new bool:g_bHasDeagle[33];
new Float:fast_speed = 400.0;
new Float:normal_speed = 250.0;
//new g_pVisiblity;
new mpd,/* mkb,*/ mhb;
new maxplayers;
public plugin_init()
{
register_plugin("Humans: VIP Menu", VERSION, "e t n a d");
RegisterHam(Ham_Spawn, "player", "FwdHamSpawn_Post", 1);
RegisterHam(Ham_Item_PreFrame, "player", "FwdPreFrame_Post", 1);
RegisterHam(Ham_TakeDamage, "player", "FwdPlayerDamage");
//RegisterHam(Ham_Spawn, "player", "fwHamPlayerSpawnPost", 1);
register_event("CurWeapon","event_curweapon","be","1=1");
register_clcmd("say shop", "cmdVmenu");
register_clcmd("say /shop", "cmdVmenu");
register_clcmd("say_team shop", "cmdVmenu");
register_clcmd("say_team /shop", "cmdVmenu");
register_clcmd("say /cumparavip", "cmdBuyvip");
register_clcmd("say cumparavip", "cmdBuyvip");
register_clcmd("say_team cumparavip", "cmdBuyvip");
register_clcmd("say_team /cumparavip", "cmdBuyvip");
register_clcmd("say /preturi", "cmdPreturi");
register_clcmd("say_team /preturi", "cmdPreturi");
//g_pVisiblity = register_cvar( "km_invis", "200" ); // 255 = clearly visible
set_task(480.0, "kmodmsg", 0, _, _, "b");
mpd = register_cvar("money_per_damage","3");
//mkb = register_cvar("money_kill_bonus","200");
mhb = register_cvar("money_hs_bonus","500");
register_event("Damage","Damage","b");
maxplayers = get_maxplayers();
// Ham TakeDamage
register_forward( FM_CmdStart, "fw_CmdStart" );
//RegisterHam(Ham_Spawn, "player", "fwHamPlayerSpawnPost", 1);
}
public Damage(id)
{
new weapon, hitpoint, attacker = get_user_attacker(id,weapon,hitpoint);
if(attacker<=maxplayers && is_user_alive(attacker) && attacker!=id)
if (get_user_flags(attacker) & ADMIN_LEVEL_H)
{
new money = read_data(2) * get_pcvar_num(mpd);
if(hitpoint==1) money += get_pcvar_num(mhb);
cs_set_user_money(attacker,cs_get_user_money(attacker) + money);
}
}
public FwdPlayerDamage(victim, inflictor, attacker, Float:damage, damagebits)
{
if(inflictor == attacker
&& attacker != victim
&& g_bHasKnifeB[ attacker ]
&& is_user_alive(attacker)
&& get_user_weapon(attacker) == CSW_KNIFE )
{
SetHamParamFloat(4, damage * 3.0);
}
if(inflictor == attacker
&& attacker != victim
&& g_bHasAk47[ attacker ]
&& is_user_alive(attacker)
&& get_user_weapon(attacker) == CSW_AK47 )
{
SetHamParamFloat(4, damage * 2.0);
}
if(inflictor == attacker
&& attacker != victim
&& g_bHasDeagle[ attacker ]
&& is_user_alive(attacker)
&& get_user_weapon(attacker) == CSW_DEAGLE )
{
SetHamParamFloat(4, damage * 3.0);
}
}
public plugin_precache()
{
precache_model(g_szKnifeBModel);
precache_model(g_szAk47Model);
precache_model(g_szKnifeWModel);
precache_model(g_szDeagleModel);
}
public event_curweapon(id)
{
if(g_bHasKnifeB[id] && read_data(2) == CSW_KNIFE)
{
set_pev(id, pev_viewmodel2, g_szKnifeBModel);
set_user_gravity(id, 0.5);
}
if(g_bHasAk47[id] && read_data(2) == CSW_AK47)
{
set_pev(id, pev_viewmodel2, g_szAk47Model);
}
if(g_bHasDeagle[id] && read_data(2) == CSW_DEAGLE)
{
set_pev(id, pev_viewmodel2, g_szDeagleModel);
}
}
public FwdPreFrame_Post(id)
{
if(!is_user_alive(id))
{
return PLUGIN_HANDLED;
}
if(!HasSpeed)
{
return PLUGIN_HANDLED;
}
else if(HasSpeed)
{
set_user_maxspeed(id, fast_speed);
}
return PLUGIN_HANDLED;
}
public FwdHamSpawn_Post(id)
{
if (!is_user_alive(id))
return PLUGIN_CONTINUE;
HasSpeed = false;
VipUsed[id] = false;
g_bHasKnifeB[id] = false;
g_bHasKnifeW[id] = false;
g_bHasAk47[id] = false;
g_bHasDeagle[id] = false;
set_user_maxspeed(id, normal_speed);
set_user_rendering( id, _, 0, 0, 0, _, 0 );
return PLUGIN_CONTINUE;
}
public cmdVmenu(id)
{
if(!(get_user_flags(id) & ADMIN_BBVIP))
{
client_printc(id, "%s Doar !gVIPul !tpoate folosi aceasta comanda!", PREFIX);
return PLUGIN_HANDLED;
}
if(VipUsed[id])
{
client_printc(id, "%s Ai folosit deja in aceasta runda !gMenuiul de VIP !n.", 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("\yHumans VIP Menu:^n\r", "VipCTMenu_handler");
menu_additem(menu, "\w+100HP si +50Armor", "1", 0);
menu_additem(menu, "\wViteza", "2", 0);
menu_additem(menu, "\wM249 si Deagle", "3", 0);
menu_additem(menu, "\wRevive", "4", 0);
menu_additem(menu, "\wLuneta1", "5", 0);
menu_additem(menu, "\wLuneta2", "6", 0);
menu_additem(menu, "\wAK 47 x2 Damage", "7", 0);
menu_additem(menu, "\wDeagle x3 Damage", "8", 0);
menu_additem(menu, "\wAWP", "9", 0);
menu_display(id, menu);
}
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) + 100);
set_user_armor(id, get_user_armor(id) + 50);
VipUsed[id] = true;
client_printc(id, "%s !tAi primit !g100HP!n si !g50Armura!n", PREFIX);
}
case 2:
{
VipUsed[id] = true;
HasSpeed = true;
set_user_maxspeed(id, fast_speed);
client_printc(id, "%s !tAi primit !gViteza", PREFIX);
}
case 3:
{
give_item(id, "weapon_m249");
give_item(id, "weapon_deagle");
cs_set_user_bpammo(id, CSW_M249, 200);
cs_set_user_bpammo(id, CSW_DEAGLE, 100);
VipUsed[id] = true;
client_printc(id, "%s !tAi primit un !gM249!n si un !gDeagle!n", PREFIX);
}
case 4:
{
ExecuteHamB(Ham_CS_RoundRespawn, id);
VipUsed[id] = true;
client_printc(id, "%s !ttocmai ai fost !greinviat", PREFIX);
}
case 5:
{
give_item(id, "weapon_sg550");
cs_set_user_bpammo(id, CSW_SG550, 200);
VipUsed[id] = true;
client_printc(id, "%s !tAi primit o !gLuneta", PREFIX);
}
case 6:
{
give_item(id, "weapon_g3sg1");
cs_set_user_bpammo(id, CSW_G3SG1, 200);
VipUsed[id] = true;
client_printc(id, "%s !tAi primit o !gLuneta", PREFIX);
}
case 7:
{
give_item(id, "weapon_ak47");
cs_set_user_bpammo(id, CSW_AK47, 200);
set_pev(id, pev_viewmodel2, "models/dragonu_ak_47.mdl");
g_bHasAk47[id] = true;
VipUsed[id] = true;
client_printc(id, "%s !tAi primit un !gAk 47", PREFIX);
}
case 8:
{
give_item(id, "weapon_deagle");
cs_set_user_bpammo(id, CSW_DEAGLE, 200);
set_pev(id, pev_viewmodel2, "models/deagleu.mdl");
g_bHasDeagle[id] = true;
VipUsed[id] = true;
client_printc(id, "%s !tai primit un !gSuper Deagle", PREFIX);
}
case 9:
{
give_item(id, "weapon_awp");
cs_set_user_bpammo(id, CSW_AWP, 200);
VipUsed[id] = true;
client_printc(id, "%s !tai primit un !gAWP", PREFIX);
}
}
menu_destroy(menu);
return PLUGIN_HANDLED;
}
public VipTMenu(id)
{
new menu = menu_create("\yZombie VIP Menu:^n\r", "VipTMenu_handler");
menu_additem(menu, "\wViteza", "1", 0);
menu_additem(menu, "\w+100Hp", "2", 0);
menu_additem(menu, "\wSuper Cutit", "3", 0);
menu_additem(menu, "\wSuper Gheare", "4", 0);
menu_display(id, menu);
}
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;
HasSpeed = true;
set_user_maxspeed(id, fast_speed);
client_printc(id, "%s !tAi primit !gViteza", PREFIX);
}
case 2:
{
set_user_health(id, get_user_health(id) + 200);
set_user_armor(id, get_user_armor(id) + 0);
VipUsed[id] = true;
client_printc(id, "%s !tAi primit !g200 HP!n", PREFIX);
}
case 3:
{
set_user_health(id, get_user_health(id) + 50);
set_user_armor(id, get_user_armor(id) + 0);
set_user_maxspeed(id, fast_speed);
HasSpeed = true;
set_pev(id, pev_viewmodel2, "models/cutit_nebun.mdl");
g_bHasKnifeB[id] = true;
VipUsed[id] = true;
client_printc(id, "%s !Ai primit !gSuper Cutit", PREFIX);
}
case 4:
{
set_user_health(id, get_user_health(id) + 50);
set_user_armor(id, get_user_armor(id) + 0);
set_user_maxspeed(id, fast_speed);
HasSpeed = true;
set_pev(id, pev_viewmodel2, "models/cutit_nebun2.mdl");
g_bHasKnifeW[id] = true;
set_user_rendering(id, kRenderFxNone, 0, 0, 0, kRenderTransAlpha, 125);
VipUsed[id] = true;
client_printc(id, "%s !tAi primit !gSuper Gheare", PREFIX);
}
}
menu_destroy(menu);
return PLUGIN_HANDLED;
}
public cmdBuyvip(id)
{
show_motd(id, "vip.txt", "VIP");
}
public cmdPreturi(id)
{
show_motd(id, "preturi.txt", "PRETURI");
}
// 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))
{
message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players);
write_byte(players);
write_string(msg);
message_end();
}
}
}