Moin
Ich hab mal eine kleine Frage,
Und zwar wie erstellt man einen Befehl der mehrere Spieler in einer Liste anzeigen lässt, also Beispiel.
Fraktions Mitglieder:
- Stinki, Torsten, harald, usw..
hoffe ihr habt meine Frage verstanden
Grüße
Moin
Ich hab mal eine kleine Frage,
Und zwar wie erstellt man einen Befehl der mehrere Spieler in einer Liste anzeigen lässt, also Beispiel.
Fraktions Mitglieder:
- Stinki, Torsten, harald, usw..
hoffe ihr habt meine Frage verstanden
Grüße
Tralala. Ohne Gewähr:
new string[1024]; //bzw. die Größe, die du brauchst
for(new i; i < MAX_PLAYERS; i++)
{
if(!IsPlayerConnected(i))continue;
if(Var[i] == 5000)format(string, sizeof(string), "%s\nDer Typ heißt %s", string, name);
}
ShowPlayerDialog(string...
könntest du es mir ein wenig mehr erklären weil nur mit einem Code selber kann ich nicht viel anfangen
Grüße
Es wird ein String erstellt.
Dann folgt eine Schleife, die alle Spieler durchgeht & überprüft, ob der jeweilige Spieler online ist.
Wenn nicht, springt die Schleife gleich zum nächsten über.
Die letzte Abfrage musst du so an das anpassen, was du abfragen möchtest - z.B.: "if(GetPVarInt(i, "AdminLevel") > 0)".
Folglicherweise würde bei dem Beispiel der momentane String erweitert.
Das "format" sorgt mit dem ersten "%s" dafür, dass der String nicht komplett neu "gefüllt" wird, sondern an den bisherigen Inhalt
das "\n" und den Text dahinter hinzufügt ("\n" steht für eine neue Zeile - steht auch irgendwo im Wiki).
Nach der Schleife fehlt noch ein "ShowPlayerDialog" mit dem formatierten String & das wars schon.
Im Beispiel würden alle Spieler aufgelistet werden, deren Adminlevel > 0 ist.
Also, es funktioniert soweit eigentlich alles bis auf das der Spieler der eigentlich kein Admin ist, in der "Admin Online" liste angezeigt wird.
eigentlich sollten dort nur Admins angezeigt werden die auch den Admin Rang besitzen
Code:
public OnPlayerCommandText(playerid, cmdtext[])
{
if(!strcmp("/admins", cmdtext, true))
{
SendClientMessage(playerid,GRUN,"Admins online:");
new string[128],name[MAX_PLAYER_NAME],var;
for(new i=0;i<MAX_PLAYERS;i++)
{
if(IsPlayerConnected(i) && isPlayerAnAdmin(i,1))
{
GetPlayerName(i,name,sizeof(name));
format(string, sizeof(string), "- Admin %s",SpielerName(i));
SendClientMessage(playerid,WEIS,string);
var++;
}
}
if(!var)
SendClientMessage(playerid,ROT,"Kein Admin Online");
}
new string[128];
format(string,sizeof(string),"{A8BCB5}Der angebende Befehl {B7320E}%s {A8BCB5}Existiert nicht",cmdtext);
return SendClientMessage(playerid,WEIS,string);
}
Grüße