|
有关hook的疑问。
下面的代码把所有的武器杀人的消息都屏蔽了,如何改可以实现只屏蔽某个武器的杀人信息?
因为如果在Change_Death中设置一个变量来改变武器杀死人的信息标识,但是还没等这个值变化的时候,Block_Message已经执行了,下面的2个函数执行是同步的。
代码摘自fight club 1.0
[php]
register_event("DeathMsg", "Change_Death", "a","4&kni")
register_message(get_user_msgid("DeathMsg"),"Block_Message");
public Change_Death()
{
new Attacker = read_data(1)
new Victim = read_data(2)
new Headshot = read_data(3)
// new wpnname[6]
//read_data(6,wpnname,5)
if(Victim != Attacker)
{
message_begin(MSG_ALL, get_user_msgid("DeathMsg"))
write_byte(Attacker)
write_byte(Victim)
write_byte(Headshot)
write_string("fight")
message_end()
}
return PLUGIN_HANDLED
}
public Block_Message(msg_id,msg_dest,msg_entity)
{
if(msg_id == get_user_msgid("DeathMsg"))
{
return PLUGIN_HANDLED
}
return PLUGIN_CONTINUE
}
[/php] |
|