Wert zwischen 100 und 250 machen

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
  • Guten Tag,


    Ich bin seit circa 1 Jahr aus der Übung mit Pawn.


    Und zwar wollte ich einen Wert zwischen 100 und 250 machen und das nur im Dialog Zaheln eingetragen werden.


    Mein derzeitiger Code:



    if(strlen(inputtext) < 100 || strlen(inputtext) > 250 && !IsNumeric(inputtext))
    {
    // Was parssiert wenn der Wert nicht in 100 - 250 ist sowie keine Zahlen enthalten!
    }

  • Ohne zu wissen, was dann genau passieren soll, können wir dir schlecht weiter helfen.


    Was soll denn dann passieren? Soll er die Zahlen einfach ausgeben ? Im Dialog ? Im Chat ?

    Erstmal danke für deine schnelle Antwort.


    Und zwar er steigt im Taxi dieses Dialog erscheint auch und wenn ich z.B. 300$ eingebe gibt er trotzdem den Wert wie teuer das Taxi sein soll.
    Er soll aber nur zwischen 100$ und 250$ eintragen können wenn das nicht der Fall ist soll das Dialog nochmal erscheinen.

  • Und der obige Code ist dein vorhandener Code, oder den Code, den du jetzt geschrieben hast um das Problem zu lösen ?
    Falls noch ein weiterer Code vorhanden, zeig den doch bitte auch.


    case Dialog_Taxi:
    {
    if(!response) return RemovePlayerFromVehicle(playerid);
    if(response)
    {
    if(strlen(inputtext) < 1 || strlen(inputtext) > 250 && !IsNumeric(inputtext))
    {
    ShowPlayerDialog(playerid,Dialog_Taxi,DIALOG_STYLE_INPUT,"Taxi Company", "Du kannst nun den Preis festlegen, den die Fahrgäste jede 10 Sekunden bezahlen.\nDer Preis muss mindestens 1$ und maximal 200$ sein.", "Akzeptieren", "Aussteigen");
    return 1;
    }
    new String[128];
    format(String,sizeof(String),"Taxi Company\n\nFahrer: %s\nKosten: %d$ ",pInfo[playerid][Name],inputtext);
    UpdateDynamic3DTextLabelText(Vehicle[TaxiCar[i]][vehText],Gelb,String);
    Streamer_SetFloatData(STREAMER_TYPE_3D_TEXT_LABEL,Vehicle[TaxiCar[i]][vehText],E_STREAMER_ATTACH_OFFSET_Z, 0.0);
    Streamer_SetFloatData(STREAMER_TYPE_3D_TEXT_LABEL,Vehicle[TaxiCar[i]][vehText],E_STREAMER_ATTACH_OFFSET_Y, 0.0);
    return 1;
    }
    }

  • Und der obige Code ist dein vorhandener Code, oder den Code, den du jetzt geschrieben hast um das Problem zu lösen ?
    Falls noch ein weiterer Code vorhanden, zeig den doch bitte auch.


    Willst du auch was zur Lösung beitragen Herr Moderator ?



    Erstmal strlen gibt dir leider nur die String Länge zurück ;) daher nutz die Funktion strval, außerdem gibt strval 0 zurück wenn der string keine zahl ist


    Quelle: http://wiki.sa-mp.com/wiki/Strval


    Code
    if(!response) return RemovePlayerFromVehicle(playerid);
        new l_value = strval(inputtext);
        if(l_value < 1 || l_value > 250) {
            return ShowPlayerDialog(playerid,Dialog_Taxi,DIALOG_STYLE_INPUT,"Taxi Company", "Du kannst nun den Preis festlegen, den die Fahrgäste jede 10 Sekunden bezahlen.\nDer Preis muss mindestens 1$ und maximal 200$ sein.", "Akzeptieren", "Aussteigen");
    
    
        }
  • Danke, hat wunderbar funktioniert.


    Kann geschlossen werden.