Dans le code que tu nous montre, tu as deux systèmes de sauvegarde.
public OnPlayerDisconnect(playerid, reason)
{
new INI:File = INI_Open(UserPath(playerid));
INI_SetTag(File,"data");
INI_WriteInt(File,"Cash",GetPlayerMoney(playerid));
INI_WriteInt(File,"Admin",PlayerInfo[playerid][pAdmin]);
INI_WriteInt(File,"Kills",PlayerInfo[playerid][pKills]);
INI_WriteInt(File,"Deaths",PlayerInfo[playerid][pDeaths]);
INI_Close(File);
gJob[playerid] = 0;
PlayerInfo[playerid][pAdmin] = 0;
checkpoint = 0;
SaveAccount(playerid);
return 1;
}
public SaveAccount(playerid)
{
if(IsPlayerConnected(playerid))
{
new string3[32];
//new valeur[32];
new playername3[MAX_PLAYER_NAME];
GetPlayerName(playerid, playername3, sizeof(playername3));
format(string3, sizeof(string3), "Users/%s.ini", playername3);
new File: hFile = fopen(string3, io_write);
if (hFile)
{
new var[32];
format(var, 32, "Mdp=%s\n", PlayerInfo[playerid][pMdp]);fwrite(hFile, var);
format(var, 32, "Argent=%d\n",PlayerInfo[playerid][pArgent]);fwrite(hFile, var);
format(var, 30, "Admin=%d\n",PlayerInfo[playerid][pAdmin]);fwrite(hFile, var);
format(var, 30, "Meurtres=%d\n",PlayerInfo[playerid][pKills]);fwrite(hFile, var);
format(var, 30, "Morts=%d\n",PlayerInfo[playerid][pDeaths]);fwrite(hFile, var);
fclose(hFile);
//SpawnPlayer(playerid);
}
}
return 1;
}
Donc, évidement, comme tu sauvegarde deux fois de deux façons différentes et entre ces deux sauvegarde, tu retire le rang administrateur du joueur, au final, le joueur est systématiquement un membre.
Donc, déjà, sauvegardé deux fois, c'est inutile, et de deux manières différentes, encore plus !