Beiträge von Tomsen

    - Tom

    Nee, ich hab die ID nicht drin, will die ja durch nen Namen rausfinden.


    Aber ne andere Frage:


    Wie muss das aussehen wenn ich Spieler mit Wanteds auflisten will:


    format(string,sizeof(string),"Name: %s Wanted(s): %d",SpielerName(i),GetPlayerWantedLevel(i));
    ShowPlayerDialog(i,DialogSubjects,DIALOG_STYLE_LIST,"Verbrecher Akte",string,"Ok","Abbrechen");


    So zeigt es mir ja wahrscheinlich nur den ersten an den es mit Wanteds findet, aber es soll ja weitere Spieler auflisten, wie muss ich das im String schreiben? (for schleife hab ich schon nur jetzt nicht mit rein kopiert)
    Kann man weitere Listitems adden?


    - Tom

    Ich hatte mir das so gedacht das ich alle Spieler mit Wanteds durchgehe, deren Namen in einen String speichern und diesen String mit dem inputtext vergleichen um den Spieler zu indetifizieren.


    - Tom

    Danke das hilft mir schonmal weiter.
    Ich arbeite dann morgen weiter dran.


    Danke an alle die mir geholfen haben.


    - Tom


    #edit:


    Wie kann ich am besten jeden Spieler der Wanteds hat den Namen auslesen und speichern sodass ich die Namen der Wantedler dann vergleichen kann mit dem Inputtext?

    Und kann man listitem verallgemeinern ohne listitem==0 1 etc. angeben zu müssen sondern wenn er auf eins klickt?


    Oder wäre das dann einfach Response==1 und listitem einfach weglassen?


    - Tom

    Das Problem ist ja nur das die Abfrage wo ich die SpielerID wieder brauche ja erst bei OnDialogResponse kommt.
    Der Code oben von mir ist bei ocmd:... also dem Command drin.


    Kann man listitems verallgemeinern, das ich abfrage egal welches Listitem man nun drückt er nach einem namen sucht und daraus dann die ID zieht?


    - Tom


    #edit:

    ocmd:wanteds(...)
    {
    ...
    format(string,sizeof(string),"Name: %s Wanted(s): %d",SpielerName(i),GetPlayerWantedLevel(i));
    ShowPlayerDialog(i,DialogSubjects,DIALOG_STYLE_LIST,"Verbrecher Akte",string,"Ok","Abbrechen");
    ...
    }


    public OnDialogResponse(...)
    {
    if(dialogid)...
    if(response)
    {
    ...
    }
    if(listitem)
    {
    //id des angeklickten namen mit wanteds um neuen Dialog mit weiteren Infos zu öffnen
    }
    return 1;
    }

    Was ist dein genaues Vorhaben?



    Eine Wantedliste.
    Mit /wanteds sollen alle Spieler mit Wanteds angezeigt werden. (Name: %s Wanted(s): %d)
    Wenn man dann auf einen der Spieler drauf klickt soll sich ein weiterer Dialog mit weiteren Infos öffnen.


    Mein Problem liegt halt daran, wenn er auf listitem==2 zB klickt muss er aus dem String ja irgentwie den Namen entnehmen und
    daran die ID des Spielers fest machen um weitere Daten auslesen zu können.


    - Tom

    Heyho,


    ich hab ne Frage.
    Ich hoffe ihr könnt mir helfen.


    Und zwar:


    Wenn ich jetzt nen Dialog habe wo mir die Spieler mit Wanteds angezeigt werden und ich auf einen dieser klicke soll es die ID von demjenigem mit übermitteln der gerade angeklickt wurde.
    Da es ja jedes mal ein anderer sein kann weiß ich nicht wie ich das anfangen soll aus dem Text die ID herrauszufinden.


    So siehts momentan aus:

    format(string,sizeof(string),"Name: %s Wanted(s): %d",SpielerName(i),GetPlayerWantedLevel(i));
    ShowPlayerDialog(i,DialogSubjects,DIALOG_STYLE_LIST,"Verbrecher Akte",string,"Ok","Abbrechen");


    Wenn ich jetzt listitem 2 anklicke wie bekomm ich die playerid von %s raus?
    Geht das überhaupt?


    - Tom

    Wie erstell ich Platzhalter für Variablen deren Anzahl mir unbekannt ist?


    Beispiel: Ich hab nen Dialog, geb /test ein und dann sollen mir alle Spieler des Servers aufgelistet werden.
    Theoretisch macht man das ja mit %s und dann GetPlayerName etc.


    Allerdings weiß ich ja nicht wieviele auf dem Server zu dem Zeitpunkt sind wo jmd. /test eingibt.


    Wie muss ich den Code schreiben das für jeden Spieler nen Zeilen umbruch gemacht wird und jeder Spieler in dem Listendialog steht?


    - Tom

    Ok danke.


    Vorher ging das nicht da hatte ich nachher noch mehr Fehler, hatte aber die Klammern vergessen.


    - Tom


    Edit: Wie kann ich einen Timer für playerid killen?

    SetTimerEx("Bankraub",3000,1,"d",playerid);


    KillTimer(Bankraub(playerid));


    - Tom

    Ich habs jetzt so:


    stock IsCopOn()
    {
    for(new i=0; i< MAX_PLAYERS; i++)
    {
    if(IsACop[i])
    {
    return 1;
    }
    }
    return 0;
    }


    Aber wenn ich die Funktion benutze kommt ein Error:


    Code
    syntax error in the expression, or invalid function call


    Benutzen tu ich die Funktion so:


    if(!IsCopOn) return ....


    - Tom