[Scriptfehler?]Fraktionskasse überprüfen

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
  • Mein Problem ist:
    Wenn ich überprüfe, ob in der Fraktionskasse genügend Geld ist, ist nie genug drinne. Obwohl es auf 100000 gesetzt ist.


    Hier der Ladecode
    if(dini_Int(DiniDatei,"Frakkasse") - 2000 < 0) return SendClientMessage(playerid,0xFF0000FF,"Es befindet sich nicht genug Geld in der Fraktionskasse!"); // Abfrage
    dini_IntSet(DiniDatei,"Frakkasse",dini_Int(DiniDatei,"Frakkasse") - 2000); // Abziehen


    Es ist so in Dini abgespeichert:
    Frakkasse=100000

  • Okay ... mhhh


    if(dini_GetInt(DiniDatei,"Frakkasse")>=2000)


    {
    dini_IntSet(DiniDatei,"Frakkasse",dini_GetInt(DiniDatei,"Frakkasse")-2000); // Abziehen


    }
    else
    {
    return SendClientMessage(playerid,0xFF0000FF,"Es befindet sich nicht genug Geld in der Fraktionskasse!");
    }


    dini_GetInt wars :D




    sry bin ganz wushisch last edit :D :thumbup:

  • Die lösung :D (NICHT INS SCRIPT EINFUGEN) ;D
    stock dini_Get(filename[],key[]) {
    new File:fohnd;
    new tmpres[MAX_STRING];
    new tmpres2[MAX_STRING];
    tmpres[0]=0;
    fohnd=fopen(filename,io_read);
    if (!fohnd) return tmpres;
    while (fread(fohnd,tmpres)) {
    StripNewLine(tmpres);
    if (equal(dini_PRIVATE_ExtractKey(tmpres),key,true)) {
    /* We've got what we need */
    tmpres2[0]=0;
    strcat(tmpres2,dini_PRIVATE_ExtractValue(tmpres));
    fclose(fohnd);
    return tmpres2;
    }
    }
    fclose(fohnd);
    return tmpres;
    }



    (Das aber schon :P)


    if(dini_Get(DiniDatei,"Frakkasse")>=2000)


    {
    dini_IntSet(DiniDatei,"Frakkasse",dini_Get(DiniDatei,"Frakkasse")-2000); // Abziehen


    }
    else
    {
    return SendClientMessage(playerid,0xFF0000FF,"Es befindet sich nicht genug Geld in der Fraktionskasse!");
    }

  • Folgende Errors (Wegen dini_Get)


    C:\Users\Momo\Desktop\Grand Theft Auto San Andreas\SAMP\Server 1\gamemodes\MomoGrimm.pwn(2475) : error 033: array must be indexed (variable "dini_Get")
    C:\Users\Momo\Desktop\Grand Theft Auto San Andreas\SAMP\Server 1\gamemodes\MomoGrimm.pwn(2478) : error 033: array must be indexed (variable "dini_Get")

  • haste das mit ins script eingefügt?


    stock dini_Get(filename[],key[]) {
    new File:fohnd;
    new tmpres[MAX_STRING];
    new tmpres2[MAX_STRING];
    tmpres[0]=0;
    fohnd=fopen(filename,io_read);
    if (!fohnd) return tmpres;
    while (fread(fohnd,tmpres)) {
    StripNewLine(tmpres);
    if (equal(dini_PRIVATE_ExtractKey(tmpres),key,true)) {
    /* We've got what we need */
    tmpres2[0]=0;
    strcat(tmpres2,dini_PRIVATE_ExtractValue(tmpres));
    fclose(fohnd);
    return tmpres2;
    }
    }
    fclose(fohnd);
    return tmpres;
    }

  • Ne, aber es klappt.
    Es kam der bekannte Dini-Bug:
    Immer in der ersten Zeile wird der Erste Buchstabe zum ÿ.
    Damit war die Speicherung ÿFrakkasse=100000 und nicht mehr Frakkasse=100000


    Deswegen konnte nichts ausgelesen werden, und der Wert der Fraktionskasse war immer 0.


    Aber trotzdem an alle ein großes Danke!!


    Mfg:
    MomoGrimm || Momo