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 num_scores;
protected func RemovePlayer(int iPlr)
{
var idPlr = GetPlayerID(iPlr);
Global(idPlr*2) = GetPlayerName(iPlr);
Global(idPlr*2+1) = GetScore(iPlr);
++num_scores;
}
protected func OnGameOver()
{
var msg = "Scores:", i, plr_name;
while (num_scores)
if (plr_name = Global(i++*2))
{
msg = Format("%s|%s=%d", msg, plr_name, Global(i*2-1));
--num_scores;
}
Message(msg);
}
Speichert die Punkte und Namen aller Spieler bei ihrer Eliminierung in einer globalen Liste. Wenn die Runde vorbei ist, wird diese Liste als Nachricht ausgegeben. Da die Liste mit Spieler-IDs statt Spielernummern indiziert wird, ist sicher gestellt, dass neu beitretende Spieler keine Punkte ehemaliger Spieler überschreiben.