Код
/* Plugin generated by AMXX-Studio */
#include <amxmodx>
#include <amxmisc>
#include <fakemeta>
#include <hamsandwich>
#include <cstrike>
#pragma tabsize 0
#define PLUGIN "WeaponMenu"
#define VERSION "0.3"
#define AUTHOR "KsV"
const PRIMARY_WEAPONS_BIT_SUM = (1<<CSW_SCOUT)|(1<<CSW_XM1014)|(1<<CSW_MAC10)|(1<<CSW_AUG)|(1<<CSW_UMP45)|(1<<CSW_SG550)|(1<<CSW_GALIL)|(1<<CSW_FAMAS)|(1<<CSW_AWP)|(1<<CSW_MP5NAVY)|(1<<CSW_M249)|(1<<CSW_M3)|(1<<CSW_M4A1)|(1<<CSW_TMP)|(1<<CSW_G3SG1)|(1<<CSW_SG552)|(1<<CSW_AK47)|(1<<CSW_P90);
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
register_clcmd("say AWP","give_AWP")
register_clcmd("say AK","give_AK")
register_clcmd("say M4A1","give_M4A1")
register_clcmd("say FAMAS","give_FAMAS")
register_clcmd("say GALIL","give_GALIL")
register_clcmd("say /drop", "ClCmdDrop");
register_clcmd("weapon", "my_menu")
}
public ClCmdDrop(id)
{
if(is_user_connected(id))
drop_primary(id);
}
stock drop_primary(id)
{
static weapons[32], num, i, weaponid
num = 0
get_user_weapons(id, weapons, num)
for(i = 0; i < num; i++)
{
weaponid = weapons[i]
if((1<<weaponid) & PRIMARY_WEAPONS_BIT_SUM)
{
static wname[32]
get_weaponname(weaponid, wname, charsmax(wname))
engclient_cmd(id, "drop", wname)
}
}
}
public give_AWP(id)
{
if(cs_get_user_hasprim(id))
{
client_cmd(id,"say /drop");
}
set_task(0.3,"awp")
}
public awp(id)
{
ham_give_weapon(id,"weapon_awp")
ham_give_weapon(id,"weapon_awp")
ham_give_weapon(id,"weapon_awp")
ham_give_weapon(id,"weapon_awp")
}
public give_AK(id)
{
if(cs_get_user_hasprim(id))
{
client_cmd(id,"say /drop");
}
set_task(0.3, "ak");
}
public ak(id)
{
ham_give_weapon(id,"weapon_ak47")
ham_give_weapon(id,"weapon_ak47")
ham_give_weapon(id,"weapon_ak47")
ham_give_weapon(id,"weapon_ak47")
}
public give_M4A1(id)
{
if(cs_get_user_hasprim(id))
{
client_cmd(id,"say /drop");
}
set_task(0.3,"m4a1")
}
public m4a1(id)
{
ham_give_weapon(id,"weapon_m4a1")
ham_give_weapon(id,"weapon_m4a1")
ham_give_weapon(id,"weapon_m4a1")
ham_give_weapon(id,"weapon_m4a1")
}
public give_FAMAS(id)
{
if(cs_get_user_hasprim(id))
{
client_cmd(id,"say /drop");
}
set_task(0.3,"famas")
}
public famas(id)
{
ham_give_weapon(id,"weapon_famas")
ham_give_weapon(id,"weapon_famas")
ham_give_weapon(id,"weapon_famas")
ham_give_weapon(id,"weapon_famas")
}
public give_GALIL(id)
{
if(cs_get_user_hasprim(id))
{
client_cmd(id,"say /drop");
}
set_task(0.3,"galil")
}
public galil(id)
{
ham_give_weapon(id,"weapon_galil")
ham_give_weapon(id,"weapon_galil")
ham_give_weapon(id,"weapon_galil")
ham_give_weapon(id,"weapon_galil")
}
public my_menu(id)
{
new i_Menu = menu_create("\rОружейка:", "server_menu")
//Пункты меню,номера функций, доступ
menu_additem(i_Menu, "\y Взять \r[\yAK47\r]", "1", 0);
menu_additem(i_Menu, "\w Взять \r[\wM4A1\r]", "2", 0);
menu_additem(i_Menu, "\y Взять \r[\yAWP\r]", "3", 0);
menu_additem(i_Menu, "\w Взять \r[\wFAMAS\r]", "4", 0);
menu_additem(i_Menu, "\y Взять \r[\yGALIL\r]", "5", 0);
menu_setprop(i_Menu, MPROP_NEXTNAME, "Далее");
menu_setprop(i_Menu, MPROP_BACKNAME, "Назад");
menu_setprop(i_Menu, MPROP_EXITNAME, "Выход");
menu_display(id, i_Menu, 0)
return PLUGIN_HANDLED
}
public server_menu(id, menu, item)
{
if (item == MENU_EXIT)
{
menu_destroy(menu)
return PLUGIN_HANDLED
}
new s_Data[6], s_Name[64], i_Access, i_Callback
menu_item_getinfo(menu, item, i_Access, s_Data, charsmax(s_Data), s_Name, charsmax(s_Name), i_Callback)
new i_Key = str_to_num(s_Data)
switch(i_Key)
{
case 1: client_cmd(id, "say ak")
case 2: client_cmd(id, "say m4a1")
case 3: client_cmd(id, "say awp")
case 4: client_cmd(id, "say famas")
case 5: client_cmd(id, "say galil")
}
menu_destroy(menu);
return PLUGIN_HANDLED
}
stock ham_give_weapon(id,weapon[])
{
if(!equal(weapon,"weapon_",7)) return 0
new wEnt = engfunc(EngFunc_CreateNamedEntity,engfunc(EngFunc_AllocString,weapon));
if(!pev_valid(wEnt)) return 0
set_pev(wEnt,pev_spawnflags,SF_NORESPAWN);
dllfunc(DLLFunc_Spawn,wEnt)
if(!ExecuteHamB(Ham_AddPlayerItem,id,wEnt))
{
if(pev_valid(wEnt)) set_pev(wEnt,pev_flags,pev(wEnt,pev_flags) | FL_KILLME);
return 0
}
ExecuteHamB(Ham_Item_AttachToPlayer,wEnt,id)
return 1
}