Über Listen Dialog ID des Spielers speichern

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 Abend,


    ich bin zurzeit am Scripten eines Wantedsystems welches über mehrere Listen Dialoge läuft.
    Allerdings stoße Ich gerade auf ein Problem bei der Sache. Ich weiß nicht wie ich die ID des Spielers über den klick auf den Dialog speichern bzw. abfragen soll.


    Hier ein Auszug aus dem Code:


    new string[512];
    new playerwithwanteds;
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i))
    {
    if(Spieler[i][pWanteds] > 0)
    {
    format(string, sizeof(string), "%s\n%s(%i) | Wantedlevel: %i\n", string, GetName(i), i, Spieler[i][pWanteds]);
    playerwithwanteds++;
    }
    }
    }
    if(playerwithwanteds == 0)
    {
    format(string, sizeof(string), "Datenbank leer...");
    }


    Im nächsten Schritt möchte ich, dass wenn der Spieler auf den Wanted klickt, er in einen weiteren Dialog geführt wird und dort dem Spieler die Wanteds entziehen/hinzufügen kann etc.


    case DIALOG_FRAKTIONSHELP_3:
    {
    if(response)
    {
    format(string, sizeof(string),"%sGesuchter: %s\nWanteds: %s\n\n", string, GetPlayerName(i), Spieler[i][pWanteds]);
    format(string, sizeof(string),"Wanteds vergeben\nWanteds clearen");
    ShowPlayerDialog(playerid, DIALOG_FRAKTIONSHELP_4, DIALOG_STYLE_LIST, "Wanteddatenbank: Akte",string, "Weiter", "Zurück");
    }
    else if(!response) return cmd_fraktion(playerid);
    }


    Ich hoffe ihr habt eine Idee wie ich es anstellen kann, denn ich wüsste nicht wie ich es anstellen soll.


    Grüße!

  • So sollte es klappen:


    MfG :thumbup:


    Mit freundlichen Grüßen
    German_ScripterHD

  • Danke, ich werde es nachher mal ausprobieren! :)


    //Edit:
    Mir werden der Spielername und das Wantedlevel nicht angezeigt. Ich denke es liegt an diesen Warnings, allerdings finde ich das Problem nicht.


    E:\SA-MP\gamemodes\reallife.pwn(7687) : warning 202: number of arguments does not match definition
    E:\SA-MP\gamemodes\reallife.pwn(7687) : warning 202: number of arguments does not match definition


    Einmal editiert, zuletzt von Creyo ()

  • Versuch es mal so:



    MfG :thumbup:


    Mit freundlichen Grüßen
    German_ScripterHD

  • Danke, es hat funktionier. Ich musste allerdings noch die beiden Formats zusammenpacken damit es klappen konnte, da er sonst nur den 2. Format angezeigt hatte.


    C
    format(string, sizeof string,"Gesuchter: %s\nWanteds: %d\n\nWanteds vergeben\nWanteds clearen", PlayerName, Spieler[i][pWanteds]); 
    
    
    ShowPlayerDialog(playerid, DIALOG_FRAKTIONSHELP_4, DIALOG_STYLE_LIST, "Wanteddatenbank: Akte",string, "Weiter", "Zurück");


    Danke für die Hilfe! :)

  • Die oben präsentierte Lösung ist nicht korrekt. Damit speichert man keine Spieler-ID und kann diese auch nicht ermitteln.
    Du musst die Spieler-ID eines Listenobjekts beim Erstellen des Texts für den Dialog schon in Variablen speichern und kannst diese dann in einem Array direkt mit der entsprechenden Position im Listendialog abspeichern.
    Sobald der Spieler den Dialog dann beantwortet kann wieder mit dem "listitem" auf das Array zugegriffen und somit die entsprechende Spieler-ID ermittelt werden.