Gibt die Spieler-ID eines beigetretenen Spielers zurück. Spieler-IDs werden von 1 hochgezählt, und - anders als Spielernummern - nicht wieder benutzt, nachdem ein Spieler eliminiert wurde. Jeder neu beigetetene Spieler hat also eine eigene ID.
Spieler-IDs werden in Netzwerkspielen schon in der Lobby zugewiesen. Da Lobbyspieler noch im Nachhinein entfernt oder Netzwerkclients vor dem eigentlichen Start ihre Verbindung verlieren können, ist auch bei Spieler-IDs nicht garantiert, dass beim Spielstart alle IDs von 1 bis
GetPlayerCount() belegt sind.
static player_names, player_scores;
protected func Initialize()
{
if(!player_names) player_names = CreateArray();
if(!player_scores) player_scores = CreateArray();
}
protected func RemovePlayer(int player)
{
var player_id = GetPlayerID(player);
player_names[player_id] = GetPlayerName(player);
player_scores[player_id] = GetScore(player);
}
protected func OnGameOver()
{
Log("Scores of eliminated players:");
for (var i = 0; i < GetLength(player_names); ++i)
if (player_names[i])
Log(Format("%s - %d", player_names[i], player_scores[i]));
}
Speichert die Punkte und Namen aller Spieler bei ihrer Eliminierung in einer globalen Liste. Wenn die Runde vorbei ist, wird diese Liste im Log ausgegeben. Da die Liste mit Spieler-IDs statt Spielernummern indiziert wird, ist sicher gestellt, dass neu beitretende Spieler keine Punkte ehemaliger Spieler überschreiben.