PLugins, nicht Filterscript.
- Tom
PLugins, nicht Filterscript.
- Tom
Dann fehlt auf dem Root 100%ig ne Datei. Nen Include oder sowas.
- Tom
BIst du dir sicher?
Nicht das die Spawndaten irgentwo nochmal überschrieben wurden.
- Tom
ZitatAlles anzeigenThis happens when..
i) No Player Classes were added.
ii) SetGravity is is too high.
iii) Setting the players position too far out the map.
iiii) Setting the players velocity too high.
iiiii) Spawning a boat on water. (Quite rare but does happen)
- 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
Gibts eine GetPlayerID(); funktion?
Auf SAMP Wiki ist eine (http://wiki.sa-mp.com/wiki/GetPlayerID)
Aber in Pawno gibts diese Funktion nicht.
- 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?
Der Text der angelegten List Items ist der Inputtext
MFG Arendium
Da es ja aber ein Listen-Dialog ist woher soll das Script dann wissen aus welcher Zeile er den Text beziehen soll?
- Tom
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;
}
format(string,sizeof(string),"Name: %s ID: %i Wanted(s): %d",SpielerName(i),i,GetPlayerWantedLevel(i));
ShowPlayerDialog(i,DialogSubjects,DIALOG_STYLE_LIST,"Verbrecher Akte",string,"Ok","Abbrechen");
Was willst du damit sagen?
PhilChan Stimmt, könnte man Probieren.
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
Versuchs mit einer Schleife (for) die alle Spieler durchgeht.
Aber wie sieht der String dann aus der Formatiert wird
Das ist das was ich nicht weiß.
%s\n%s%s%s oder wie?
- 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
stock IsCopOn() { for(new i=0; i< MAX_PLAYERS; i++) { if(IsACop(i)) { return 1; } } return 0; }
Geht immernoch nicht.
- Tom
Alles anzeigen
for(new i=0; i< MAX_PLAYERS; i++)
{
if(BlaCop[i] == 1)
{
//cop gefunden
}
}
hier eine Beispiel-Funktion um die Cops zu zählen: GetCopAnzahl()
GetCopAnzahl()
{
new amount = 0;
for(new i=0; i< MAX_PLAYERS; i++)
{
if(BlaCop[i] == 1 && IsPlayerConnected(i))
{
//cop gefunden
amount++;
}
}
return amount;
}
if(GetCopAnzahl() > 3)//gibt es mehr als 3 cops ?
oder besser wenn du nur fragen willst ob EINER existiert:
IstEinCopDa()
{
for(new i=0; i< MAX_PLAYERS; i++)
{
if(BlaCop[i] == 1 && IsPlayerConnected(i))
{
return 1;
}
}
return 0;
}
if(IstEinCopDa()) //ja nein ?
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:
Benutzen tu ich die Funktion so:
if(!IsCopOn) return ....
- Tom