下面是引用 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 …