Hallo Leute. Ich habe ein kleines Problem mit der SII Speicherung.
Hier mein Speicherungsabschnitt:
public OnPlayerDisconnect(playerid, reason)
{
DestroyVehicle(startbmx[playerid]);
new accFormat[128]; format(accFormat, sizeof(accFormat), "/Accounts/%s.ini", SpielerName(playerid));
if(gPlayerLogged[playerid] == 1 && INI_Exist(accFormat))
{
if(INI_Open(accFormat))
{
INI_WriteInt("Admin", Spieler[playerid][pAdmin]);
INI_WriteInt("Level", Spieler[playerid][pLevel]);
INI_WriteInt("Skin", GetPlayerSkin(playerid));// <-- Skin ..
INI_WriteInt("Tut", Spieler[playerid][pTut]);
INI_WriteInt("Cash", GetPlayerMoney(playerid));
INI_WriteInt("Bank", Spieler[playerid][pBank]);
INI_WriteInt("Fraktion", Spieler[playerid][pFraktion]);
INI_WriteInt("Rank", Spieler[playerid][pRank]);
INI_WriteInt("Sex", Spieler[playerid][pSex]);
INI_WriteInt("MuteTime", Spieler[playerid][pMuteTime]);
INI_WriteInt("Exp", Spieler[playerid][pExp]);
INI_WriteInt("MaxExp", Spieler[playerid][pMaxExp]);
INI_WriteInt("Crimes", Spieler[playerid][pCrimes]);
INI_WriteInt("Kills", Spieler[playerid][pKills]);
INI_WriteInt("Deaths", Spieler[playerid][pDeaths]);
INI_WriteInt("Arrested", Spieler[playerid][pArrested]);
INI_WriteInt("WantedDeaths", Spieler[playerid][pWantedDeaths]);
INI_WriteInt("PhoneBook", Spieler[playerid][pPhoneBook]);
INI_WriteInt("LottoNr", Spieler[playerid][pLottoNr]);
INI_WriteInt("Job", Spieler[playerid][pJob]);
INI_WriteInt("PayCheck", Spieler[playerid][pPayCheck]);
INI_WriteInt("PayDayTime", Spieler[playerid][pPayDayTime]);
INI_WriteInt("Jailed", Spieler[playerid][pJailed]);
INI_WriteInt("JailTime", Spieler[playerid][pJailTime]);
INI_WriteInt("Mats", Spieler[playerid][pMats]);
INI_WriteInt("Drugs", Spieler[playerid][pDrugs]);
INI_WriteInt("Quitjob", Spieler[playerid][pQuitjob]);
INI_WriteInt("SexSkill", Spieler[playerid][pSexSkill]);
INI_WriteInt("MechSkill", Spieler[playerid][pMechSkill]);
INI_WriteInt("ZollPass", Spieler[playerid][pZollPass]);
INI_WriteInt("NewsSkill", Spieler[playerid][pNewsSkill]);
INI_WriteInt("DrugsSkill", Spieler[playerid][pDrugsSkill]);
INI_WriteFloat("SHealth", Spieler[playerid][pSHealth]);
INI_WriteInt("Number", Spieler[playerid][pNumber]);
INI_WriteInt("HouseKey", Spieler[playerid][pHouseKey]);
INI_WriteInt("BizKey", Spieler[playerid][pBizKey]);
INI_WriteInt("CarLic", Spieler[playerid][pCarLic]);
INI_WriteInt("FlyLic", Spieler[playerid][pFlyLic]);
INI_WriteInt("BoatLic", Spieler[playerid][pBoatLic]);
INI_WriteInt("GunLic", Spieler[playerid][pGunLic]);
INI_WriteInt("MotoLic", Spieler[playerid][pMotoLic]);
INI_WriteInt("Warns", Spieler[playerid][pWarns]);
INI_WriteInt("Spielzeit", Spieler[playerid][pSpielzeit]);
INI_WriteInt("Perso", Spieler[playerid][pPerso]);
INI_WriteInt("HandyGeld", Spieler[playerid][pHandyGeld]);
INI_WriteInt("HandyVertrag", Spieler[playerid][pHandyVertrag]);
INI_WriteInt("SafeMats", Spieler[playerid][pSafeMats]);
INI_WriteInt("SafeDrugs", Spieler[playerid][pSafeDrugs]);
INI_WriteInt("Dead", Spieler[playerid][pDead]);
INI_Save();
INI_Close();
}
}
return 1;
}
Das Problem, der Skin wird nicht abgespeichert und bleibt bei 0.
Kann jemand helfen? (Skin Variable ist markiert)
Der Spieler kriegt auch nen neuen skin aber es bleibt 0 in der player datei.
Vielen Dank im vorraus.
//e hier noch die Daten wo's geladen werden:
if(dialogid==DIALOG_LOGIN)
{
if(response)
{
if(strlen(inputtext) < 6)
{
ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "GTA City", "{FFFFFF}Willkommen auf GTA City\n \nDein Account wurde in der Datenbank gefunden.\nGib dein Passwort niemals weiter. Auch nicht an Admins oder Supporter!\nDu kannst dich nun Einloggen. Bitte gib dein Passwort ein:", "OK", "");
return 1;
}
if(INI_Open(accFormat))
{
new tmppass[64];
if(INI_ReadString(tmppass, "Passwort", sizeof(tmppass)))
//if(strcmp(inputtext, tmppass, true) == 0)
{
printf("tmppass: %s", tmppass);
if(!strcmp(tmppass, inputtext, false))
{
Spieler[playerid][pAdmin] = INI_ReadInt("Admin");
Spieler[playerid][pLevel] = INI_ReadInt("Level");
Spieler[playerid][pSkin] = INI_ReadInt("Skin");
Spieler[playerid][pTut] = INI_ReadInt("Tut");
Spieler[playerid][pFraktion] = INI_ReadInt("Fraktion");
Spieler[playerid][pRank] = INI_ReadInt("Rank");
Spieler[playerid][pSex] = INI_ReadInt("Sex");
Spieler[playerid][pMuteTime] = INI_ReadInt("MuteTime");
Spieler[playerid][pExp] = INI_ReadInt("Exp");
Spieler[playerid][pMaxExp] = INI_ReadInt("MaxExp");
Spieler[playerid][pCrimes] = INI_ReadInt("Crimes");
Spieler[playerid][pKills] = INI_ReadInt("Kills");
Spieler[playerid][pDeaths] = INI_ReadInt("Deaths");
Spieler[playerid][pArrested] = INI_ReadInt("Arrested");
Spieler[playerid][pWantedDeaths] = INI_ReadInt("WantedDeaths");
Spieler[playerid][pPhoneBook] = INI_ReadInt("PhoneBook");
Spieler[playerid][pLottoNr] = INI_ReadInt("LottoNr");
Spieler[playerid][pJob] = INI_ReadInt("Job");
Spieler[playerid][pPayCheck] = INI_ReadInt("PayCheck");
Spieler[playerid][pPayDayTime] = INI_ReadInt("PayDayTime");
Spieler[playerid][pJailed] = INI_ReadInt("Jailed");
Spieler[playerid][pJailTime] = INI_ReadInt("JailTime");
Spieler[playerid][pMats] = INI_ReadInt("Mats");
Spieler[playerid][pDrugs] = INI_ReadInt("Drugs");
Spieler[playerid][pQuitjob] = INI_ReadInt("Quitjob");
Spieler[playerid][pSexSkill] = INI_ReadInt("SexSkill");
Spieler[playerid][pMechSkill] = INI_ReadInt("MechSkill");
Spieler[playerid][pZollPass] = INI_ReadInt("ZollPass");
Spieler[playerid][pNewsSkill] = INI_ReadInt("NewsSkill");
Spieler[playerid][pDrugsSkill] = INI_ReadInt("DrugsSkill");
Spieler[playerid][pSHealth] = INI_ReadFloat("SHealth");
Spieler[playerid][pNumber] = INI_ReadInt("Number");
Spieler[playerid][pHouseKey] = INI_ReadInt("HouseKey");
Spieler[playerid][pBizKey] = INI_ReadInt("BizKey");
Spieler[playerid][pCarLic] = INI_ReadInt("CarLic");
Spieler[playerid][pFlyLic] = INI_ReadInt("FlyLic");
Spieler[playerid][pBoatLic] = INI_ReadInt("BoatLic");
Spieler[playerid][pGunLic] = INI_ReadInt("GunLic");
Spieler[playerid][pMotoLic] = INI_ReadInt("MotoLic");
Spieler[playerid][pWarns] = INI_ReadInt("Warns");
Spieler[playerid][pSpielzeit] = INI_ReadInt("Spielzeit");
Spieler[playerid][pPerso] = INI_ReadInt("Perso");
Spieler[playerid][pHandyGeld] = INI_ReadInt("HandyGeld");
Spieler[playerid][pHandyVertrag] = INI_ReadInt("HandyVertrag");
Spieler[playerid][pSafeMats] = INI_ReadInt("SafeMats");
Spieler[playerid][pSafeDrugs] = INI_ReadInt("SafeDrugs");
Spieler[playerid][pDead] = INI_ReadInt("Dead");
printf("Housekey[Test]: %i", Spieler[playerid][pHouseKey]);
new IP[16];
GetPlayerIp(playerid, IP, sizeof(IP));
printf("Player Logged in. ID: %i Name: %s IP: %s", playerid, SpielerName(playerid), IP);
gPlayerLogged[playerid] = 1;
gPlayerChooseSkinFemale[playerid] = 0;
gPlayerChooseSkinMale[playerid] = 0;
SpawnPlayer(playerid);
return 1;
}
else
{
ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "GTA City", "Das Passwort ist falsch!\n \n{FFFFFF}Dein Account wurde in der Datenbank gefunden.\nGib dein Passwort niemals weiter. Auch nicht an Admins oder Supporter!\nDu kannst dich nun Einloggen. Bitte gib dein Passwort ein:", "OK", "");
return 1;
}
}
ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "GTA City", "Das Passwort ist falsch!\n \n{FFFFFF}Dein Account wurde in der Datenbank gefunden.\nGib dein Passwort niemals weiter. Auch nicht an Admins oder Supporter!\nDu kannst dich nun Einloggen. Bitte gib dein Passwort ein:", "OK", "");
}
}
if(!response)
{
Kick(playerid);
return 1;
}
}
//edit2
Ich habe gesehen, dass es beim Disconnecten immer dort hackt, wo funktionen wie "GetPlayerSkin" und "GetPlayerMoney" haken. (<- da vertan normal "haken" = "ausgeführt werden" ... )
Hat jemand eine Lösung?
(Geld = 0, Skin = 0) beides mit den funktionen abgefragt beim disconnect.
//edit 3 hab mich mit etwas bei edit 2 vertan