Contractlisten 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

  • ocmd:contractlist(playerid,params[])
    {
    if(SpielerInfo[playerid][Fraktion] == 4)
    {
    new targetid;
    new text[256];
    format(text,sizeof(text),"*(%s - Contracted!)*",SpielerName(targetid));
    for(new i=0; i<GetMaxPlayers(); i++)
    {
    if(IsPlayerConnected(i))
    {
    if(SpielerInfo[i][Fraktion] == 4)
    {
    new string[128];
    format(string,sizeof(string),"%s - ????",SpielerName(targetid)); <-- Hier sollen die Namen & Kopfgelder in den Dialog geschrieben werden
    ShowPlayerDialog(playerid,STATS,DIALOG_STYLE_MSGBOX,"Contractliste",string,"0K","");
    }
    }
    }
    }
    return 1;
    }

    Ich habe die Zeile mal markiert, aber wie kann ich die Namen unter einnander schreiben lassen und nur wenn die angegeben spieler connectet sind? also z.b.


    BOMBER - 2500$ Kopfgeld
    Troll - 3250$ Kopfgeld. usw - Aber halt nur wenn die Spieler online sind?


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

  • Du musst den String über die gesamte Schleife aufbauen,nicht nur einen einzigen Eintrag.


    for(new i=0; i<GetMaxPlayers(); i++)
    {
    if(IsPlayerConnected(i))
    {
    if(SpielerInfo[i][Fraktion] == 4)
    {
    new string[128]; // String muss außerhalb der Schleife existieren und auch größer sein.128 Zeichen sind schnell voll
    format(string,sizeof(string),"%s - ????",SpielerName(targetid)); // Bevor du den String ergängzt,den alten einfügen. Am Ende nicht vergessen,eine neue Zeile zu öffnen
    ShowPlayerDialog(playerid,STATS,DIALOG_STYLE_MSGBOX,"Contractliste",string,"0K",""); // Das muss raus aus der Schleife. An eine Stelle,wo aber auch schon der String fertig formatiert ist.
    }
    }
    }
    }

  • ocmd:contractlist(playerid,params[])
    {
    if(SpielerInfo[playerid][Fraktion] == 4)
    {
    new targetid;
    new string[600];
    for(new i=0; i<MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i))
    {
    if(SpielerInfo[i][Fraktion] == 4)
    {
    format(string,sizeof(string),"%s%s - ????/n",string,SpielerName(targetid));
    }
    }
    }
    }
    ShowPlayerDialog(playerid,STATS,DIALOG_STYLE_MSGBOX,"Contractliste",string,"0K","");
    return 1;
    }


    So könnte es aussehen ;]


    Nur ein kleines Beispiel.


    Gruss: Sonic


    //Goldkiller: Ich mach die Lösungen extra nie fertig. Irgendwie kommen aber in Letzter Zeit immer wieder Experte und posten feritige Lösungen, Schade ... verfehlt langsam wirklich den Sinn und Zweck des Bereiches Scripting Base :( .

    I didn't hit you. I high fived your face.

    2 Mal editiert, zuletzt von Goldkiller ()

  • format(String,sizeof(String),"%s %i Kopfgeld\n%s %i Kopfgeld\n%s %i Kopfgeld\n",String);
    So aber wie kann ich jetzt z.b. 3x Target ID reinschreiben?


    Müsste ja denn eigentlich da stehen, wo "String am Ende" steht.


    //Edit: ah okey, der String gibt ja targetid aus am Ende, sorry bin bisschen blöd. - Danke ;)


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

  • BOMBER... Schau dir mal den obigen Post mal genauer an. Der Code baut dir den String Stück für Stück auf und lässt ihn am Ende dem Dialog ausgeben ;]


    Gruss: Sonic


    format(string,sizeof(string),"%s%s - ????/n",string,SpielerName(targetid)); <-- %s %s = Ausgabe des Strings, SpielerName(targetid)) -> Gibt den Namen des Spieler der Contractet wurde aus, oder hab ich was falsch verstanden? \n umbricht die Zeile 1 weiter runter, oder nicht?


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

  • Jap, danke euch beiden, kann geschlossen werden, werds denn nachher mal testen, ansonsten meld ich mich noch mal ;)


    %s %s ist auch klar -> String Ausgabe. :)


    //Closed


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

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen