DIALOGE machen falsche Aktionen

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,


    meine Dialoge funktionieren derzeit nicht ganz so wie Sie sollen.


    Wenn ich nun meinen Textdraw anklicke, und dann auf SHOWFRAGEN bin und die Frage anklicke,


    wird ein x beliebiger Text abgesandt. Das ganze soll natürlich nicht so sein sondern ich will vorher einen Text eingeben.


    Scheinbar habe ich im Code einen Fehler.


    Über jede Hilfe bin ich danbar


    codeschuitz

    Einmal editiert, zuletzt von robbi2304 () aus folgendem Grund: codeschutz

  • Beitrag von robbi2304 ()

    Dieser Beitrag wurde vom Autor aus folgendem Grund gelöscht: schützen ().
  • format(string1,sizeof(string1),"Name: {FFBE00}%s\n{FEFEFE}Frage: {FFBE00}%s\n\nDie Nachricht wird an den Spieler gesendet sobald du auf Absenden klickst.",PlayerInfo[playerid][pName],buffer[i]);
    zu:
    format(string1,sizeof(string1),"Name: {FFBE00}%s\n{FEFEFE}Frage: {FFBE00}%s\n\nDie Nachricht wird an den Spieler gesendet sobald du auf Absenden klickst.",PlayerInfo[playerid][pName],buffer);


    format(string,sizeof(string),"[Report System] %s: %s",PlayerInfo[playerid],inputtext);
    zu:
    format(string,sizeof(string),"[Report System] %s: %s",PlayerInfo[playerid][pName],inputtext);

  • Danke für deine erneute Hilfe @Jeffry,


    dies ist derzeit nicht das Problem was ich derzeit habe. Ich habe mal ein YouTube Video dazu hochgeladen. Dadurch ist es leichter erklärt.


    Das erstellen eines Reports funktioniert. Allerdings nicht das Antworten darauf weil er zu früh in SHOWFRAGEN 1 wechselt.


    Video:


    Externer Inhalt youtu.be
    Inhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.
    Durch die Aktivierung der externen Inhalte erklären Sie sich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt.

  • Report wird erstellt


    ocmd:report(playerid){ if(PlayerInfo[playerid][pLoggedIn] == false)return SendClientMessage(playerid,COLOR_RED,"Du bist nicht eingeloggt !"); ShowPlayerDialog(playerid,DIALOG_REPORT,DIALOG_STYLE_LIST,"{FF000F}"#Servername"{FEFEFE} - Report","Allgemeines\nProblem\nBugmeldung\nBeschwerden","Auswählen","Abbrechen"); return 1;}

    Einmal editiert, zuletzt von robbi2304 () aus folgendem Grund: Code schützen

  • Jop. Fehler darin gefunden. Danke dir


    // Edit


    Manchmal beim beantworten bzw beim absenden ruft er den ShowPlayerDialog erneut auf o.o


    woran könnte das liegen



    new string[1024],buffer[1024],string1[128];
    GetPVarString(i,"ReportFrage",buffer,90);
    format(string,sizeof(string),"Frage von {FF0019}%s",name);
    format(string1,sizeof(string1),"Name:%d\nFrage:%s\n\nDie Nachricht wird an den Spieler gesendet sobald du auf Absenden klickst.",PlayerInfo[playerid][pName],buffer);
    ShowPlayerDialog(playerid,DIALOG_SHOWFRAGEN1,DIALOG_STYLE_INPUT,string,string1,"Annehmen","Zurück");
    return 1;


    und das dann immer wieder ohne das ich den report absenden kann.


    Fällt besonder auf wenn Leerzeichen mit ins Spiel kommen

    Einmal editiert, zuletzt von robbi2304 ()

  • Nutzt du eventuell die gleiche Dialog ID für die beiden Dialoge? Anders wäre es kaum zu erklären, dass der andere Dialog aufgerufen wird.

    tatsächlich. danke für den denkhinweis und nochmal zu der kontrolle.
    Für eins bin ich nun noch aber zu doof. Den Wert nach dem beantworten wieder zu löschen.



    if(dialogid==DIALOG_SHOWFRAGEN)
    {
    if(response)
    {
    new buffer1[MAX_PLAYER_NAME],name[MAX_PLAYER_NAME],i;
    strmid(name,inputtext,6,strfind(inputtext," ", false, 6));
    for(; i<MAX_PLAYERS; ++i)
    {
    GetPlayerName(i,buffer1,MAX_PLAYER_NAME);
    if(!strcmp(name,buffer1,false))
    {
    SetPVarInt(playerid,"ID2",i);
    break;
    }
    new string[1024],buffer[1024],string1[128];
    GetPVarString(i,"ReportFrage",buffer,90);
    format(string,sizeof(string),"Frage von {FF0019}%s",name);
    format(string1,sizeof(string1),"Name:%d\nFrage:%s\n\nDie Nachricht wird an den Spieler gesendet sobald du auf Absenden klickst.",PlayerInfo[playerid][pName],buffer);
    ShowPlayerDialog(playerid,DIALOG_SHOWFRAGEN1,DIALOG_STYLE_INPUT,string,string1,"Annehmen","Zurück");
    return 1;
    }
    }
    }
    if(dialogid==DIALOG_SHOWFRAGEN1)
    {
    if(response)
    { new count;
    new string[128];
    new pID = GetPVarInt(playerid,"ID2");
    if(PlayerInfo[pID][ReportSend] == 0)return SendClientMessage(playerid,COLOR_RED,"Der Report wurde schon bearbeitet !");
    Fragen -= 1;
    count--;
    UpdateReportTD();
    format(string,sizeof(string),"[Report System] %s: %s",PlayerInfo[playerid][pName],inputtext);
    SendClientMessage(pID,-1,string);
    SendClientMessage(playerid,COLOR_GREEN,"Deine Nachricht wurde erfolgreich abgesendet.");
    PlayerInfo[pID][Report] = 0;
    PlayerInfo[pID][ReportSend] = 0;
    PlayerInfo[pID][Frage] = 0;

    return 1;
    }
    }



    if(dialogid==DIALOG_REPORT_FRAGEN)
    {
    if(PlayerInfo[playerid][Frage]== 1) return SendClientMessage(playerid,COLOR_RED,"Du hast schon eine Frage erstellt. Bitte warte ab bis diese beantwortet ist.");
    if(!response)return ShowPlayerDialog(playerid,DIALOG_REPORT,DIALOG_STYLE_LIST,"{FF000F}"#Servername"{FEFEFE} - Report","Allgemeines\nProblem\nBugmeldung\nBeschwerden","Auswählen","Abbrechen");
    if(strlen(inputtext) < 5)return SendClientMessage(playerid,COLOR_RED,"Deine Nachricht ist zu kurz!");
    Fragen += 1;
    UpdateReportTD();
    SendClientMessage(playerid,COLOR_RED,"Dein Report wurde an alle aktiven Administratoren weitergeleitet, bitte gedulde dich noch einen Moment.");
    PlayerInfo[playerid][Report] = 1;
    PlayerInfo[playerid][ReportSend] = 1;
    PlayerInfo[playerid][Frage] = 1;
    sachen[reportcount]++;
    PlayerInfo[playerid][reportid] = sachen[reportcount];
    SetPVarString(playerid,"ReportFrage",inputtext);
    }

    Einmal editiert, zuletzt von robbi2304 ()

  • Sobald das Ticket beantwortet ist, soll die Anfrage vom User gelöscht werden. Diese bleibt aktuell noch vorhanden. Der Textdrwa updatet sich ist aber noch anklickbar da der Wert nicht richtig gelöscht wird