Mit Dialog die ID auslesen

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 Community,
    Wollte mal fragen wie ich anhand eines Dialog_inputs die id auslesen kann?
    Also ich habe vor beim erst ein listen Dialog zu machen mit den Banarten und wenn man dann eine auswählt muss man erst die id eingeben und dann den Grund und bei Tban noch die Zeit.
    Aber mir würde ein BSpl an der Id reichen.

  • Unter OnDialogResponse speicherst Du den Inputtext als Integer in einer Variable:
    Die Variable muss nur global sein, am besten ein array für alle Spieler
    new array[MAX_PLAYERS];


    // In OnDialogResponse
    array[playerid] = strint(inputtext);


    Dann den nächsten Dialog anzeigen lassen und immer so weiter, bis man am Ende angekommen ist.
    Bei der Dialog-Abfrage würde ich dir noch die Funktion "IsNumeric" empfehlen, mit der du vorher checkst ob der Eingabewert wirklich eine Zahl ist.
    Sonst kommen da ganz blöde Fehler bei rum. Wegen der Funktion, einfach mal googlen ;)

  • Ich verstehe das nicht so ganz bin ja jetzt nicht gerade der Pro im Scripten bin sozusagen Anfänger, aber verstehe einiges schon schnell das ich einiges auch selber machen kann aber dort weiß ich jetzt nicht wie ich genau vorgehen sollte. Kann mir vielleicht einer behilflich sein?


    //Edit
    ocmd:ban(playerid,params[])
    {
    if(!IsAdmin(playerid,1))return SendClientMessage(playerid,ROT,"Du bist kein Admin");
    if(!IsAdmin(playerid,3))return SendClientMessage(playerid,ROT,"Dein Rang ist zu niedrig. Benötigter Rang: 3");
    ShowPlayerDialog(playerid,DIALOG_BAN,DIALOG_STYLE_LIST,"Bitte Banart wählen","AccountBan\nIPBan\nTimeBan","Weiter","Abbrechen");
    return 1;
    }


    banid[playerid] = strint(inputtext);
    if(dialogid==DIALOG_BAN)
    {
    if(response)
    {

    }
    else
    {

    }
    return 1;
    }

    Einmal editiert, zuletzt von XJimmiX ()

  • @Firefan: Seit wann gibt es die Funktion strint ? Ich glaube du meinst wohl ehr strval ;)



    public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]){
    if(dialogid == DIALOG_BAN)
    {
    if(!response)return 1;
    if(!IsNumeric(inputtext))return SendClientMessage(playerid, -1, "Ungülte Spieler ID");
    new pID = strval(inputtext);
    if(!IsPlayerConnected(pID))return SendClientMessage(playerid, -1, "Spieler ist nicht Online.");
    //Dein Code..
    //Ban(pID); ?^^
    }
    return 1;
    }
    //Irgentwo im Script
    stock IsNumeric(value[])
    {
    new cpoint;
    while((value[cpoint] >= '0' && value[cpoint] <= '9') || (cpoint == 0 && value[cpoint] == '-'))cpoint++;
    return (value[0] && strlen(value) == cpoint);
    }

  • Hätte jetzt gehofft das du das selbst schaffen könntest :)


    public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
    {
    if(dialogid == DIALOG_BAN)
    {
    if(!response)return 1;
    if(!IsNumeric(inputtext))return SendClientMessage(playerid, -1, "Ungülte Spieler ID");
    new pID = strval(inputtext);
    if(!IsPlayerConnected(pID))return SendClientMessage(playerid, -1, "Spieler ist nicht Online.");

    if(listitem == 0)//AccountBan
    {

    }
    else if(listitem == 1)//IPBan
    {

    }
    else if(listitem == 2)//TimeBan
    {

    }
    }
    return 1;
    }