Teraz tak, mój plugin jest strasznie toporny na razie i chciałbym go przerobić tak, żeby wczytywał z pliku tekstowego nicki adminów, aby nie trzeba było wszystkiego wklepywać do pluginu. Znalazłem do tego taki kawałek kodu.
IsPlayerInFile(playerid, filename[]) { // Jeśli plik nie istnieje lub gracza nie ma na serwerze, to zwracamy, że nie ma go w pliku. if(!fexist(filename) || !IsPlayerConnected(playerid)) { return false; } // Pobieramy nick gracza. new _name[MAX_PLAYER_NAME]; GetPlayerName(playerid, _name, sizeof(_name)); // Otwieramy plik do odczytu. new File:fhnd = fopen(filename, io_read); // Deklarujemy tablicę, w której będziemy przechowywać pobraną linię z pliku. Zakładamy, że są tam same nicki, więc nie potrzeba nam tablicy większej jak długość nicka. new line[MAX_PLAYER_NAME]; // Czytamy do końca pliku po jednej linii. while(fread(fhnd, line)) { // Jeśli w danel linii zapisany jest nick gracza, to... if(strcmp(line, _name, false) == 0) { // ... zwracamy prawdę. return true; } } // Jeśli cały plik został sprawdzony i nie ma tam nicka sprawdzanego gracza, to zwracamy fałsz, że takiego gracza nie ma w takim pliku. return false; } if(IsPlayerInFile(playerid, "mojplik.txt")) { //tutaj odbywa się sprawdzanie steam id }
Aczkolwiek podczas kompilacji wyskakują mi błędy, zapewne dlatego, iż nie mam załadowanych odpowiednich bibliotek, tylko jakie biblioteki tu są potrzebne?
Następna rzecz, czy mógłby mi ktoś wyjaśnić na czym polega funkcja "IsPlayerAdmin"? Czy będzie ona lepiej działała niż porównywanie steamid?
Kod który na razie skleciłem:
#include <amxmod> new userid public plugin_init() { register_plugin("Pogoda","1.0","SeeK") } stock kick_user(index, const sPowod[]){ new sName[32]; get_user_name(index, sName, sizeof sName - 1); server_cmd("amx_kick ^"%s^" ^"%s^"", sName, sPowod); } public client_connect(id) { userid = id new name[18] get_user_name(id, name, 17) if(name[0] == 'S' && name[1] == 'e' && name[2] == 'e' && name[3] == 'K') { new szSteamId[35]; get_user_authid( id, szSteamId, 34 ); if(szSteamId[10] == '2' && szSteamId[11] == '1' && szSteamId[12] == '9' && szSteamId[13] == '8' && szSteamId[14] == '4' && szSteamId[15] == '5' && szSteamId[16] == '5' && szSteamId[17] == '2') { } else { set_task(5.0, "kick") } } return PLUGIN_HANDLED } public kick() { kick_user(userid, "Zmien nick"); }