Taschenrechner-Script Fehler

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 Brotfische,


    Ich habe mir vorhin ein kleines Taschenrechner Script gebastelt :) . Leider besteht noch ein kleines Problem. Tippt man 2 2 + (Aufgabe 2+2) kommt als Ergebnis 2 raus... ist aber falsch :D . Leider finde ich den Fehler nicht. Ich hoffe es mann mir jemand weiterhelfen.


    [spoiler='Code']





    Mit freundlichen Grüßen
    German_ScripterHD

  • Irgendwie ist das ganze auch etwas komisch was du da tust.


    Zu allererst, würde ich statt einem String lieber einen "Buchstaben" (Char) nehmen
    und das ganze dann mit switch aufsplitten, statt mit strcmp.


    Du hast ja nicht mal einen wirklichen string. Der String den du hast ist genauso groß wie eine normale Variable,
    das ist also irgendwie blödsinn, vor allem weil du bei sscanf eine Größe angeben musst und noch Platz für den EOS brauchst, dementsprechend bräuchtest du einen String mit der Größe 2.


    Ich hab das ganze so gelöst:
    new number[2],character;
    sscanf("2 2 +", "ddc", number[0], number[1], character);
    Calculator(0,number[0],character,number[1]);


    //


    stock Calculator(playerid,n1,_char,n2)
    {
    new str[128],Float:result;
    switch(_char)
    {
    case '+':
    {
    result = n1 + n2;
    format(str,sizeof(str),"Aufgabe: %d + %d = %f",n1,n2,result);
    }
    case '-':
    {
    result = n1 - n2;
    format(str,sizeof(str),"Aufgabe: %d - %d = %f",n1,n2,result);
    }
    case '*':
    {
    result = n1 * n2;
    format(str,sizeof(str),"Aufgabe: %d x %d = %f",n1,n2,result);
    }
    case '/':
    {
    result = n1 / n2;
    format(str,sizeof(str),"Aufgabe: %d / %d = %f",n1,n2,result);
    }
    }
    return print(str);
    }

    "Bevor ich mir Informationen aus der "Bild" hole,
    werde ich anfangen, Wahlergebnisse danach vorauszusagen,
    neben welchen Busch unsere Katze gepinkelt hat."

    Margarete Stokowski

  • Vielen Dank :thumbup:


    //Edit:


    Ich wollte das System gerade noch Dialog basierend schreiben, doch leider gibt es einen Fehler, wenn man folgendes eintippt kommt folgende Nachrichten:



    C
    DIALOG EINGABE            TASCHENRECHNER AUSGABE
    1+1                         Aufgabe: 49+49=98
    2+2                         Aufgabe: 50+50=100
    3+3                         Aufgabe: 51+51=102
    usw.


    [spoiler='Code']


    Dialog Code:




    Mit freundlichen Grüßen
    German_ScripterHD

    Einmal editiert, zuletzt von German_ScripterHD ()

  • Viel zu viel..einfach nur folgendes machen:


    C
    if(strfind(inputtext, "+", true) != -1)
    {
        split(inputtext, number_tmp, '+');
        _Calculator(playerid,strval(numer_tmp[0]),'+',strval(numer_tmp[1]));
    }


    und fertig :)

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • Warum machst du dir das so kompliziert ?



    Das wäre völlig ausreichend, da musst du den string nicht nochmal neu formatieren, das würde lediglich den User dazu zwingen den text so einzugeben
    10 + 10