hey,
Wie kann ich machen dass zufällig einer der Spieler, die online
sind ausgewählt wird, damit der dann ein Zombie ist?
Mfg
hey,
Wie kann ich machen dass zufällig einer der Spieler, die online
sind ausgewählt wird, damit der dann ein Zombie ist?
Mfg
new spieler = -1;
for(new i = 0; i<MAX_PLAYERS ; i++)
{
if(IsPlayerConnected(playerid))
{
spieler = spieler +1;
}
}
new player = random(spieler);
€: Proto hat Recht, mein Fehler.
new player = random(MAX_PLAYERS);
das würde nix bringen er will ja ein zufälligen Spieler der online ist.
daher brauchst du eine variabel und eine schleife die variabel haust du dann in random rein.
ahja random gibt den wert wieder daher kannst du das ganze auch gleich weiter verwenden.
new x;
for(new i; i < MAX_PLAYERS; ++i){
if(IsPlayerConnected(i))x++;
}
// Bsp: für die weiter verwendung
SetPlayerTeam(random(x),2);
Du brauchst eine Liste mit den Spielern die online sind, in einem Array oder so.
Der Code von Prototype hat das Problem, dass in den PlayerIDs Lücken sein können,
wenn Spieler 7 gekickt wird oder so
new list[MAX_PLAYERS];
new x=0;
for(new i=0;i!=MAX_PLAYERS;i++)
{
if(IsPlayerConnected(i))
{
list[++x]=i;
}
}
new id=list[random(x+1)];
//Mit id kannst du dann machen was du willst :)
EDIT: Ergänzung und Fehlerbehebung
Alles anzeigenDu brauchst eine Liste mit den Spielern die online sind, in einem Array oder so.
Der Code von Prototype hat das Problem, dass in den PlayerIDs Lücken sein können,
wenn Spieler 7 gekickt wird oder so
new list[MAX_PLAYERS];
new x=0;
for(new i=0;i!=MAX_PLAYERS;i++)
{
if(IsPlayerConnected(i))
{
list[++x]=i;
}
}
new id=list[random(x+1)];
//Mit id kannst du dann machen was du willst :)
EDIT: Ergänzung und Fehlerbehebung
Ja danke für deine korrektur wo habe ich so spät nur mein Kopf gelassen(wahrscheinlich ist der schon im Bett).
Das einzigste was man noch am code verändern könnte wäre die kompaktivität und so gesehen noch was an der schleife.
new i=0;
for(;i!=MAX_PLAYERS;i++)
Warum willst du die Deklaration von dem i aus der Schleife nehmen?