Dialog im Dialog - 5 Errors

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 liebe Community,
    ich schildere einfach mal kurz und knapp mein Problem:


    Ich habe in meinem Script ein OCMD:Befehle, welches ein List-Dialog anzeigt.
    In diesem wählt man dann entsprechende Kategorien. Wählt man eine aus, soll
    sich ein dementsprechender MSG-Dialog öffnen, was ich unter OnDialogResponse machen möchte.


    Zu erwähnen ist, dass ich völlig neu bin! Lerne mit MrM Tutorials.


    Danke für die Hilfe!


    Script:
    Zeile 582 (if(dialogid...)
    bis
    Zeile 693 (return 1; )


    if(dialogid==DIALOG_CMDS)
    {
    if(response)
    {
    if(listitem==1)
    {
    ShowPlayerDialog(playerid,DIALOG_Cmds0,DIALOG_STYLE_MSGBOX,"Befehle - Allgemein","{FF0000}Allgemeine Befehle\n\n{00AFFF}/stats - {FFFFFF}Zeigt deine Statistiken\n{00AFFF}/zeigeperso [ID] - {FFFFFF}Zeigt Spieler X deinen Personalausweis\n{00AFFF}/scheine - {FFFFFF}Zeigt deine Lizenzen\n{00AFFF}/zeigescheine [ID] - {FFFFFF}Zeigt Spieler X deine Lizenzen\n{00AFFF}/ammu - {FFFFFF}Zeigt Dir Optionen zum Waffenkauf\n{00AFFF}/dfarm - {FFFFFF}Zeigt Dir Optionen zum Drogenkauf\n{00AFFF}/afk - {FFFFFF}Du aktivierst/deaktivierst den AFK-Modus\n\n\n\n{FF0000}Hinweis\n{FFFFFF}In Bearbeitung","Schließen","");
    return 1;
    }
    }
    }
    return 1;


    C:\Users\X\Desktop\Spiele\GTA SA-MP Server\gamemodes\Bilzerian.pwn(587 ) : error 075: input line too long (after substitutions)
    C:\Users\X\Desktop\Spiele\GTA SA-MP Server\gamemodes\Bilzerian.pwn(588 ) : error 037: invalid string (possibly non-terminated string)
    C:\Users\X\Desktop\Spiele\GTA SA-MP Server\gamemodes\Bilzerian.pwn(588 ) : error 017: undefined symbol "FF0000"
    C:\Users\X\Desktop\Spiele\GTA SA-MP Server\gamemodes\Bilzerian.pwn(588 ) : warning 217: loose indentation
    C:\Users\X\Desktop\Spiele\GTA SA-MP Server\gamemodes\Bilzerian.pwn(588 ) : error 017: undefined symbol "Allgemeine"
    C:\Users\X\Desktop\Spiele\GTA SA-MP Server\gamemodes\Bilzerian.pwn(588 ) : fatal error 107: too many error messages on one line


    Compilation aborted.Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    5 Errors.

  • Unter OnDialogResponse musst aus ausgeben was im Dialog steht.


    beispiel:
    Befehl:


    ocmd:help(playerid,params[])
    {
    ShowPlayerDialog........
    return 1;
    }


    Und das was in diesem Dialog ist gibst du bei OnDialogResponse aus.

  • Danke!


    ocmd:cmds(playerid,params[])
    {
    ShowPlayerDialog(playerid,DIALOG_CMDS,DIALOG_STYLE_LIST,"Befehlskategorien","Allgemein\nFahrzeug\nKommunikation\nBeruf\nHaus & Geschäft\nFraktion\nAdministrator\nAccountverwaltung\nHilfe","Wählen","Schließen");
    return 1;
    }


    Wäre nett, wenn Du mir genau sagen könntest, was ich nun machen muss, damit die jeweiligen MSG-Dialoge dann angezeigt werden :/
    Oben ist der Befehl ..


    Wie gesagt, kenne mich nicht wirklich aus :(

  • Deine Funktion (Text) ist zu lang, probiers mal so:
    if(dialogid==DIALOG_CMDS)
    {
    if(response)
    {
    if(listitem==1)
    {
    new str[1024];
    format(str, sizeof(str),"{FF0000}Allgemeine Befehle\n\n{00AFFF}/stats - {FFFFFF}Zeigt deine Statistiken\n{00AFFF}/zeigeperso [ID] - {FFFFFF}Zeigt Spieler X deinen Personalausweis\n{00AFFF}/scheine - {FFFFFF}Zeigt deine Lizenzen\n{00AFFF}/zeigescheine [ID] - {FFFFFF}Zeigt Spieler X deine Lizenzen");
    format(str, sizeof(str), "%s\n{00AFFF}/ammu - {FFFFFF}Zeigt Dir Optionen zum Waffenkauf\n{00AFFF}/dfarm - {FFFFFF}Zeigt Dir Optionen zum Drogenkauf\n{00AFFF}/afk - {FFFFFF}Du aktivierst/deaktivierst den AFK-Modus\n\n\n\n{FF0000}Hinweis\n{FFFFFF}In Bearbeitung", str);
    ShowPlayerDialog(playerid,DIALOG_Cmds0,DIALOG_STYLE_MSGBOX,"Befehle - Allgemein",str,"Schließen","");
    }
    }
    return 1;
    }


    Und wenn du eine Liste haben willst, so wie dus im ersten Post erwähnt hast musst du DIALOG_STYLE_LIST nutzen und nicht DIALOG_STYLE_MSGBOX
    Und listitem fängt bei 0 an und nicht bei 1, d.h. du musst noch listitem == 1 zu listitem == 0 ändern.
    //edit Fehler behoben + listitem Erklärung hinzugefügt

    Einmal editiert, zuletzt von Red_Romeo ()