Sziasztok! Egy banrendszeren dolgozom és az unbannál tartok viszont elakadtam. Kezdem érteni már úgy valamennyire a Y_INI-t de a betöltéssel gondjaim vannak. Próbáltam rengeteg tutorialt értelmezni stb.. de valahogy angolul nem nagyon jön át, hogy mi micsoda.
A lényeg, hogy az unban paranccsal lehessen a játékost unbannolni az adatbázisból. (pl. /unban <Nagy_Attila>) és akkor az adatbázisból kikeresi, átírja a Bannolva integert 0-ra, és így fel tud jönni.
Ez eddig jó, a probléma ott kezdődik, hogy ugye van adminrendszerem, és nem szeretném azt, hogy az alacsonyabb szintű adminok bárkit feloldhassanak, azt szeretném hogy csak azokat oldhassák fel akiket ők kitiltottak. Lementettem minden bannolásnál egy banadmint (melyik admin bannolta ki), és szeretném behívni azt a stringet az ini fájlból amit beírt. Nem vagyok teljesen tisztában a ParseFile-val és a INI_Load-al pontosan, valaki elmagyarázná kérem szépen?
Nagyon megköszönném és irtó nagy segítség lenne!
Itt a kód (még unbannolás természetesen nincs, mert idáig jutottam el, most csak a lényeg, hogy a betöltés meg legyen):
CMD:unban(playerid, params[])
{
if(pInfo[playerid][pAdmin] >= 2)
{
new string[200], target[MAX_PLAYER_NAME], nev[MAX_PLAYER_NAME], filestr[64], targetdata[MAX_PLAYER_NAME];
GetPlayerName(playerid, nev, sizeof(nev));
if(sscanf(params,"s[MAX_PLAYER_NAME]", target)) return SCM(playerid, -1,"Használata: /unban <Bannolt játékos neve>");
format(filestr, sizeof(filestr),"/users/%s.ini",target);
if(!fexist(filestr)) return SCM(playerid, -1,"{b3b3b3}Ilyen nevű játékos nem található az adatbázisban!");
if(pInfo[playerid][pAdmin] == 2)
{
INI_String("BanAdmin", targetdata, MAX_PLAYER_NAME); //ez lenne a lényeg itt, hogy lehetne ezt úgy megoldani, hogy ne legyen hibás?
if(strcmp(nev, targetdata)) return SCM(playerid, -1,"Ezt a játékost nem te bannoltad, nem oldhatod fel!");
}
}
else { SCM(playerid, -1,"Nincs jogosultságod a parancs használatához!"); }
return 1;
}