Include SII speichert 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,
    Nachdem ich lange Zeit dini nutze und mit MySQL nicht gut klar komme wollte ich mal das
    Include SII von Slick nutzen.


    So jedoch speichert es bei mir nichts ab.
    Nach der Registration erstelle ich die Datei noch mittels dini_Create aber unter OnPlayerDisConnect wird
    nichts gespeichert.


    INI_Create(accFormat);
    if(INI_Open(accFormat))
    {
    INI_WriteString("Passwort",inputtext);
    INI_Save();
    INI_Close();
    }
    if(Player[playerid][eingeloggt] == 1)
    {
    if(INI_Open(accFormat))
    {
    INI_WriteInt("Kills",Player[playerid][Kills]);
    INI_WriteInt("Points",Player[playerid][Pkt]);
    INI_WriteInt("Deaths",Player[playerid][Deaths]);
    INI_WriteInt("Geld",GetPlayerMoney(playerid));
    INI_WriteInt("Score",GetPlayerScore(playerid));
    INI_WriteInt("Wantedlevel",Player[playerid][Wantedlevel]);
    INI_WriteInt("Admin",Player[playerid][Admin]);
    INI_WriteInt("Drugs",Player[playerid][Drugs]);
    INI_WriteInt("Spawn",Player[playerid][spawnc]);
    INI_WriteInt("WantedVariable",Player[playerid][WVar]);
    INI_WriteInt("HausVariable",Player[playerid][HVar]);
    INI_WriteInt("Shotgunskill",Player[playerid][Shotgun]);
    INI_WriteInt("SawnOff",Player[playerid][SawnOff]);
    INI_WriteInt("Spas12",Player[playerid][Spas12]);
    INI_WriteInt("Premium",Player[playerid][VIP]);
    INI_WriteInt("Bank",Player[playerid][Bank]);
    INI_WriteInt("Verwarnungen",Player[playerid][Warns]);
    INI_WriteInt("GPS",Player[playerid][GPS]);
    INI_WriteString("Rank",string_rank );
    INI_WriteInt("Knastzeit",knastzeit[playerid]);

    INI_Save();
    INI_Close();
    }
    }

  • Debuggen ...


    printf("Player[playerid][eingeloggt] %d",Player[playerid][eingeloggt]);
    if(Player[playerid][eingeloggt] == 1)
    {
    printf("INI_Open(%s)",accFormat);
    if(INI_Open(accFormat))
    {
    printf("Schreibe Daten...");
    INI_WriteInt("Kills",Player[playerid][Kills]);
    INI_WriteInt("Points",Player[playerid][Pkt]);
    INI_WriteInt("Deaths",Player[playerid][Deaths]);
    INI_WriteInt("Geld",GetPlayerMoney(playerid));
    INI_WriteInt("Score",GetPlayerScore(playerid));
    INI_WriteInt("Wantedlevel",Player[playerid][Wantedlevel]);
    INI_WriteInt("Admin",Player[playerid][Admin]);
    INI_WriteInt("Drugs",Player[playerid][Drugs]);
    INI_WriteInt("Spawn",Player[playerid][spawnc]);
    INI_WriteInt("WantedVariable",Player[playerid][WVar]);
    INI_WriteInt("HausVariable",Player[playerid][HVar]);
    INI_WriteInt("Shotgunskill",Player[playerid][Shotgun]);
    INI_WriteInt("SawnOff",Player[playerid][SawnOff]);
    INI_WriteInt("Spas12",Player[playerid][Spas12]);
    INI_WriteInt("Premium",Player[playerid][VIP]);
    INI_WriteInt("Bank",Player[playerid][Bank]);
    INI_WriteInt("Verwarnungen",Player[playerid][Warns]);
    INI_WriteInt("GPS",Player[playerid][GPS]);
    INI_WriteString("Rank",string_rank );
    INI_WriteInt("Knastzeit",knastzeit[playerid]);


    INI_Save();
    printf("Speichere Daten...");
    INI_Close();
    printf("Schließe Datei...");
    }
    }


    So ähnlich auch beim erstellen der Datei, falls die Datei überhaupt nicht erstellt wird im scriptfiles Ordner.

  • Hab's mal gemacht.
    DIe lezte Nachricht in der Konsole war diese:
    printf("INI_Open(%s)",accFormat);


    edit: d.h , dass if(INI_Open gar nicht ausgeführt wird :S


    lg

    Einmal editiert, zuletzt von Zcelo12 ()

  • Nein,dass heisst das die Abfrage immer falsch ist.Somit geht der Code nicht weiter und es wird nie gespeichert.


    Was wird denn
    printf("INI_Open(%s)",accFormat);
    ausgegeben?
    Denn es sieht ganz so aus, als würde entweder accFormat falsch sein oder du hast zuvor die Datei nicht geschlossen,weshalb SII keine neue Datei öffnen kann.
    Bist du denn sicher,dass accFormat beim erstellen und speichern gleich ist bzw die Datei auch wirklich existiert?


    Weil ich damals auch damit Probleme hatte, hier mal ein fix.
    stock INI_Open(const filename[])
    {
    if (!filename[0]) return false;
    if (gFile[E_OPEN])
    {
    if (!strcmp(gFile[E_FILENAME], filename, true)) {
    return true;
    }
    printf("filename = '%s' | old = '%s'",filename,gFile[E_FILENAME]);
    INI_Close(); // FIX
    // return false;
    }
    new File: h;
    h = fopen(filename, io_readwrite);
    if (h)
    {
    INI_strcpy(gFile[E_FILENAME], filename, INI_MAX_FILENAME, INI_MAX_FILENAME);
    new line[INI_MAX_LINE];
    new ln = -1;
    new separator;
    while (((ln + 1) < INI_MAX_LINES) && (fread(h, line)))
    {
    ln ++;
    StripNewLine(line);
    separator = strfind(line, "=", false);
    if ((line[0] == ';') || (line[0] == '=') || (separator == -1) || (separator > INI_MAX_KEY))
    {
    if (line[0] == ';')
    {
    INI_strcpy(gCache[ln][E_VALUE], line, INI_MAX_VALUE, INI_MAX_VALUE);
    }
    else
    {
    INI_strcpy(gCache[ln][E_VALUE][1], line, INI_MAX_VALUE, INI_MAX_VALUE);
    gCache[ln][E_VALUE][0] = ';';
    }
    continue;
    }
    INI_strcpy(gCache[ln][E_KEY], line, separator, INI_MAX_KEY);
    INI_strcpy(gCache[ln][E_VALUE], line[separator + 1], INI_MAX_VALUE, INI_MAX_VALUE);
    if (!gCache[ln][E_VALUE][0]) gCache[ln][E_VALUE][0] = ' ';
    }
    fclose(h);
    gFile[E_OPEN] = true;
    return 1;
    }
    return 0;
    }
    Sollte es daran liegen,dass du die Datei zuvor nicht richtig geschlossen hast, ist der fix aber keine optimale Lösung.Du solltest dann lieber herrausfinden wo du ursprünglich nicht schließt.

  • accFormat ist bei mir so:
    new accFormat[128];
    format(accFormat,sizeof accFormat,"acc/%s.ini",oPlayerName[playerid]);


    Werde mal gucken ob ich alle Dateien geschlossen habe und ansosten deinen Fix probieren.


    edit: Danke Goldkiller. Hatte 2x vergessen INI_Close(); zu nutzen. FUnktioniert nun alles! :thumbup:

    Einmal editiert, zuletzt von Zcelo12 ()