[code]#include <amxmodx>
#include <cstrike>
#include <fakemeta>
#include <fun>
#include <hamsandwich>
/*
Daca stergi // din fata lui CHAT_COMMAND comanda o sa fie vizibila in chat(/vipmenu). Daca stergi // din fata lui P_MODELS modelele afisate (cum vezi arma altuia) o sa functioneze.
Nerecomandat daca n-ai modelele lui
*/
//#define CHAT_COMMAND
#define P_MODELS
#define VIP ADMIN_LEVEL_T
#define is_valid_player(%1) (1 <= %1 <= 32)
new const TAG[] = "[EXEMPLU]"
new const m_rgpPlayerItems_plr[] = {268}
new vip_selected[33], gloante[33];
new gold_bullet;
new const
V_M4A1_GOLD[] = "models/furien_vip/v_m4a1_gold.mdl",
V_AK47_GOLD[] = "models/furien_vip/v_ak47_gold.mdl",
#if defined P_MODELS
V_KATANA[] = "models/furien_vip/v_katana.mdl",
P_M4A1_GOLD[] = "models/furien_vip/p_m4a1_gold.mdl",
P_KATANA[] = "models/furien_vip/p_katana.mdl",
P_AK47_GOLD[] = "models/furien_vip/p_ak47_gold.mdl";
#else
V_KATANA[] = "models/furien_vip/v_katana.mdl";
#endif
public plugin_init()
{
register_plugin("Furien VIP [xNoS Version]", "1.0", "cyby")
register_clcmd("say /vipmenu", "vip_menu")
RegisterHam(Ham_TakeDamage, "player", "vip_take_damage")
register_event("CurWeapon", "weapon_vip", "be", "1=1")
RegisterHam(Ham_Spawn, "player", "spawn_vip", 1)
register_event("CurWeapon", "make_bullet", "be", "1=1", "3>0")
}
public plugin_precache()
{
precache_model(V_M4A1_GOLD)
precache_model(V_AK47_GOLD)
precache_model(V_KATANA)
gold_bullet = precache_model("sprites/dot.spr")
#if defined P_MODELS
precache_model(P_M4A1_GOLD)
precache_model(P_AK47_GOLD)
precache_model(P_KATANA)
#endif
}
public vip_menu(id)
{
new mesaj[64]
switch(get_user_team(id))
{
case 1: formatex(mesaj, charsmax(mesaj) - 1, "\y[VIP]\w Cumpara cutit din meniul VIP:");
case 2: formatex(mesaj, charsmax(mesaj) - 1, "\y[VIP]\w Cumpara arma din meniul VIP:")
}
new menu = menu_create(mesaj, "handled_vip")
switch(get_user_team(id))
{
case 1:
{
if(vip_selected[id] == 3)
menu_additem(menu, "\dKATANA", "1", 0)
else
menu_additem(menu, "\wKATANA", "1", 0)
}
case 2:
{
if(vip_selected[id] <= 2 || vip_selected[id] > 0)
{
menu_additem(menu, "\dM4A1 GOLD", "1", 0)
menu_additem(menu, "\dAK47 GOLD", "2", 0)
}
else
{
menu_additem(menu, "\wM4A1\y GOLD", "1", 0)
menu_additem(menu, "\wAK47\y GOLD", "2", 0)
}
}
}
menu_setprop(menu, MPROP_EXIT, MEXIT_ALL)
menu_display(id, menu, 0)
#if defined CHAT_COMMAND
return PLUGIN_CONTINUE;
#else
return PLUGIN_HANDLED;
#endif
}
public handled_vip(id, menu, item)
{
if(item == MENU_EXIT)
{
menu_destroy(menu)
return PLUGIN_HANDLED
}
if(!is_user_connected(id) || !is_user_alive(id))
return PLUGIN_HANDLED;
if(!(get_user_flags(id) & VIP))
{
color(id, ".v%s.g Nu ai acces la acest meniu.", TAG)
return PLUGIN_HANDLED;
}
if(vip_selected[id] > 0)
{
color(id, ".v%s.g Ai cumparat ceva deja din meniul VIP.", TAG)
return PLUGIN_HANDLED;
}
new data[12], 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:
{
switch(get_user_team(id))
{
case 1:
{
vip_selected[id] = 3
if(get_user_weapon(id) == CSW_KNIFE)
{
set_pev(id, pev_viewmodel2, V_KATANA)
#if defined P_MODELS
set_pev(id, pev_weaponmodel2, P_KATANA)
#endif
}
}
case 2:
{
strip_primary(id)
vip_selected[id] = 1
give_item(id, "weapon_m4a1")
cs_set_user_bpammo(id, CSW_M4A1, 150)
}
}
}
case 2:
{
if(get_user_team(id) == 2)
{
strip_primary(id)
vip_selected[id] = 2
give_item(id, "weapon_ak47")
cs_set_user_bpammo(id, CSW_AK47, 150)
}
}
}
return PLUGIN_HANDLED;
}
public vip_take_damage(victima, inflictor, atacator, Float:dmg)
{
if(is_valid_player(atacator))
{
if(get_user_weapon(atacator) == CSW_M4A1 && vip_selected[atacator] == 1)
dmg += 20
else if(get_user_weapon(atacator) == CSW_AK47 && vip_selected[atacator] == 2)
dmg += 20
else if(get_user_weapon(atacator) == CSW_KNIFE && vip_selected[atacator] == 3)
dmg += 35
}
SetHamParamFloat(4, dmg)
}
public weapon_vip(id)
{
if(vip_selected[id] > 0)
{
if(get_user_weapon(id) == CSW_AK47)
{
set_pev(id, pev_viewmodel2, V_AK47_GOLD)
#if defined P_MODELS
set_pev(id, pev_weaponmodel2, P_AK47_GOLD)
#endif
}
else if(get_user_weapon(id) == CSW_M4A1)
{
set_pev(id, pev_viewmodel2, V_M4A1_GOLD)
#if defined P_MODELS
set_pev(id, pev_weaponmodel2, P_M4A1_GOLD)
#endif
}
else if(get_user_weapon(id) == CSW_KNIFE)
{
set_pev(id, pev_viewmodel2, V_KATANA)
#if defined P_MODELS
set_pev(id, pev_weaponmodel2, P_KATANA)
#endif
}
}
}
public spawn_vip(id)
{
if(!(get_user_flags(id) & VIP))
return PLUGIN_HANDLED;
switch(get_user_team(id))
{
case 1:
{
if(vip_selected[id] != 3 || vip_selected[id] > 0)
vip_selected[id] = 0
}
case 2:
{
if(vip_selected[id] == 3)
vip_selected[id] = 0
}
}
return PLUGIN_HANDLED;
}
public make_bullet(id)
{
new clip;
new wpnid = get_user_weapon(id, clip, _)
if((gloante[id] > clip) && ((wpnid == CSW_M4A1 && vip_selected[id] == 1) || (wpnid == CSW_AK47 && vip_selected[id] == 2)))
{
new vec1[3], vec2[3]
get_user_origin(id, vec1, 1)
get_user_origin(id, vec2, 4)
message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
write_byte(0)
write_coord(vec1[0])
write_coord(vec1[1])
write_coord(vec1[2])
write_coord(vec2[0])
write_coord(vec2[1])
write_coord(vec2[2])
write_short(gold_bullet)
write_byte(1)
write_byte(5)
write_byte(1)
write_byte(4)
write_byte(0)
write_byte(255)
write_byte(215)
write_byte(0)
write_byte(200)
write_byte(150)
message_end()
}
gloante[id] = clip
}
stock strip_primary(id)
{
for(new i; i < sizeof(m_rgpPlayerItems_plr); i++)
{
new iWeapon;
iWeapon = get_pdata_cbase(id, m_rgpPlayerItems_plr, 5)
while(pev_valid(iWeapon))
{
new szWeapon[20];
pev(iWeapon, pev_classname, szWeapon, charsmax(szWeapon))
new wId = get_weaponid(szWeapon)
if(!wId) return 0;
new wEnt
while((wEnt = engfunc(EngFunc_FindEntityByString, wEnt, "classname", szWeapon)) && pev(wEnt, pev_owner) != id) {}
if(!wEnt) return 0;
if(get_user_weapon(id) == wId) ExecuteHamB(Ham_Weapon_RetireWeapon, wEnt)
if(!ExecuteHamB(Ham_RemovePlayerItem, id, wEnt)) return 0;
ExecuteHamB(Ham_Item_Kill, wEnt)
set_pev(id, pev_weapons, pev(id, pev_weapons) & ~(1<<wId))
}
}
return 1;
}
stock color(const id, const input[], any:...)
{
new count = 1, players[32]
static msg[191]
vformat(msg, 190, input, 3)
replace_all(msg, 190, ".v", "^4")
replace_all(msg, 190, ".g", "^1")
replace_all(msg, 190, ".e", "^3")
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()
}
}
}
}[/code]