Abfragen ob der Spieler den Gesamtwert von 10.000 hat

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
  • Hey Leute,


    ich habe folgenden Befehl gemacht:


    if(dialogid == DIALOG_SMAT)
    {
    if(response == 0)
    {
    SCM(playerid,ROT,"Abgebrochen");
    return 1;
    }
    if(response == 1)
    {
    new anzahl = strval(inputtext);
    if(anzahl >= 1 && anzahl <= 10000)
    {
    new geld = pInfo[playerid][pGeld];
    new kosten = 9 * anzahl;
    if(geld >= kosten)
    {
    if((pInv[playerid][Mats] + anzahl) <= 10000)
    {
    GiveMoney(playerid,-kosten);
    pInv[playerid][Mats] = pInv[playerid][Mats]+anzahl;
    SendClientMessagef(playerid,COLOR_YELLOW,"Du hast dir %i Mats für %i$ gekauft!",anzahl,kosten);
    return 1;
    }
    SCM(playerid,ROT,"Du kannst maximal 10.000 Mats tragen!");
    return 1;
    }
    SCM(playerid,ROT,"Du hast nicht genügend Bargeld dabei!");
    return 1;
    }
    SCM(playerid,ROT,"Der Wert muss zwischen 1 und 10.000 Mats liegen");
    return 1;
    }
    }


    Ich will also, dass der Spieler höchst. 10.000 Mats besitzen kann.


    Ist die Abfrage so richtig?


    Es hat teils nicht funktioniert :o

  • Der Code ist korrekt, die if Abfrage auch.


    Wenn du dir wirklich sicher bist, dass der Fehler durch diesen Code verursacht wird, kannst du ihn ja mal debuggen, und dir die Werte der einzelnen Variablen ausgeben lassen.
    Ich würde aber eher auf einen anderen Code tippen, der den Fehler beinhaltet.


    Falls du nicht weißt wie man debuggt: [ SCRIPTING ] Debugnachrichten

  • if(dialogid == DIALOG_SMAT)
    {
    if(response == 0)return SCM(playerid,ROT,"Abgebrochen");
    if(response == 1)
    {
    new anzahl = strval(inputtext),
    geld = pInfo[playerid][pGeld],
    kosten = 9 * anzahl;
    if(anzahl >= 1 && anzahl <= 10000)
    {
    if(geld < kosten)return SCM(playerid,ROT,"Du kannst maximal 10.000 Mats tragen!");
    if((pInv[playerid][Mats] + anzahl) > 10000)return SCM(playerid,ROT,"Du kannst maximal 10.000 Mats tragen!");
    GiveMoney(playerid,-kosten);
    pInv[playerid][Mats] = pInv[playerid][Mats]+anzahl;
    SendClientMessagef(playerid,COLOR_YELLOW,"Du hast dir %i Mats für %i$ gekauft!",anzahl,kosten);
    }
    SCM(playerid,ROT,"Der Wert muss zwischen 1 und 10.000 Mats liegen");
    return 1;
    }
    }


    Versuch es mal so
    Ist hauptsächlich Zeilensparender