Nochmals Hilfe für Dialog [Pawn]

  • Nochmals Hilfe für Dialog [Pawn]

    Also : Problem ich finde den Fehler nicht und bekomme eig nur den Error error 010: invalid function or declaration.
    kann es sein das irgendwas mit der Klammersetzung nicht Stimmt ?? Ich weiß mir gerade echt nicht mehr zu helfen.
    Bin auch kompletter Anfänger seid ca 2 Wochen erst dabei... Ich hoffe mir kann jemand helfen

    Hier einmal mein OnPlayerResponse:
    [pwn]public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
    {
    if(dialogid == DIALOG_Ulla)
    { if(response == 0)
    return 1;
    if(response == 1)
    {
    if(listitem == 0)
    {
    if(GetPlayerMoney(playerid) > 75)
    SetPlayerSkin(playerid, 10);
    SendClientMessage(playerid, lila, "Du hast dir Alte Sachen gekauft!");
    GivePlayerMoney(playerid, -75);
    }
    else
    {
    if(GetPlayerMoney(playerid) < 75)
    SendClientMessage(playerid,rot,"Du hast nicht genügend Geld dabei!");
    return 1;
    }

    if(listitem == 1)
    {
    if(GetPlayerMoney(playerid) < 85)
    SendClientMessage(playerid,rot,"Du hast nicht genügend Geld dabei!");
    return 1;
    }
    else
    {
    if(GetPlayerMoney(playerid) > 85)
    SetPlayerSkin(playerid, 31);
    SendClientMessage(playerid, lila, "Du läufst als Fette Farmerin herum !");
    GivePlayerMoney(playerid, -85);
    }

    if(listitem == 2)
    {
    if(GetPlayerMoney(playerid) > 95)
    SetPlayerSkin(playerid, 39);
    SendClientMessage(playerid, lila, "Du hast dir normale Sachen gekauft");
    GivePlayerMoney(playerid, -95);
    }
    else
    {
    if(GetPlayerMoney(playerid) < 95)
    SendClientMessage(playerid,rot,"Du hast nicht genügend Geld dabei!");
    return 1;
    }

    if(listitem == 3)
    {
    if(GetPlayerMoney(playerid) > 120)
    SetPlayerSkin(playerid, 130);
    SendClientMessage(playerid, lila, "Du hast dir ein schäbiges Kleid gekauft");
    GivePlayerMoney(playerid, -120);
    }
    else
    {
    if(GetPlayerMoney(playerid) < 120)
    SendClientMessage(playerid,rot,"Du hast nicht genügend Geld dabei!");
    return 1;
    }

    if(listitem == 4)
    {
    if(GetPlayerMoney(playerid) > 125)
    SetPlayerSkin(playerid, 232);
    SendClientMessage(playerid, lila, "Du hast dir andere normale Sachen gekauft");
    GivePlayerMoney(playerid, -125);
    return 1;
    }
    else
    {
    if(GetPlayerMoney(playerid) < 125)
    SendClientMessage(playerid,rot,"Du hast nicht genügend Geld dabei!");
    }

    if(listitem == 5)
    {
    if(GetPlayerMoney(playerid) > 2000)
    SetPlayerSkin(playerid, 5);
    SendClientMessage(playerid, lila, "Du hast dir ein Hemd und eine Jeans gekauft ! Fettsack !");
    GivePlayerMoney(playerid, -2000);
    return 1;
    }
    else
    {
    if(GetPlayerMoney(playerid) < 2000)
    SendClientMessage(playerid,rot,"Du hast nicht genügend Geld dabei!");
    return 1;
    }
    }
    }
    if(dialogid == DIALOG_LOGIN)
    {
    if(response == 0)
    {
    SendClientMessage(playerid,rot,"Du hast den Login Vorgang abgebrochen und wirst deshalb nun gekickt!");
    Kick(playerid);
    }
    if(response == 1)
    {
    if(!strlen(inputtext))
    {
    SendClientMessage(playerid,rot,"Das angegebene Passwort war leider falsch!");
    ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Login","Gib unten dein korrektes Passwort ein!","Login","Abbrechen");
    return 1;
    }
    else
    {
    Login(playerid,MD5_Hash(inputtext));
    return 1;
    }
    }
    }
    if(dialogid == DIALOG_REG)
    {
    if(response == 0)
    {
    SendClientMessage(playerid,rot,"Du hast den Vorgang abgebrochen und wirst gekickt!");
    Kick(playerid);
    return 1;
    }
    if(response == 1)
    {
    if(!strlen(inputtext))
    {
    SendClientMessage(playerid,rot,"Dein angegebens Passwort war nicht lang genug!\nBitte versuche es erneut!");
    ShowPlayerDialog(playerid,DIALOG_REG,DIALOG_STYLE_PASSWORD,"Register","Herzlich Willkommen.\n Da dies dein 1.Besuch bei uns ist, musst du dich zuerst registrieren.\nGib bitte unten dein gewünschtes Passwort ein!","Register","Abbrechen");
    return 1;
    }
    else
    {
    Register(playerid,MD5_Hash(inputtext));
    return 1;
    }
    }
    }
    }
    if(dialogid == DIALOG_Pizza)
    {
    if(response == 0)
    return 1;
    if(response == 1)
    {
    if(listitem == 0)
    {
    if(GetPlayerMoney(playerid) > 5)
    SetPlayerHealth(playerid, +15.0);
    SendClientMessage(playerid, weiß, "Du hast dir eine Pizza Marga gekauft!");
    GivePlayerMoney(playerid, -5);
    }
    else
    {
    if(GetPlayerMoney(playerid) < 5)
    SendClientMessage(playerid,rot,"Du hast nicht genügend Geld dabei!");
    return 1;
    }

    if(listitem == 1)
    {
    if(GetPlayerMoney(playerid) < 8)
    SendClientMessage(playerid,rot,"Du hast nicht genügend Geld dabei!");
    return 1;
    }
    else
    {
    if(GetPlayerMoney(playerid) > 8)
    SetPlayerHealth(playerid, +35.0);
    SendClientMessage(playerid, weiß, "Du hast dir eine Pizza Salami gekauft!");
    GivePlayerMoney(playerid, -8);
    }

    if(listitem == 2)
    {
    if(GetPlayerMoney(playerid) > 10)
    SetPlayerHealth(playerid, +50.0);
    SendClientMessage(playerid, weiß, "Du hast dir eine Pizza Tonno gekauft");
    GivePlayerMoney(playerid, -95);
    }
    else
    {
    if(GetPlayerMoney(playerid) < 10)
    SendClientMessage(playerid,rot,"Du hast nicht genügend Geld dabei!");
    return 1;
    }

    if(listitem == 3)
    {
    if(GetPlayerMoney(playerid) > 25)
    SetPlayerHealth(playerid, 250.0);
    SendClientMessage(playerid, weiß, "Du hast dir eine Pizza Special gekauft");
    SendClientMessage(playerid, weiß, "Sie gibt dir Kraft und Energie");
    GivePlayerMoney(playerid, -25);
    }
    else
    {
    if(GetPlayerMoney(playerid) < 25)
    SendClientMessage(playerid,rot,"Du hast nicht genügend Geld dabei!");
    return 1;
    }
    }[/pwn]

    und einmal die Errors:
    [pwn]C:\Users\WeedChief\Desktop\Samp Server\gamemodes\LVRPWEED.pwn(561) : warning 209: function "OnDialogResponse" should return a value
    C:\Users\WeedChief\Desktop\Samp Server\gamemodes\LVRPWEED.pwn(562) : error 010: invalid function or declaration
    C:\Users\WeedChief\Desktop\Samp Server\gamemodes\LVRPWEED.pwn(564) : error 010: invalid function or declaration
    C:\Users\WeedChief\Desktop\Samp Server\gamemodes\LVRPWEED.pwn(565) : error 010: invalid function or declaration
    C:\Users\WeedChief\Desktop\Samp Server\gamemodes\LVRPWEED.pwn(566) : error 010: invalid function or declaration
    C:\Users\WeedChief\Desktop\Samp Server\gamemodes\LVRPWEED.pwn(568) : error 010: invalid function or declaration
    C:\Users\WeedChief\Desktop\Samp Server\gamemodes\LVRPWEED.pwn(570) : error 010: invalid function or declaration
    C:\Users\WeedChief\Desktop\Samp Server\gamemodes\LVRPWEED.pwn(575) : error 010: invalid function or declaration
    C:\Users\WeedChief\Desktop\Samp Server\gamemodes\LVRPWEED.pwn(577) : error 010: invalid function or declaration
    C:\Users\WeedChief\Desktop\Samp Server\gamemodes\LVRPWEED.pwn(579) : error 010: invalid function or declaration
    C:\Users\WeedChief\Desktop\Samp Server\gamemodes\LVRPWEED.pwn(582) : error 010: invalid function or declaration
    C:\Users\WeedChief\Desktop\Samp Server\gamemodes\LVRPWEED.pwn(584) : error 010: invalid function or declaration
    C:\Users\WeedChief\Desktop\Samp Server\gamemodes\LVRPWEED.pwn(586) : error 010: invalid function or declaration
    C:\Users\WeedChief\Desktop\Samp Server\gamemodes\LVRPWEED.pwn(588) : error 010: invalid function or declaration
    C:\Users\WeedChief\Desktop\Samp Server\gamemodes\LVRPWEED.pwn(590) : error 010: invalid function or declaration
    C:\Users\WeedChief\Desktop\Samp Server\gamemodes\LVRPWEED.pwn(596) : error 010: invalid function or declaration
    C:\Users\WeedChief\Desktop\Samp Server\gamemodes\LVRPWEED.pwn(598) : error 010: invalid function or declaration
    C:\Users\WeedChief\Desktop\Samp Server\gamemodes\LVRPWEED.pwn(603) : error 010: invalid function or declaration
    C:\Users\WeedChief\Desktop\Samp Server\gamemodes\LVRPWEED.pwn(605) : error 010: invalid function or declaration
    C:\Users\WeedChief\Desktop\Samp Server\gamemodes\LVRPWEED.pwn(607) : error 010: invalid function or declaration
    C:\Users\WeedChief\Desktop\Samp Server\gamemodes\LVRPWEED.pwn(610) : error 010: invalid function or declaration
    C:\Users\WeedChief\Desktop\Samp Server\gamemodes\LVRPWEED.pwn(612) : error 010: invalid function or declaration
    C:\Users\WeedChief\Desktop\Samp Server\gamemodes\LVRPWEED.pwn(618) : error 010: invalid function or declaration
    C:\Users\WeedChief\Desktop\Samp Server\gamemodes\LVRPWEED.pwn(620) : error 010: invalid function or declaration
    C:\Users\WeedChief\Desktop\Samp Server\gamemodes\LVRPWEED.pwn(622) : error 010: invalid function or declaration
    C:\Users\WeedChief\Desktop\Samp Server\gamemodes\LVRPWEED.pwn(697) : warning 217: loose indentation
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase


    24 Errors.
    [/pwn]

    Ich hoffe jemand kann mir sagen was zu tun ist und das am Besten noch ein wenig Erklären
    One Love
    WeedCHief
  • Moin,
    eine relativ schnelle Antwort,
    da hier bei mir gerade Renovirungsarbeiten stattfinden,
    weshalb ch auch zimlich verspätet auf PNs antworte:

    Als erstes habe ioch einen Klammerfehler gefunden,
    da fehlte eine,
    das beste was man machen kann (was ich zumindest immer mache) dann ist,
    einfach alles ganz nach links reinrücken, dann die Klammern durchchecken, wo was fehlt richtig stellen und wieder richtig einrücken,
    zumindest wenn wie auch bei dir beim Einrücken was schief lief, istd as hilfreich.
    das habe ich nun so im Editor,
    da fiel mir was auf:

    [pwn]
    if(listitem == 2)
    {
    if(GetPlayerMoney(playerid) > 10)
    SetPlayerHealth(playerid, +50.0);
    SendClientMessage(playerid, weiß, "Du hast dir eine Pizza Tonno gekauft");
    GivePlayerMoney(playerid, -95);
    }
    else
    {
    if(GetPlayerMoney(playerid) < 10)
    SendClientMessage(playerid,rot,"Du hast nicht genügend Geld dabei!");
    return 1;
    }
    [/pwn]
    Um es mal in Menschlicher Sprache nun zu erzählen:
    Wenn listitem gleich 2 ist, dann:
    Abfragen, ob Spielergeld größer als 10 ist,
    wenn ja, dann Heal +50, Nachricht senden und vom Spieler 95 Geld abziehen.

    Ist das listenitem nun nicht 2,
    dann:
    [pwn]
    if(GetPlayerMoney(playerid) < 10)
    SendClientMessage(playerid,rot,"Du hast nicht genügend Geld dabei!");
    return 1;
    [/pwn]

    Wahrscheinlich willst du das ehe ausgeben, wenn Spielergeld nicht größer als 10 ist,
    daher wäre dies so richtig:
    [pwn]
    if(listitem == 2)
    {
    if(GetPlayerMoney(playerid) > 10)
    {
    SetPlayerHealth(playerid, +50.0);
    SendClientMessage(playerid, weiß, "Du hast dir eine Pizza Tonno gekauft");
    GivePlayerMoney(playerid, -95);
    }
    else
    {
    SendClientMessage(playerid,rot,"Du hast nicht genügend Geld dabei!");
    }
    return 1;
    }
    [/pwn]

    Soviel zur kurzen Erklärung,
    wie gesgat die Tage viel zu tun bei mir,
    daher kann ich den Bildungsauftrag hier nicht ganz so stark nachkommen,
    wie sonst.

    Zum schluss deine Geschichte mal verbessert (Ich habe lediglich If Anweisungen, Klammerstellungen und Einrückungen richtig gestellt, an der Struktur habe ich an sich nichts verändert):

    [pwn]
    public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
    {
    if(dialogid == DIALOG_Ulla)
    {
    if(response == 0)
    {
    return 1;
    }
    if(response == 1)
    {
    if(listitem == 0)
    {
    if(GetPlayerMoney(playerid) > 75)
    {
    SetPlayerSkin(playerid, 10);
    SendClientMessage(playerid, lila, "Du hast dir Alte Sachen gekauft!");
    GivePlayerMoney(playerid, -75);
    }
    else
    {
    SendClientMessage(playerid,rot,"Du hast nicht genügend Geld dabei!");
    }
    return 1;
    }

    if(listitem == 1)
    {
    if(GetPlayerMoney(playerid) < 85)
    {
    SendClientMessage(playerid,rot,"Du hast nicht genügend Geld dabei!");
    }
    else
    {
    SetPlayerSkin(playerid, 31);
    SendClientMessage(playerid, lila, "Du läufst als Fette Farmerin herum !");
    GivePlayerMoney(playerid, -85);
    }
    return 1;
    }

    if(listitem == 2)
    {
    if(GetPlayerMoney(playerid) > 95)
    {
    SetPlayerSkin(playerid, 39);
    SendClientMessage(playerid, lila, "Du hast dir normale Sachen gekauft");
    GivePlayerMoney(playerid, -95);
    }
    else
    {
    SendClientMessage(playerid,rot,"Du hast nicht genügend Geld dabei!");
    }
    return 1;
    }

    if(listitem == 3)
    {
    if(GetPlayerMoney(playerid) > 120)
    {
    SetPlayerSkin(playerid, 130);
    SendClientMessage(playerid, lila, "Du hast dir ein schäbiges Kleid gekauft");
    GivePlayerMoney(playerid, -120);
    }
    else
    {
    SendClientMessage(playerid,rot,"Du hast nicht genügend Geld dabei!");
    }
    return 1;
    }

    if(listitem == 4)
    {
    if(GetPlayerMoney(playerid) > 125)
    {
    SetPlayerSkin(playerid, 232);
    SendClientMessage(playerid, lila, "Du hast dir andere normale Sachen gekauft");
    GivePlayerMoney(playerid, -125);
    }
    else
    {
    SendClientMessage(playerid,rot,"Du hast nicht genügend Geld dabei!");
    }
    return 1;
    }


    if(listitem == 5)
    {
    if(GetPlayerMoney(playerid) > 2000)
    {
    SetPlayerSkin(playerid, 5);
    SendClientMessage(playerid, lila, "Du hast dir ein Hemd und eine Jeans gekauft ! Fettsack !");
    GivePlayerMoney(playerid, -2000);
    }
    else
    {
    SendClientMessage(playerid,rot,"Du hast nicht genügend Geld dabei!");
    }
    return 1;
    }
    }
    }
    if(dialogid == DIALOG_LOGIN)
    {
    if(response == 0)
    {
    SendClientMessage(playerid,rot,"Du hast den Login Vorgang abgebrochen und wirst deshalb nun gekickt!");
    Kick(playerid);
    }
    if(response == 1)
    {
    if(!strlen(inputtext))
    {
    SendClientMessage(playerid,rot,"Das angegebene Passwort war leider falsch!");
    ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Login","Gib unten dein korrektes Passwort ein!","Login","Abbrechen");
    return 1;
    }
    else
    {
    Login(playerid,MD5_Hash(inputtext));
    return 1;
    }
    }
    }
    if(dialogid == DIALOG_REG)
    {
    if(response == 0)
    {
    SendClientMessage(playerid,rot,"Du hast den Vorgang abgebrochen und wirst gekickt!");
    Kick(playerid);
    return 1;
    }
    if(response == 1)
    {
    if(!strlen(inputtext))
    {
    SendClientMessage(playerid,rot,"Dein angegebens Passwort war nicht lang genug!\nBitte versuche es erneut!");
    ShowPlayerDialog(playerid,DIALOG_REG,DIALOG_STYLE_PASSWORD,"Register","Herzlich Willkommen.\n Da dies dein 1.Besuch bei uns ist, musst du dich zuerst registrieren.\nGib bitte unten dein gewünschtes Passwort ein!","Register","Abbrechen");
    return 1;
    }
    else
    {
    Register(playerid,MD5_Hash(inputtext));
    return 1;
    }
    }
    }

    if(dialogid == DIALOG_Pizza)
    {
    if(response == 0)
    {
    return 1;
    }
    if(response == 1)
    {
    if(listitem == 0)
    {
    if(GetPlayerMoney(playerid) > 5)
    {
    SetPlayerHealth(playerid, +15.0);
    SendClientMessage(playerid, weiß, "Du hast dir eine Pizza Marga gekauft!");
    GivePlayerMoney(playerid, -5);
    }
    else
    {
    SendClientMessage(playerid,rot,"Du hast nicht genügend Geld dabei!");
    }
    return 1;
    }

    if(listitem == 1)
    {
    if(GetPlayerMoney(playerid) < 8)
    {
    SendClientMessage(playerid,rot,"Du hast nicht genügend Geld dabei!");
    }
    else
    {
    SetPlayerHealth(playerid, +35.0);
    SendClientMessage(playerid, weiß, "Du hast dir eine Pizza Salami gekauft!");
    GivePlayerMoney(playerid, -8);
    }
    return 1;
    }

    if(listitem == 2)
    {
    if(GetPlayerMoney(playerid) > 10)
    {
    SetPlayerHealth(playerid, +50.0);
    SendClientMessage(playerid, weiß, "Du hast dir eine Pizza Tonno gekauft");
    GivePlayerMoney(playerid, -95);
    }
    else
    {
    SendClientMessage(playerid,rot,"Du hast nicht genügend Geld dabei!");
    }
    return 1;
    }

    if(listitem == 3)
    {
    if(GetPlayerMoney(playerid) > 25)
    {
    SetPlayerHealth(playerid, 250.0);
    SendClientMessage(playerid, weiß, "Du hast dir eine Pizza Special gekauft");
    SendClientMessage(playerid, weiß, "Sie gibt dir Kraft und Energie");
    GivePlayerMoney(playerid, -25);
    }
    else
    {
    SendClientMessage(playerid,rot,"Du hast nicht genügend Geld dabei!");
    }
    return 1;
    }
    }
    }
    }
    [/pwn]

    Gruß,
    Dennis

    PS: Da ich lange kein pawn mehr effektiv nutzen, können Fehler auftreten,
    dann einfach hier nochmal posten ^^.

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von Dennis321 ()

  • Danke dir erstmals sehr für die Ausführliche Erklärung.

    Hatte das Problem aber vorher schon gelöst und hätte auch wieder ein neues :D
    Ich hab ein gTeam erstellt mit allem was dazugehört... Der einzige Fehler wenn ein
    Admin /makeleader macht wird die Frakid weder auf 1.2.3.4usw gesetzt sondern immer auf
    0. Ich verzweifel seid knapp 2 Stunden ^^

    Ich würde mich über eine Antwort freuen ansonsten danke für den Super Support auch PN ;)
    *Chrome spinnt gerade irgendwie ich mache später ein Edit und stelle ein paar Codeschnippsel rein wo mein
    verdacht hängt

    Frage: Ist das mit gTeam eine gute Lösung oder würdet ihr mir als Anfänger eher etwas anderes empfehelen?

    One Love
    WeedChief

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von WeedChief ()