Einfaches Problem was nicht gefunden werden kann : only a single statement (or expression) can follow each "case"

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!
    Ich bin am verzweifeln da ich momentan an etwas arbeite und irgendwie nicht alles so klappt wie ich mir das vorstelle dazu muss ich sagen ich scripte erst seit 2 Tagen :D


    (445) : error 002: only a single statement (or expression) can follow each "case"
    (445) : warning 215: expression has no effect
    (450) : warning 209: function "OnDialogResponse" should return a value
    (451) : error 010: invalid function or declaration


    public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])


    Bla bla bla bla kommen unnötige Sachen


    }
    if(dialogid == DIALOG_LOGIN)
    {
    if(!response)return Kick(playerid);
    new query[256];
    mysql_format(Handle,query,sizeof(query),"SELECT * FROM user WHERE Username='%e' AND Passwort=MD5('%e')",Spielername(playerid),inputtext);
    mysql_tquery(Handle,query,"OnPasswordResponse","i",playerid);
    return 1;
    }
    if(dialogid == DIALOG_FAHRZEUGVERLEIH1)
    {
    switch(listitem)
    {
    case 0: CreateVehicle(510, 1725.4591,-1875.1221,13.5640,265.0214, -1, -1, -1, 0),
    pInfo[playerid][pGeld]+=-394;
    case 1: CreateVehicle(481, 1725.4591,-1875.1221,13.5640,265.0214, -1, -1, -1, 0),
    pInfo[playerid][pGeld]+=-326;
    case 2: GetPlayerPos(playerid,X,Y,Z);
    GetPlayerFacingAngle(playerid,A);
    Mietfahrzeug3 = CreateVehicle(411, X, Y, Z, A, -1, -1, -1);
    PutPlayerInVehicle(playerid,Mietfahrzeug3,0);
    pInfo[playerid][pGeld]+=-316;
    }
    }
    return 1;
    }



    Es handelt sich eigentlich nur um if(dialogid == DIALOG_FAHRZEUGVERLEIH1) das ist das letzte was ich gemacht habe , womit ich auch nicht fertig bin wie man sehen kann case2 habe ich schon gemacht aber irgendwie sehe ich den Fehler nicht


    Danke schon einmal im voraus.

    wm2c6p1.png
    Ich weiß, dass ich weiß, dass ich nichts weiß.

  • statt "if" muss es "elseif" heißen. Bzw "else if" - Hab schon lange nicht mehr gescripted und bin mir gerade nicht sicher, wie rum es in PAWN ist ^^


    Mein CS:GO Server: 62.75.168.39:27016


    Ich bin so hungrig, dass ich vor lauter Durst nicht weiß, was ich rauchen soll - so müde bin ich!
    Freedom is just another word for 'Nothing left to lose'

  • statt "if" muss es "elseif" heißen. Bzw "else if" - Hab schon lange nicht mehr gescripted und bin mir gerade nicht sicher, wie rum es in PAWN ist

    Muss man nicht, kann man, ist hier aber relativ egal, da er in jedem if-Statement ein return verwendet.


    Der Fehler liegt, wie die Error-Meldung schon vermuten lässt im switch-case.


    Mit dem , was du bei case 0 und case 1 gemacht hast, machst du sog. Single-Line-Statements.
    Allerdings kannst du das auch in einen Block schreiben:



    PS: Anstatt pInfo[playerid][pGeld]+=-394; schreibe doch lieber pInfo[playerid][pGeld] -= 394; ^^

    ast2ufdyxkb1.png


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

  • Jetzt habe ich nur das Problem das wenn ich z.b ein Fahrzeug miete mir kein Geld abgezogen wird.

    Doch schon, aber nur in der Variable.


    Du musst dann noch GivePlayerMoney immer verwenden, damit dir das ingame angezeigt wird ;)

    ast2ufdyxkb1.png


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