public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)
set_pcvar_string(register_cvar("Weapons Model Vip", VERSION, FCVAR_SERVER|FCVAR_SPONLY), VERSION)
for (new i = 1; i < sizeof WEAPONENTNAMES; i++)
{
if(WEAPONENTNAMES[i][0]) RegisterHam(Ham_Item_Deploy, WEAPONENTNAMES[i], "fw_Item_Deploy_Post", 1)
}
register_clcmd("say /skins", "new_menu")
g_maxplayers = get_maxplayers()
}
public plugin_precache()
{
for(new i = 0;i < sizeof new_weapons;i++)
{
precache_model(new_weapons[i][V_WEAPONS]);
}
}
public client_putinserver(id)
{
g_weapons[id] = 0
}
public event_round_start()
{
for (new id = 1; id <= g_maxplayers; id++)
{
if (!is_user_connected(id))
continue;
}
}
public new_menu(id)
{
if (!is_user_alive(id))
return PLUGIN_HANDLED
public fw_Item_Deploy_Post(weapon_ent)
{
if(!pev_valid(weapon_ent))
return
// Get weapon's owner
static owner
owner = fm_cs_get_weapon_ent_owner(weapon_ent)
// Get weapon's id
static weaponid
weaponid = cs_get_weapon_id(weapon_ent)
switch (weaponid)
{
case CSW_AK47:
{
if (g_weapons[owner] == 1)
{
set_pev(owner, pev_viewmodel2, new_weapons[V_AK47][V_WEAPONS])
}
}
case CSW_M4A1:
{
if (g_weapons[owner] == 2)
{
set_pev(owner, pev_viewmodel2, new_weapons[V_M4A1][V_WEAPONS])
}
}
case CSW_AWP:
{
if (g_weapons[owner] == 3)
{
set_pev(owner, pev_viewmodel2, new_weapons[V_AWP][V_WEAPONS])
}
}
}
}
stock fm_cs_get_weapon_ent_owner(ent)
{
// Prevent server crash if entity's private data not initalized
if (pev_valid(ent) != 2)
return -1;
return get_pdata_cbase(ent, 41, 4);
}
Cel de sus e pluginul inițial, foarte simplist, cu acces pentru toată lumea. Și la asta am modificat niște linii. Deci e pluginul inițial cu mici modificări dar nu majore.
Mai jos aveți cel care îl foloseam eu pe server, modificat de mine.
// CVar simplu, nu afectează funcționalitatea
set_pcvar_string(register_cvar("Weapons Model Vip", VERSION, FCVAR_SERVER|FCVAR_SPONLY), VERSION);
// Înregistrăm toate armele pentru Ham Sandwich
for (new i = 1; i < sizeof WEAPONENTNAMES; i++)
{
if(WEAPONENTNAMES[i][0])
RegisterHam(Ham_Item_Deploy, WEAPONENTNAMES[i], "fw_Item_Deploy_Post", 1);
}
// Comanda pentru meniu
register_clcmd("say /skins", "new_menu");
g_maxplayers = get_maxplayers();
}
// =================== Precache Modele ===================
public plugin_precache()
{
for(new i = 0; i < sizeof new_weapons; i++)
{
precache_model(new_weapons[i][V_WEAPONS]);
}
}
// =================== Jucător în server ===================
public client_putinserver(id)
{
g_weapons[id] = 0;
}
// =================== Round Start ===================
public event_round_start()
{
for (new id = 1; id <= g_maxplayers; id++)
{
if (!is_user_connected(id))
continue;
}
}
// =================== Meniu VIP ===================
public new_menu(id)
{
if (!is_user_alive(id))
return PLUGIN_HANDLED;
// Verificare VIP: flag "z"
if (!(get_user_flags(id) & ADMFLAG_ROOT)) // Înlocuiește cu flagul VIP corect dacă e altul
{
client_print(id, print_chat, "\x04[Vip] \x01Only VIP can use this menu.");
return PLUGIN_HANDLED;
}