Spieler aus Dialogen auswählen? :o

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
  • Mit diesem befehl lasse ich alle leute auf dem Server auflisten.
    Wie bekomme ich aber bei OnDialogResponse die ID des spielers herraus?
    Na klar, durch listitem, jedoch wenn es keine ID 15 gibt heißt 13, 14,16 ist die ID 16 bei listitem ja die 15............ (schwer zu erklären)
    Ich hoffe jemand versteht mein problem und kann mir helfen ._.


    ocmd:beispiel(playerid,params[]){
    new str[400],str1[30];
    for(new i; i<MAX_PLAYERS; i++){
    if(IsPlayerConnected(i)){
    format(str1,sizeof(str),"[ID: %d] - Name: %s\n",i,PlayerName(i));
    strcat(str,str1);
    }
    }
    ShowPlayerDialog(playerid,30,DIALOG_STYLE_LIST,"Alle Spieler",str,"Auswählen","Abbrechen");
    return 1;
    }

  • Willst du das wirklich für alle spieler haben? dann wird es was voll bei mehr als 30 Spielern.


    ansonsten gibt es 2 Wege:
    Nummer 1: Ein Arry welche für jedes Listitem die Playerid zwichenspeichert.


    Nummer 2: Schreibe die Liste aller:
    0 - [DT]Sniper
    2 - eLiTe.
    10 - Blackace


    denn wenn du auf ein listitem klickst steht bei dialog repsonse der angeklickte text wenn du also den ersten spieler auswählst steht bei inputtext
    "0 - [DT]Sniper"
    dann kannst du string funktionen nutzen um die id herauszuholen und dann hast du sie.

  • Das mit Inputtext, würdest du das mit strdel und danach strval angehen?
    wie würdest du dich daran antasten?


    Ich habe dir mal eine Funktion geschrieben:


    stock GetID(const string[])
    {
    new pos = strfind(string," ");
    if(pos == -1) return -1;
    new tmp[8];
    strmid(tmp,string,pos,strfind(string,"]",false,pos),sizeof tmp);
    return strval(tmp);
    }


    In dem Parameter inputtext steht der String drinnen und die playerid von dem angeklickten Spieler bekommst du so:


    new pID = GetID(inputtext);


    PS: Die Funktion ist auf deinen String ausgelegt.


    mfg. :thumbup:

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S