В Counter-Strike оружие игрока - один из важнейших моментов, по этому с этим предметом работать приходится часто, а работа в основном связана с тем что бы удалить или выдать оружие. Функция
ham_strip_weapon позволяет удалить конкретное оружие у игрока.
Исходный код функции:
#include <fakemeta>
#include <hamsandwich>
stock ham_strip_weapon(id,weapon[])
{
if(!equal(weapon,"weapon_",7)) return 0
new wId = get_weaponid(weapon)
if(!wId) return 0
new wEnt
while((wEnt = engfunc(EngFunc_FindEntityByString,wEnt,"classname",weapon)) && 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
}