下面是引用 freeze02468 于 2013-12-30 12:15 发表的 :
请问大大可以再多给小弟一些提提示吗?
小弟完全不知道该从何下手...
下面所有的武器物件ID都宣告成
weap_ent
<engine>
复制程式
find_ent_by_owner(iIndex, const szClass[], iOwner, iJghgType=0)
使用方法:
weap_ent = fm_find_ent_by_owner(-1, "weapon_m4a1", id)
<fakemeta>
复制程式
stock fm_find_ent_by_owner(entity, const classname[], owner)
{
while ((entity = engfunc(EngFunc_FindEntityByString, entity, "classname", classname)) && (pev(entity, pev_owner) != owner)) {}
return entity;
}
使用方法:
weap_ent = fm_find_ent_by_owner(-1, "weapon_m4a1", id)
<hamsandwich>
复制程式
get_pdata_cbase(id, 373, 5)
使用方法:
if (get_user_weapon(id) == CSW_M4A1)
weap_ent = get_pdata_cbase(id, 373, 5)
例如:
cs_set_weapon_ammo(weap_ent, 30)
find_ent_by_owner 是用在判断玩家「拥有」…
例如我有M4A1但是我目前可能是拿着小刀、手榴弹这类其他武器…
get_pdata_cbase(id, 373, 5) 则是判断玩家「持着」…
get_user_weapon(id) 是判断玩家的武器ID…
get_pdata_cbase(id, 373, 5) 就是判断玩家目前手上持有的武器
物件ID…
不过用到武器物件ID的话通常还是要用 pev_valid(weap_ent) 或是 is_valid_ent(weap_ent) 来过滤…
不然CS多开几次你会看到你的 cstrike\addons\amxmodx\logs 里面一堆 error …