SII speichert 2 Sachen nicht!

Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • Hallo Leute.


    Ich habe jetzt ein echt großes Problem.


    Mein SII speichert kein Skin und kein Geld. Vorher hat er es in die User-Datei reingeschrieben aber jetzt nichtmehr.


    Garnichtmehr!
    Es hat erst wunderbar geklappt, aber jetzt irgendwie nichtmehr.


    Es schreibt alles mögliche in die PlayerDatei rein (Die Datei findet ihr unten (also die Einträge))


    Hier mein OnPlayerDisconnect
    public OnPlayerDisconnect(playerid, reason)
    {
    DestroyVehicle(startbmx[playerid]);
    printf("(GetPlayerSkin)actually skinid of %i (%s) is: %i", playerid, SpielerName(playerid), GetPlayerSkin(playerid));
    printf("(Variable)actually skinid of %i (%s) is: %i", playerid, SpielerName(playerid), Spieler[playerid][pSkin]);
    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", Spieler[playerid][pSkin]);
    INI_WriteInt("Tut", Spieler[playerid][pTut]);
    INI_WriteInt("Cash", Spieler[playerid][pCash]);
    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("WantedLevel", Spieler[playerid][pWantedLevel]);
    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;
    }


    Player-Datei:


    Vielen Dank im Vorraus! :)

  • Befürchte es liegt an der Größe das Caches. Da SII mit einem Cache System arbeitet,muss dieser entsprechend der Anzahl der Zeilen von Dateien angepasst werden ( Komischer Satz :\ )


    Öffne mal die sii.inc und suche nach INI_MAX_LINES.
    Meine in der Originaldatei war es früher auf 50 gestellt.Erhöhe die Zahl einfach auf 80.Dann solltest du genug Platz haben für Einträge ;).

  • Hmpf,komisch.
    Würde jetzt mal testweise den Account löschen und mal schauen ob dann alles gespeichert wird oder nicht. Probier das am Besten mal aus und poste den Inhalt der Userdatei.
    Änder auch mal folgendes ab:

    printf("Versuche zu speichern");
    if(gPlayerLogged[playerid] == 1 && INI_Exist(accFormat))
    {
    printf("LoggedIN && INI_Exist");
    if(INI_Open(accFormat))
    {
    printf("INI_Open");

    Wird alles korrekt über print in der Konsole / server_log ausgegeben?

  • So. Habe das mal durchgeführt, aber noch kurze Debug-Tests durchgeführt.


    public OnPlayerDisconnect(playerid, reason)
    {
    DestroyVehicle(startbmx[playerid]);
    printf("(GetPlayerSkin)actually skinid of %i (%s) is: %i", playerid, SpielerName(playerid), GetPlayerSkin(playerid));
    printf("(Variable)actually skinid of %i (%s) is: %i", playerid, SpielerName(playerid), Spieler[playerid][pSkin]);
    new accFormat[128]; format(accFormat, sizeof(accFormat), "/Accounts/%s.ini", SpielerName(playerid));
    printf("Versuche zu speichern");
    if(gPlayerLogged[playerid] == 1 && INI_Exist(accFormat))
    {
    printf("LoggedIN && INI_Exist");
    if(INI_Open(accFormat))
    {
    printf("INI_Open");
    INI_WriteInt("Admin", Spieler[playerid][pAdmin]);printf("Save Int: Admin (%d)", Spieler[playerid][pAdmin]);
    INI_WriteInt("Level", Spieler[playerid][pLevel]);printf("Save Int: Level (%d)", Spieler[playerid][pAdmin]);
    INI_WriteInt("Skin", Spieler[playerid][pSkin]);printf("Save Int: Skin (%d)", Spieler[playerid][pSkin]);
    INI_WriteInt("Tut", Spieler[playerid][pTut]);
    INI_WriteInt("Cash", Spieler[playerid][pCash]);printf("Save Int: Cash (%d)", Spieler[playerid][pCash]);


    Wie man sehen kann habe ich hinter den WriteInt Funktionen ein printf gemacht. Und es hat auch geklappt.
    Aber der Skin wird wie gesagt nicht gesaved.


    Code
    [18:21:31] Versuche zu speichern
    [18:21:31] LoggedIN && INI_Exist
    [18:21:31] INI_Open
    [18:21:31] Save Int: Admin (0)
    [18:21:31] Save Int: Level (0)
    [18:21:31] Save Int: Skin (0)
    [18:21:31] Save Int: Cash (0)
    [18:21:43]



    hmm. :/


    //edit


    Hmm es geht jetzt komischerweise. Naja danke vielmals. ;)