Nun ich will einen befehl machen mit dem ich eine bestimmte gruppe an leuten anzeigen kann(zb. die Cops)
for(new i=0; i<GetMaxPlayers; i++)
{
if(GetPVarInt(playerid,"fraktion")==1)//Beispiel
{
}
//Was muss ich jetzt machen?
}
Nun ich will einen befehl machen mit dem ich eine bestimmte gruppe an leuten anzeigen kann(zb. die Cops)
for(new i=0; i<GetMaxPlayers; i++)
{
if(GetPVarInt(playerid,"fraktion")==1)//Beispiel
{
}
//Was muss ich jetzt machen?
}
schleife ?
schleife ?
UNNÖTIG?
for(new i=0; i<GetMaxPlayers; i++)
{
new string[128],name[MAX_PLAYER_NAME];
GetPlayerName(playerid,name,sizeof(name));
if(GetPVarInt(playerid,"fraktion")==1)//Beispiel
{
format(string,sizeof(string),"Member: %s",name);
}
SendClentMessage(playerid,FARBE,string);
//Was muss ich jetzt machen?
}
//edit Thx ich probiers gleich mal aus
Ich hab dir mal was gemacht hier
das ist für alle fraktionen
ist player in fraktion 1 zeigt er alle an die in 1 sind so ist es dann auch mit 2/3 etc
bcmd:members(playerid,params[])
{
if(GetPVarInt(playerid,"fraktion")==0)return SendClientMessage(playerid,cRed,"Deine Fraktion kann diesen befehl nicht nutzen");
new message[128];
SendClientMessage(playerid,cGrey,"=====[Members online]=====");
for(new i = 0;i<MAX_PLAYERS;i++)
{
if(GetPVarInt(i,"fraktion")==GetPVarInt(playerid,"fraktion"))
{
format(message,sizeof message,"Member %s",PlayerName(i));
SendClientMessage(playerid,cGangchat,message);
}
}
return 1;
}
kommt an als was du es ausgeben willst nur als Text oder in einer MSGbox.
Nur als text reicht dir ein formatierter String
zum Beispiel:
new string[64], pName[MAX_PLAYER_NAME];
GetPlayerName(i,pName,sizeof(pName));
format(string,sizeof(string),"%s | Rang: %d",pName,SpielerInfo[i][Rang]);
SendClientMessage(playerid,Farbe,string);
also hier sendest du einen fomratierten string mit dem Namen und gegebfalls den Rang an den spieler welcher den command eingeben wird.
%s steht hier für den string pName, %d für eine Zahl.
bei strins kannst du das ganze zusammenfügen jedoch bedenken das man dann einen Zeilenbruch brauch /n oder ~n~ je nach dem ob MSG box oder
Textdraw.
und zum Syntex ist strins so aufgebaut das du einen großen string erstellen musst wo die nebenstrings zusammen geführt werden.
Beispiel:
new string[64], pName[MAX_PLAYER_NAME],string2[256];
GetPlayerName(i,pName,sizeof(pName));
format(string,sizeof(string),"%s | Rang: %d/n",pName,SpielerInfo[i][Rang]);
strins(string2,string,0);
//edit
@ sHain dein lösung ist nicht richtig
GetPlayerName(playerid,name,sizeof(name));
if(GetPVarInt(playerid,"fraktion")==1)//Beispiel
hier gehst du den spieler durch der den command eingeben hat nicht die anderen also playerid durch i ersetzen
@ xXSeXyBreaDXx
schau dir da eher -Chris sein commadn beispiel an das ist so richtig.
//edit 2
ahja das habe ich vergessen nicht
GetMaxPlayers;
sonder
GetMaxPlayers();
schnellste variante
new i;
for(; i < GetMaxPlayers(); i++)
aller beste such die foreach include by Y-Less
habe dabei mal eine frage ? ich habe vor sleber so ein Befehl zu erstellen aber
new string[64], pName[MAX_PLAYER_NAME];
GetPlayerName(i,pName,sizeof(pName));
format(string,sizeof(string),"%s | Rang: %d",pName,SpielerInfo[i][Rang]); // wird da nicht nur 1 Member angezeigt oder führt später einfahr so eine liste .. also
SendClientMessage(playerid,Farbe,string);
.. Member 1
Member 2
usw .. ?
wuerde ich auvh gern wissen