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?