Ein Problem mit dini..

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 liebe Community,
    Ich habe ein kleines Problem, beim erstellen von Racecheckpoints.
    Ich hab sehr lange nicht mehr gescriptet und hab jetzt mal versucht mich zum ersten mal an ein Race system zu setzten.
    Ich kann mir nicht erklären wo der Fehler liegen könnte und wieso das überhaupt nicht funktioniert..
    mein Code zum speichern von Racecheckpoints:
    if(newkeys == KEY_FIRE && pInfo[playerid][inBM]==3) {
    new CPX[64], CPY[64], CPZ[64],string[256];
    new Float:pX, Float:pY, Float:pZ;
    GetVehiclePos(cCar[playerid], pX, pY, pZ);
    format(CPX, sizeof(CPX),"CPX%d", BMCP[playerid]);
    format(CPY, sizeof(CPY),"CPY%d", BMCP[playerid]);
    format(CPZ, sizeof(CPZ),"CPZ%d", BMCP[playerid]);
    dini_FloatSet(pInfo[playerid][bRacename], CPX,pX);
    dini_FloatSet(pInfo[playerid][bRacename], CPY,pY);
    dini_FloatSet(pInfo[playerid][bRacename], CPZ,pZ);
    format(string,sizeof(string),"[Buildmode] Der "_red"CP #%d "_msg"wurde gesetzt. Für das nächste CP, bitte Maustaste klicken.",BMCP[playerid]);
    SendClientMessage(playerid, MSG,string);
    BMCP[playerid]++; }



    So an sich funktioniert das ganze, aber ich zeig euch mal wie die .ini datei aussieht.


    "CPX11=1737.645629
    CPY11=1638.150512
    CPZ11=8.963583


    CPX12=1538.276855
    CPY12=1607.076660
    CPZ12=10.524776


    CPX13=1425.489013
    CPZ13=10.526561


    CPX14=1376.775024
    CPY14=1393.381713


    CPX15=1469.130737


    CPX16=1497.761230
    CPY16=1121.891967
    CPZ16=24.322010
    cpAnzahl=16"



    Man beachte CP 13 bis CP 15..
    Alle vorherigen CPs (0-12) funktionieren hervorragend.


    Hier ein anderes Rennen...
    "CPX13=2213.405029
    CPY13=2610.084960
    CPZ13=6.490880


    CPX14=1967.792114


    CPX15=1785.658325
    CPZ15=6.168214


    CPX16=1789.464843
    CPY16=2198.604003
    CPZ16=3.913159"


    Da fehlen einfach mal die Y oder Z Koordinaten..


    Ich hoffe mir kann da jemand weiterhelfen :/

  • Willkommen auf Breadfish!


    Den Fehler kann ich dir nicht erklären, das sieht alles korrekt aus. Du kannst es aber mal so schreiben, das dürfte klappen:
    if(newkeys == KEY_FIRE && pInfo[playerid][inBM]==3)
    {
    new string[145];
    new Float:pX, Float:pY, Float:pZ;
    GetVehiclePos(cCar[playerid], pX, pY, pZ);
    new File:wFile = fopen(pInfo[playerid][bRacename], io_append);
    format(string, sizeof(string),"CPX%d=%f\r\n", BMCP[playerid],pX);
    fwrite(wFile, string);
    format(string, sizeof(string),"CPY%d=%f\r\n", BMCP[playerid],pY);
    fwrite(wFile, string);
    format(string, sizeof(string),"CPZ%d=%f\r\n", BMCP[playerid],pZ);
    fwrite(wFile, string);
    fclose(wFile);
    format(string,sizeof(string),"[Buildmode] Der "_red"CP #%d "_msg"wurde gesetzt. Für das nächste CP, bitte Maustaste klicken.",BMCP[playerid]);
    SendClientMessage(playerid, MSG,string);
    BMCP[playerid]++;
    }
    Sofern hier der Pfad drin steht, wovon ich ausgehe: pInfo[playerid][bRacename]

  • Danke für die schnelle Antwort.. mit deiner Lösung hab ich dato keine Probleme gehabt :D


    Ich frag mich jedoch immer noch, wo das Problem mit dini liegt.
    Anfangs hab ich gedacht, das könnte daran liegen, dass ich die CPs beim schnellen Fahren gesetzt habe.
    Dass das System, wieso auch immer, nicht mitkommt, aber daran lags auch nicht. Ich bin bei jedem CP stehen geblieben und hab so den Punkt gesetzt.. Aber das Problem bleibt weiterhin bestehen. Einige Dateien sind komplett Fehlerfrei und andere haben dann 3-4 Fehler auf einmal.


    PS: Ja in pInfo[playerid][bRacename] ist der Dateipfad enthalten. Das wird beim benutzen des Befehls "/buildmode" automatisch gesetzt.
    MfG

  • Ok, super!


    Ich schätze, dass es einfach ein Problem ist, dass die Datei drei mal hintereinander geöffnet, beschrieben und wieder geschlossen wird. Möglicherweise gerät da etwas durcheinander und somit verloren.
    Das wäre die einzige, für mich logische Erklärung, warum es nur manchmal vorkommt.