下面是引用 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 还有一堆问题…