Dialog mit string geht nicht!

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
  • Steht oben:


    Zitat

    Ich möchte machen , dass man dann per Liste einen aus der Contractist annehmen kann.
    Nur es wird es auf 0 gesetzt , wegen dem listitem.


    Wie kann ich machen , dass zB. ID10 listitem 5 ist , und man listitem5 auswählt , die Variable auf 10 gesetzt wird?



    new pContract[MAX_PLAYERS];


    if(dialogid == Dialog_Contracts)
    {
    if(response==1)
    {
    pContract[playerid]=listitem;
    new string[256];
    format(string,sizeof(string),"Du hast den Contract auf %s angenommen.",PlayerName(pContract[playerid]));
    SendClientMessage(playerid,Lila,string);
    }
    }


    ocmd:contractlist(playerid,params[])
    {
    new Spieler[64];
    new Spieler2[64];
    new string[600];
    format(Spieler,sizeof(Spieler),"Spieler/%s.txt",PlayerName(playerid));
    if(dini_Int(Spieler,"Fraktion")==3)
    {
    for(new i=0; i<MAX_PLAYERS; i++)
    {
    format(Spieler2,sizeof(Spieler2),"Spieler/%s.txt",PlayerName(i));
    if(IsPlayerConnected(i) && dini_Int(Spieler2,"Kopfgeld")>0)format(string,sizeof(string),"%s %i€\n",PlayerName(i),dini_Int(Spieler2,"Kopfgeld"));
    }
    ShowPlayerDialog(playerid,Dialog_Contracts,DIALOG_STYLE_LIST,"Contracts:",string,"Annehmen","Abbrechen");
    }
    return 1;
    }

  • Ich bin mir nicht sicher, ob ich dein Problem 3 richtig verstehe, aber falls ja, sollte dir dieser Codeschnipsel von mir weiterhelfen.


    playerNameToId (nameValue[]) {
    new tempString[MAX_PLAYER_NAME];
    for (new i = 0; i < MAX_PLAYERS; i ++) {
    if (IsPlayerConnected(i)) {
    GetPlayerName(i, tempString, sizeof(tempString));
    if (!strcmp(tempString, nameValue, true, strlen(nameValue))) {
    return i;
    }
    }
    }
    return 0;
    }


    Somit hast du bei LIST Dialogen immer die Möglichkeit, den Namen wieder in eine ID zu konvertieren.


    Mein CS:GO Server: 62.75.168.39:27016


    Ich bin so hungrig, dass ich vor lauter Durst nicht weiß, was ich rauchen soll - so müde bin ich!
    Freedom is just another word for 'Nothing left to lose'


  • Danke schonmal dafür ^^


    Hab n paar Fragen ;)


    1) Ist das ein Stock?
    2) Wie wende ich es an?

  • Ich habe es jetzt als native, kannst aber auch stock davor schreiben, oder es als public deklarieren.
    Anwenden tust du es überall da, wo du die ID des Spielers brauchst.


    Gehen wir mal davon aus, du hast den Namen in der Variable "spielerName" gespeichert.
    Dann könntest du z.b.:


    printf("Die Spieler ID des Spielers %s lautet %i", spielerName, playerNameToId(spielerName));


    machen.


    Mein CS:GO Server: 62.75.168.39:27016


    Ich bin so hungrig, dass ich vor lauter Durst nicht weiß, was ich rauchen soll - so müde bin ich!
    Freedom is just another word for 'Nothing left to lose'


  • Okay und bei listitem?
    playerNameToid(listitem) oder playerNametoid(PlayerName(listitem)) oder wie ? :/

  • Das kommt drauf an, wenn dein listitem wirklich NUR der Spielername ist, muss es playerNameToId(inputtext) sein.


    Mein CS:GO Server: 62.75.168.39:27016


    Ich bin so hungrig, dass ich vor lauter Durst nicht weiß, was ich rauchen soll - so müde bin ich!
    Freedom is just another word for 'Nothing left to lose'

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