He ich wollte mal fragen wie ich am besten die Spieler ID in mein Dialog raus finden kann so das ich ihn Orten kann?
den bis her hab ich es so aba nun weis ich nicht weiter
if(dialogid == DIALOG_WANTEDS)
{
if (response)
{
if(listitem == 0)
{
new string[128],name[MAX_PLAYERS];
GetPlayerName(playerid,name,sizeof name);
if(sInfo[playerid][sSpieler_wanteds] == 1)
{
format(string,sizeof(string),"Ackte Von %s\n",SpielerName(playerid));
format(string,sizeof(string),"%sVerbrechen: %s\n",string,sInfo[playerid][sSpieler_SternGrund]);
ShowPlayerDialog(playerid, DIALOG_WANTEDS, DIALOG_STYLE_MSGBOX, name,string, "Schließen", "Behandeln");
}
else if(sInfo[playerid][sSpieler_wanteds] == 2)
{
format(string,sizeof(string),"Ackte Von %s\n",SpielerName(playerid));
format(string,sizeof(string),"%sVerbrechen: %s\n",string,sInfo[playerid][sSpieler_SternGrund]);
format(string,sizeof(string),"%sVerbrechen: %s\n",string,sInfo[playerid][sSpieler_SternGrund2]);
ShowPlayerDialog(playerid, DIALOG_WANTEDS, DIALOG_STYLE_MSGBOX, name,string, "Schließen", "Behandeln");
}
else if(sInfo[playerid][sSpieler_wanteds] == 3)
{
format(string,sizeof(string),"Ackte Von %s\n",SpielerName(playerid));
format(string,sizeof(string),"%sVerbrechen: %s\n",string,sInfo[playerid][sSpieler_SternGrund]);
format(string,sizeof(string),"%sVerbrechen: %s\n",string,sInfo[playerid][sSpieler_SternGrund2]);
format(string,sizeof(string),"%sVerbrechen: %s\n",string,sInfo[playerid][sSpieler_SternGrund3]);
ShowPlayerDialog(playerid, DIALOG_WANTEDS, DIALOG_STYLE_MSGBOX, name,string, "Schließen", "Behandeln");
}
else if(sInfo[playerid][sSpieler_wanteds] == 4)
{
format(string,sizeof(string),"Ackte Von %s\n",SpielerName(playerid));
format(string,sizeof(string),"%sVerbrechen: %s\n",string,sInfo[playerid][sSpieler_SternGrund]);
format(string,sizeof(string),"%sVerbrechen: %s\n",string,sInfo[playerid][sSpieler_SternGrund2]);
format(string,sizeof(string),"%sVerbrechen: %s\n",string,sInfo[playerid][sSpieler_SternGrund3]);
format(string,sizeof(string),"%sVerbrechen: %s\n",string,sInfo[playerid][sSpieler_SternGrund4]);
ShowPlayerDialog(playerid, DIALOG_WANTEDS, DIALOG_STYLE_MSGBOX, name,string, "Schließen", "Behandeln");
}
else if(sInfo[playerid][sSpieler_wanteds] == 5)
{
format(string,sizeof(string),"Ackte Von %s\n",SpielerName(playerid));
format(string,sizeof(string),"%sVerbrechen: %s\n",string,sInfo[playerid][sSpieler_SternGrund]);
format(string,sizeof(string),"%sVerbrechen: %s\n",string,sInfo[playerid][sSpieler_SternGrund2]);
format(string,sizeof(string),"%sVerbrechen: %s\n",string,sInfo[playerid][sSpieler_SternGrund3]);
format(string,sizeof(string),"%sVerbrechen: %s\n",string,sInfo[playerid][sSpieler_SternGrund4]);
format(string,sizeof(string),"%sVerbrechen: %s\n",string,sInfo[playerid][sSpieler_SternGrund5]);
ShowPlayerDialog(playerid, DIALOG_WANTEDS, DIALOG_STYLE_MSGBOX, name,string, "Schließen", "Behandeln");
}
else if(sInfo[playerid][sSpieler_wanteds] == 6)
{
format(string,sizeof(string),"Ackte Von %s\n",SpielerName(playerid));
format(string,sizeof(string),"%sVerbrechen: %s\n",string,sInfo[playerid][sSpieler_SternGrund]);
format(string,sizeof(string),"%sVerbrechen: %s\n",string,sInfo[playerid][sSpieler_SternGrund2]);
format(string,sizeof(string),"%sVerbrechen: %s\n",string,sInfo[playerid][sSpieler_SternGrund3]);
format(string,sizeof(string),"%sVerbrechen: %s\n",string,sInfo[playerid][sSpieler_SternGrund4]);
format(string,sizeof(string),"%sVerbrechen: %s\n",string,sInfo[playerid][sSpieler_SternGrund6]);
ShowPlayerDialog(playerid, DIALOG_WANTEDS, DIALOG_STYLE_MSGBOX, name,string, "Schließen", "Behandeln");
}
}
}
else
{
ocmd_orten(playerid," ");
}
}
wer cool wen mir da wer helfen kann
lg kifkat
//edit vielleicht ist der Befehl noch wichtig
ocmd:gesuchte(playerid, params[])//wantedliste
{
if(sInfo[playerid][sSpieler_fraktion] == 1 || sInfo[playerid][sSpieler_arbeit] == 1)
{
new string[128],string2[128];
for(new i;i<MAX_PLAYER_NAME;i++)
if(sInfo[i][sSpieler_wanteds] > 0)
{
format(string2,sizeof(string2),"Aktuell gesuchte Personen %s",i);
format(string,sizeof(string),"%s%s Sterne: %d\n",string,SpielerName(i),sInfo[i][sSpieler_wanteds]);
ShowPlayerDialog(playerid,DIALOG_WANTEDS,DIALOG_STYLE_LIST,string2,string,"OK","Abbrechen");
}
}else IsAdmin
return 1;
}
Spieler ID im Dialog raus finden
- Kevin B.
- Geschlossen
- Erledigt
-
-
Ich verstehe nicht ganz, welche id wo wann wie geortet werden soll.
-
halt wen ich auf den Spieler Klicke das den die Akte von den Spieler Angezeigt wirt und das ich den auf den Button Behandeln Klicken kann und der Spieler mir auf der Map angezeigt wirt
-
Sollte dir helfen:
http://wiki.sa-mp.com/wiki/OnPlayerClickPlayer -
ich Rufe erst das Dialog auf und den Klick ich auch den Spieler der Gesucht wirt.
wie finde ich Die id des Spieler da raus?das er mir auch die richtigen Daten anzeigt?
//Edit hat da noch wer eine idee?wie man es machen könnte?
//Edit ich hab mal ein video gemacht da ich die Beführstung habe das ihr ihren wie mein Text nicht Anschlüsselt bekommt
[video]Externer Inhalt www.youtube.comInhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.Durch die Aktivierung der externen Inhalte erklären Sie sich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt.
//edit kann mir da bitte wer helfen für mich ist es wichtig -
Du müsstest listitem als Index benutzen und wieder alle Spieler durchlaufen. listitem + 1 = Der x. Spieler in der Liste (nicht mit i vergleichen, sondern eine parelle Variable, falls der Spieler online ist).
-
wie als Index?
Kleines Beispiel vielleicht? -
listitem speichert halt den ausgewählten Index in der Liste.
Wenn du nochmal die Spieler durchläufst mit einer Schleife, dann muss es dann der (listitem +1). Spieler sein (sofern dieser aufm Server noch ist).new aktuell = 0;
for(playerloop) if(isConnected) ++aktuell; if(aktuell == listitem + 1) => spieler gefunden (i) -
also so ?
new aktuell = 0;
for(playerloop) if(IsPlayerConnected) ++aktuell;
if(aktuell == listitem + 1))
{
new string[128],name[MAX_PLAYERS];
GetPlayerName(playerid,name,sizeof name);
if(sInfo[playerid][sSpieler_wanteds] == 1)
{
format(string,sizeof(string),"%sAkte Von %s\n",string,SpielerName(aktuell));
nur wie definiere ich playerloop Richtig? -
for(new i=0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i) && !IsPlayerNPC(i))
{
aktuell += 1;
if(aktuell == listitem + 1)
{
// Es könnte der Spieler sein, falls keine in dem Zeitraum dazu bzw. weggegangen ist. // Seine id ist aber i
}
}
} -
hier mal ein kleiner Abschnitt Klappt leider noch imma nicht
for(new i=0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i) && !IsPlayerNPC(i))
{
new aktuell = 0;
aktuell += 1;
if(aktuell == listitem + 1)
{
new string[128],name[MAX_PLAYERS];
GetPlayerName(playerid,name,sizeof name);
if(sInfo[playerid][sSpieler_wanteds] == 1)
{
format(string,sizeof(string),"%sAkte Von %s\n",string,SpielerName(i));
format(string,sizeof(string),"%sVerbrechen: %s\n",string,sInfo[i][sSpieler_SternGrund]);
ShowPlayerDialog(playerid, DIALOG_WANTEDS, DIALOG_STYLE_MSGBOX, name,string, "Schließen", "Behandeln");
} -
Versuch das mal so:
if(dialogid == DIALOG_WANTEDS)
{
if(response)
{
new s[MAX_PLAYER_NAME];
strmid(s,inputtext,0,MAX_PLAYER_NAME);
new id=GetPlayerID(s);
//dein code
}
return true;
}
GetPlayerID(s[])
{
new n[MAX_PLAYER_NAME],len,same;
for(new i;i!=MAX_PLAYERS;i++)
{
GetPlayerName(i,n,MAX_PLAYER_NAME);
len=strlen(n);
for(new k=9,l=strlen(s); k!=l;i++)
{
if(s[k]==n[k])
{
same++;
if(same==len&&s[k+1]=='\n') return i;
if(same==len&&s[k+1]!='\n') { same=0; break; }
}
}
}
return INVALID_PLAYER_ID
}
Ungetestet dürfte aber funktionieren -
hab es nun so
if(dialogid == DIALOG_WANTEDS)
{
if(response)
{
new s[MAX_PLAYER_NAME];
strmid(s,inputtext,0,MAX_PLAYER_NAME);
new id = GetPlayerID(s);
new string[128],name[MAX_PLAYERS];
GetPlayerName(playerid,name,sizeof name);
if(sInfo[playerid][sSpieler_wanteds] == 1)
{
format(string,sizeof(string),"%sAkte Von %s\n",string,SpielerName(id));
format(string,sizeof(string),"%sVerbrechen: %s\n",string,sInfo[id][sSpieler_SternGrund]);
ShowPlayerDialog(playerid, DIALOG_WANTEDS, DIALOG_STYLE_MSGBOX, name,string, "Schließen", "Behandeln");
}
else if(sInfo[playerid][sSpieler_wanteds] == 2)
{
format(string,sizeof(string),"%sAkte Von %s\n",string,SpielerName(id));
format(string,sizeof(string),"%sVerbrechen: %s\n",string,sInfo[id][sSpieler_SternGrund]);
format(string,sizeof(string),"%sVerbrechen: %s\n",string,sInfo[id][sSpieler_SternGrund2]);
ShowPlayerDialog(playerid, DIALOG_WANTEDS, DIALOG_STYLE_MSGBOX, name,string, "Schließen", "Behandeln");
}
else if(sInfo[playerid][sSpieler_wanteds] == 3)
{
format(string,sizeof(string),"%sAkte Von %s\n",string,SpielerName(id));
format(string,sizeof(string),"%sVerbrechen: %s\n",string,sInfo[id][sSpieler_SternGrund]);
format(string,sizeof(string),"%sVerbrechen: %s\n",string,sInfo[id][sSpieler_SternGrund2]);
format(string,sizeof(string),"%sVerbrechen: %s\n",string,sInfo[id][sSpieler_SternGrund3]);
ShowPlayerDialog(playerid, DIALOG_WANTEDS, DIALOG_STYLE_MSGBOX, name,string, "Schließen", "Behandeln");
}
else if(sInfo[playerid][sSpieler_wanteds] == 4)
{
format(string,sizeof(string),"%sAkte Von %s\n",string,SpielerName(id));
format(string,sizeof(string),"%sVerbrechen: %s\n",string,sInfo[id][sSpieler_SternGrund]);
format(string,sizeof(string),"%sVerbrechen: %s\n",string,sInfo[id][sSpieler_SternGrund2]);
format(string,sizeof(string),"%sVerbrechen: %s\n",string,sInfo[id][sSpieler_SternGrund3]);
format(string,sizeof(string),"%sVerbrechen: %s\n",string,sInfo[id][sSpieler_SternGrund4]);
ShowPlayerDialog(playerid, DIALOG_WANTEDS, DIALOG_STYLE_MSGBOX, name,string, "Schließen", "Behandeln");
}
else if(sInfo[playerid][sSpieler_wanteds] == 5)
{
format(string,sizeof(string),"%sAkte Von %s\n",string,SpielerName(id));
format(string,sizeof(string),"%sVerbrechen: %s\n",string,sInfo[id][sSpieler_SternGrund]);
format(string,sizeof(string),"%sVerbrechen: %s\n",string,sInfo[id][sSpieler_SternGrund2]);
format(string,sizeof(string),"%sVerbrechen: %s\n",string,sInfo[id][sSpieler_SternGrund3]);
format(string,sizeof(string),"%sVerbrechen: %s\n",string,sInfo[id][sSpieler_SternGrund4]);
format(string,sizeof(string),"%sVerbrechen: %s\n",string,sInfo[id][sSpieler_SternGrund5]);
ShowPlayerDialog(playerid, DIALOG_WANTEDS, DIALOG_STYLE_MSGBOX, name,string, "Schließen", "Behandeln");
}
else if(sInfo[playerid][sSpieler_wanteds] == 6)
{
format(string,sizeof(string),"%sAkte Von %s\n",string,SpielerName(id));
format(string,sizeof(string),"%sVerbrechen: %s\n",string,sInfo[id][sSpieler_SternGrund]);
format(string,sizeof(string),"%sVerbrechen: %s\n",string,sInfo[id][sSpieler_SternGrund2]);
format(string,sizeof(string),"%sVerbrechen: %s\n",string,sInfo[id][sSpieler_SternGrund3]);
format(string,sizeof(string),"%sVerbrechen: %s\n",string,sInfo[id][sSpieler_SternGrund4]);
format(string,sizeof(string),"%sVerbrechen: %s\n",string,sInfo[id][sSpieler_SternGrund6]);
ShowPlayerDialog(playerid, DIALOG_WANTEDS, DIALOG_STYLE_MSGBOX, name,string, "Schließen", "Behandeln");
}
}
return true;
}
stock GetPlayerID(s[])
{
new n[MAX_PLAYER_NAME],len,same;
for(new i;i!=MAX_PLAYERS;i++)
{
GetPlayerName(i,n,MAX_PLAYER_NAME);
len=strlen(n);
for(new k=9,l=strlen(s); k!=l;i++)
{
if(s[k]==n[k])
{
same++;
if(same==len&&s[k+1]=='\n') return i;
if(same==len&&s[k+1]!='\n') { same=0; break; }
}
}
}
return INVALID_PLAYER_ID;
}wen ich /gesuchte eingebe öffnet sich das Dialog und werden die Spieler angezeigt aba wen ich rauf Klicke und es noch mal eingebe geht nix mehr kein befehl Mehr -
Zeig mir mal den dialog wanteds
-
den befehl meiteste oda? den Dialog ist ja oben
ocmd:gesuchte(playerid, params[])//wantedliste
{
if(sInfo[playerid][sSpieler_fraktion] == 1 || sInfo[playerid][sSpieler_arbeit] == 1)
{
new string[128],string2[128];
for(new i;i<MAX_PLAYER_NAME;i++)
if(sInfo[i][sSpieler_wanteds] > 0)
{
format(string2,sizeof(string2),"Aktuell gesuchte Personen");
format(string,sizeof(string),"%s%s Sterne: %d\n",string,SpielerName(i),sInfo[i][sSpieler_wanteds]);
ShowPlayerDialog(playerid,DIALOG_WANTEDS,DIALOG_STYLE_LIST,string2,string,"OK","Abbrechen");
}
}else IsAdmin
return 1;
} -
Bleibt wie vorher
-
Dann lass mal inputtext ausgeben, ich glaub ich hab da gerade nen denkfehler
sprich
SendClientMessage(playerid,-1,inputtext); -
er zeigt mir den an Kifkat Sterne 6 und wen ich auf Bus_Bot Klicke kommt Bus_BOT Sterne: 1, es kommt kein Dialog nix und befehl Funktionieren danach auch nicht mehr
-
So fehler gefunden
ersetz den stock einfach mit dem hier
stock GetPlayerID(s[])
{
new n[MAX_PLAYER_NAME],tmp[MAX_PLAYER_NAME];
for(new i;i!=MAX_PLAYERS;i++)
{
format(tmp,MAX_PLAYER_NAME,s);
GetPlayerName(i,n,MAX_PLAYER_NAME);
strdel(tmp,MAX_PLAYER_NAME-(MAX_PLAYER_NAME-strlen(n)),MAX_PLAYER_NAME);
if(!strcmp(tmp,n,true)) return i;
}
return INVALID_PLAYER_ID;
} -
danke nun Funktioniert es
-
-
breadfish.de
Hat das Thema geschlossen.