Engine
Code:
get_player_weapon_entity(id, CSW_ID)
{
static ent, szClassname[24]; ent = -1;
get_weaponname(CSW_ID, szClassname, charsmax(szClassname));
while ( (ent=find_ent_by_class(ent, szClassname)) > 0 && entity_get_edict(ent, EV_ENT_owner) != id ) { }
return ent;
}
Or most common sense.
Code:
ent = find_ent_by_owner(-1, "weapon_class", owner);
or
Hamsandwich
PHP Code:
new g_user_weapon_ent_pointer[32][32];
public plugin_init()
{
for ( new i=CSW_P228; i <= CSW_P90; i++)
{
if(get_weaponname(i, szWpn, charsmax(szWpn)))
{
RegisterHam(Ham_Item_AddToPlayer, szWpn, "fw_weapon_addtoplayer_post", true);
RegisterHam(Ham_Item_Kill, szWpn, "fw_weapon_kill_post", true);
}
}
}
public fw_weapon_addtoplayer_post(ent, player)
{
static szClassname[32];
entity_get_string(ent, EV_SZ_classname, szClassname, charsmax(szClassname));
g_user_weapon_ent_pointer[player - 1][ get_weaponid(szClassname)-1 ] = ent;
}
public fw_weapon_kill_post(ent)
{
new player = entity_get_edict(ent, EV_ENT_owner);
static szClassname[32];
entity_get_string(ent, EV_SZ_classname, szClassname, charsmax(szClassname));
g_user_weapon_ent_pointer[player - 1][ get_weaponid(szClassname)-1 ] = 0;
}
__________________