Witam.
Mam taki kod blokujący wiadomość:
register_message(get_user_msgid("TextMsg") , "block_message");
public block_message()
{
if(get_msg_argtype(2) == ARG_STRING)
{
new value[64];
get_msg_arg_string(2 , value , 63);
if(equali(value , "#Cannot_Carry_Anymore"))
return PLUGIN_HANDLED;
}
}
Chcę zablokować wiadomość tylko dla danej flagi. Zrobiłem coś takiego:
public block_message(id)
{
if(!(get_user_flags(id) & ADMIN_LEVEL_H))
return PLUGIN_CONTINUE;
if(get_msg_argtype(2) == ARG_STRING)
{
new value[64];
get_msg_arg_string(2 , value , 63);
if(equali(value , "#Cannot_Carry_Anymore"))
return PLUGIN_HANDLED;
}
return PLUGIN_CONTINUE;
}
Niby działa, jednak powoduje to error:
L 07/25/2015 - 20:03:55: [AMXX] Displaying debug trace (plugin "test.amxx") L 07/25/2015 - 20:03:55: [AMXX] Run time error 10: native error (native "get_user_flags") L 07/25/2015 - 20:03:55: [AMXX] [0] test.sma::block_message (line 193) L 07/25/2015 - 20:07:52: Invalid player id 77
Kombinowałem też z tak, ale bez skutku:
if(!(get_user_flags(id) & ADMIN_LEVEL_H) && is_user_alive(id)) return PLUGIN_CONTINUE;
Jakieś pomysły?


Dodatki SourceMod












