Mam 2 pluginy:
1. adminchat
2. własny plugin od zarządzania wiadomościami
Adminchat ma za zadanie wysłać za pomocą natywu ID gracza co użył adminchata oraz wiadomość. Problemów w wiadomością nie mam, ale źle przekazuje ID. Wstawiałem sobie w obu pluginach funkcję od wychwytywania jakie ID jest wysyłane i jakie odbierane. Wyniki:
- w adminchat wysyła 1 (poprawnie)
- w drugim pluginie odbiera 11 (zła wartość)
Czy może macie jakieś pomysły co to wywołuje? Jak to rozwiązać? Nie wchodzi w grę opcja id=id-10
Kod z adminchata:
native przechwyc_tekst(id, wiadomosc[]) public cmdSayAdmin(id) { new said[2]; read_argv(1, said, 1); if(said[0] != '@') return PLUGIN_CONTINUE; new message[192], name[32], authid[32], userid; new players[32], inum; read_args(message, 191); remove_quotes(message); get_user_authid(id, authid, 31); get_user_name(id, name, 31); userid = get_user_userid(id); log_amx("Chat: ^"%s<%d><%s><>^" chat ^"%s^"", name, userid, authid, message[1]); log_message("^"%s<%d><%s><>^" triggered ^"amx_chat^" (text ^"%s^")", name, userid, authid, message[1]); if(is_user_admin(id)) { ColorChat(id, GREEN, "(%s) %s : %s", "ADMIN", name, message[1]); } else { ColorChat(id, GREEN, "(%s) %s : %s", "GRACZ", name, message[1]); } get_players(players, inum); for(new i=0; i<inum; ++i) { if(players[i] != id && get_user_flags(players[i]) & g_AdminChatFlag) { ColorChat(players[i], GREEN, "(%s) %s : %s", is_user_admin(id) ? "ADMIN" : "GRACZ", name, message[1]); #if defined SOUND client_cmd(players[i],"mp3 play sound/beep-07.mp3"); #endif } } przechwyc_tekst(id, message) return PLUGIN_HANDLED; }
kod natywu w drugim pluginie:
public plugin_natives() { register_native("przechwyc_tekst", "przechwytywanie"); } public przechwytywanie(id, wiadomosc[]) { if(!plugin_wlaczony) return 0; if(typ != 1) return 0; new wiad[150] get_string(2, wiad, 149) //log_to_file("addons/amxmodx/logs/testy.txt", "PRZECHWYCILEM: %s, ID: %i", wiad, id); if(containi(wiad, od_przechwytywania[wybrane_pytanie][0]) != -1 ) { new nod[4], nock[40] get_user_name(id, nock, 39) num_to_str(id_drzewka, nod, 3) TrieSetString(nicki,nod,nock) TrieSetString(odpowiedzi,nod,wiad) id_drzewka++ return 0 } return 0 }