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

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

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

    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.
    EyL, German Roleplay. Opening 2019
    youtube.com/watch?v=MjWlICSj6Jo
  • LeijaT schrieb:

    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:


    C-Quellcode

    1. switch(listitem)
    2. {
    3. case 0:
    4. {
    5. CreateVehicle(510, 1725.4591,-1875.1221,13.5640,265.0214, -1, -1, -1, 0),
    6. pInfo[playerid][pGeld]+=-394;
    7. }
    8. case 1:
    9. {
    10. CreateVehicle(481, 1725.4591,-1875.1221,13.5640,265.0214, -1, -1, -1, 0),
    11. pInfo[playerid][pGeld]+=-326;
    12. }
    13. case 2:
    14. {
    15. GetPlayerPos(playerid,X,Y,Z);
    16. GetPlayerFacingAngle(playerid,A);
    17. Mietfahrzeug3 = CreateVehicle(411, X, Y, Z, A, -1, -1, -1);
    18. PutPlayerInVehicle(playerid,Mietfahrzeug3,0);
    19. pInfo[playerid][pGeld]+=-316;
    20. }
    21. }
    Alles anzeigen
    PS: Anstatt pInfo[playerid][pGeld]+=-394; schreibe doch lieber pInfo[playerid][pGeld] -= 394; ^^


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