ID Abfrage über Dialog

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
  • Guten Morgen,


    wie mache ich das, dass ich bei einem Kick Befehl erst die ID und in dem nächsten Dialog den Grund angeben muss?
    Stehe grad dermaßen auf dem Schlauch -.-


    ShowPlayerDialog(playerid, DIA_KICK... usw)
    strval = playerid;

    //Wenn er jetzt die ID (strval) eingegeben hat, zeigst du ihm Dialog_Reason.. etc. - Hoffe du weißt was ich meine.


    //E: Nach der Reason machst du denn Kick (PID), oder du speicherst die playerid aus strval in einer globalen Variable.


    Engelsflügel am Astonkühler, als Schutz vor dem Teufel!

  • Kannst du mir das in einem Code zeigen? Ich weiß nicht wie ich das umsetzen soll, verstehen tuh ich das nur an der Umsetzung scheitert es.


    new kID;


    ocmd:kick(playerid,params[])
    {
    //Sscanfabfrage etc.
    ShowPlayerDialog(playerid, DIALOG_KICK... etc);
    }


    public OnDialogResponse(playerid...)
    {
    if(dialogid == DIALOG_KICK)
    {
    kID = strval(pID);
    ShowPlayerDialog(playerid, DIALOG_REASON etc.)
    }


    if(dialogid == DIALOG_RESON)
    {
    if(!response) return 0;
    if(response)
    {
    //Kick(kID);
    }
    }
    }


    So ungefähr sollte es klappen.


    //E: Die Sscanf Abfrage ist unnötig, sorry! :D


    Engelsflügel am Astonkühler, als Schutz vor dem Teufel!

  • ich hab keine sscanf abfrage


    ShowPlayerDialog(playerid,DIALOG_APSK,DIALOG_STYLE_INPUT,"{FFFFFF}Unique Team Deathmatch - Probe Supporter - Spieler kicken","{FFFFFF}Bitte gebe die ID des Spielers ein, den du vom Server kicken möchtest.","Fortfahren","");}


    Der Supporter sollte ID und Grund im Dialog eintragen können. So meinte ich das

  • ShowPlayerDialog(playerid,DIALOG_APSK,DIALOG_STYLE_INPUT,"{FFFFFF}Unique Team Deathmatch - Probe Supporter - Spieler kicken","{FFFFFF}Bitte gebe die ID des Spielers ein, den du vom Server kicken möchtest.","Fortfahren","");}


    Meinst du er soll beides in einem Dialog eintragen können? (Das wird wohl eher schwer)


    Demnach würde ich das lieber so machen, dass du auf "Fortfahren" drückst, der nächste Dialog kommt d.h.


    if(dialogid == DIALOG_APSK)
    {
    if(response)
    {
    ShowPlayerDialog(playerid, DIALOG_REASON, DIALOG_STYLE_INPUT, "Support - Grund Angabe:" "Trage nun hier den Grund ein, welshalb du den Spieler kicken möchtest", "OK", "Abbrechen");
    }
    }
    //E:
    Erklärung: Wenn er jetzt am Anfang die ID eines Spieler eingibt, kommt der nächste Dialog, wo er den Grund eintragen kann.


    Engelsflügel am Astonkühler, als Schutz vor dem Teufel!

  • Ja ich meine ja folgendes: Im ersten Dialog trägt er die ID ein, im zweiten den Grund. Und dann soll ihm (der 'kickende') das angezeigt werden.


    Joa denn solltest du nach meinem Beispiel oben arbeiten, sollte recht einfach zu verstehen sein, Weil im 1. Dialog die ID in die Var "kID" (strval = playerid); eingetragen wird.


    Und danach der Grund abgefragt wird, und den könntest du denn normal mit string abfragen.


    z.b.


    ShowPlayerDialog(kID, DIALOG_KICKED, DIALOG_STYLE_MSGBOX, "Gekickt", "Du wurdest vom Server gekickt!\nGrund: %s\nAdmin: %s\nUnd soweiter", "Ok", "");


    Wenn er jetzt Ok drückt, könntest du ihn einfach mit Kick(playerid); kicken.


    Falls du das noch nicht verstanden hast, schreib mir mal ne PN :)


    Engelsflügel am Astonkühler, als Schutz vor dem Teufel!