下面是引用 11922911 於 2013-06-30 14:00 發表的 :
這篇討論的瞄準對象亦不是人質
當你把對象換成其他物體就會出現問題
測試完了…
你那程式碼應該是比較方便的了…
剛剛找了篇相關的文章:
http://forums.alliedmods.net...php?t=206455會出問題的原因在 m_SbarString0 這東西…
後來就這樣改:
複製程式
stock set_pdata_char(ent, charbased_offset, value, intbase_linuxdiff = 5)
{
value &= 0xFF;
new int_offset_value = get_pdata_int(ent, charbased_offset / 4, intbase_linuxdiff);
new bit_decal = (charbased_offset % 4) * 8;
int_offset_value &= ~(0xFF<<bit_decal); // clear byte
int_offset_value |= value<<bit_decal;
set_pdata_int(ent, charbased_offset / 4, int_offset_value, intbase_linuxdiff);
return 1;
}
public client_PostThink(id)
{
static bool:get_target[33], enemy, body, classname[32]
get_user_aiming(id, enemy, body)
pev(enemy, pev_classname, classname, 31)
if(is_user_alive(id) && enemy && equal(classname, "nst_npc"))
{
message_begin(MSG_ONE,get_user_msgid("StatusText"),_,id)
write_byte(0)
write_string("Test!!!")
message_end()
set_pdata_char(id, 1804, 32, 5) // 指向敵人時的數值
get_target[id] = true
}
else
{
if(get_target[id])
{
message_begin(MSG_ONE,get_user_msgid("StatusText"),_,id)
write_byte(0)
write_string("")
message_end()
set_pdata_char(id, 1804, 32, 5) // 指向敵人時的數值
get_target[id] = false
}
}
}
原理就是讓系統以為我指到的物件是敵人…這樣瞄回隊友時會讓 StatusText 記得更新…
雖然成功了…不過我覺得為了一個物件用了<fakemeta>這麼做實在有夠蠢…||= =
話說…只是為了顯示物件的血量…用顯示在畫面中央的 TextMsg 也可以啊…
用了 StatusText 還有一堆問題…