Spieler in Dialog_style_list

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
  • Jo


    for(new i; i<MAX_PLAYERS; i++)
    {
    if(!IsPlayerConnected(i)) || !Variable) continue;
    format(buffer,sizeof(buffer)," ..",....);
    strins(string,buffer,strlen(string),sizeof(string));
    }
    ShowPlayerDialog(playerid,dialog,DIALOG_STYLE_LIST,"...",string,"....","");

  • Zitat

    wenn man drauf drückt das eine Funktion mit den Spieler ausgeführt wird ?

    Also angenommen manche Spieler habe die variable 3 zugewiesen bekommen , nun möchte ich wen ich /players mache das sie alle in einer Liste im Dialog erscheinen & wen ich dort draufdrücke spece ich sie automatisch,

  • Ja.


    Oben im code:
    new SDArray[MAX_PLAYERS];


    Wo du den Dialog anzeigen willst:
    new j, string[1024];
    for(new i=0; i<MAX_PLAYERS; i++)
    {
    if(SpielerVariable == 3)
    {
    SDArray[j] = i;
    j++;
    format(string, sizeof(string), "%s%s\n", string,SpielerName(playerid));
    }
    }
    ShowPlayerDialog(...);


    Und bei OnDialogResponse, bei dem definierten Dialog:
    new id = SDArray[listitem]; //Die ID des Spielers den du angeklickt hast, mit der kannst du dann weiter machen.
    SpecPlayer(id); //z.B.

  • Also angenommen manche Spieler habe die variable 3 zugewiesen bekommen , nun möchte ich wen ich /players mache das sie alle in einer Liste im Dialog erscheinen & wen ich dort draufdrücke spece ich sie automatisch,


    Das mit dem Dialog ist nicht das Problem.. das Problem ist du musst den Namen richtig übergeben & zwischenspeichern bzw den Namen in die ID
    umwandeln ^^

  • Ach man Leute. Probiert doch erst mal den Code aus, bevor ihr sagt, dass es nicht tun wird...


    Ja, du kannst es genau so stumpf verwenden:
    PlayerSpectatePlayer(playerid,SDArray[listitem]);
    Das geht. Ich hab es dir extra so einfach wie möglich gemacht. ;)



    123marvin123: Bitte den Thread vorher lesen, dann posten. Was du da gepostet hast, hat gar nichts mit dem Thema zu tun. Danke :)


  • Ich weiß um was es im Thema geht. Das was ich geschrieben habe muss unter OnDialogResponse, ich hab es bei einer Include gesehen wo es so aufgebaut war und funktioniert hat!


  • Die Spieler werden angezeigt , aber wenn ich draufklicke passiert nichts.


  • Die Spieler werden angezeigt , aber wenn ich draufklicke passiert nichts.


    Hmm, ich hab es grade getestet und es funktioniert ohne Probleme:

    case DIALOG_TEST:
    {
    if(response)
    {
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(!strcmp(inputtext,SpielerName(i),true))
    {
    SendClientMessageX(playerid,Rot,"%s",SpielerName(i));
    return 1;
    }
    }
    }
    }
    ocmd:diatest(playerid,params[])
    {
    new string[1024];
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(!IsPlayerConnected(i))continue;
    format(string,sizeof(string),"%s%s\n",string,SpielerName(i));
    }
    ShowPlayerDialog(playerid,DIALOG_TEST,DIALOG_STYLE_LIST,"Test",string,"K","K");
    return 1;
    }


    Es wäre gut wenn man eine 2. Person hat um es auch wirklich auf Funktionalität zu prüfen

  • Tatsächlich funktioniert das, wenn nur der Spielername in einer Zeile (listitem) steht.


    Mann muss zwar alle Spieler durchlaufen, bis man den entsprechenden Spieler gefunden hat, dafür benötigt man aber auch kein Array zum zwischenspeichern der Reihenfolge.


    Denn in inputtext steht bei einer Liste der Inhalt der ausgewählten Zeile, in dem Falle der Name


  • das Spectaten funkt bei mir nicht..