If we have disconnecting players identity remove player data from scripted sandstorm controller directly.
If we don't have disconnecting players identity remove the data by comparing with still connected players and remove any data of players that are not connected anymore.
См. определение в файле PlayerBase.c строка 7647
7648 {
7649 Debug.Log(
"Player disconnected:"+this.
ToString(),
"Connect");
7650
7651
7652
7653
7654 g_Game.GetAnalyticsServer().OnPlayerDisconnect(
this);
7655
7656 StatsEventDisconnectedData data = new StatsEventDisconnectedData();
7659 Analytics.PlayerDisconnected(data);
7660
7664
7666
7667
7668 ScriptedSandstormController sandstormController = ScriptedSandstormController.Cast(
g_Game.GetWeather().GetSandstorm());
7669 if (sandstormController)
7670 {
7671 if (GetIdentity())
7672 {
7675 }
7676 else
7677 {
7680 }
7681 }
7682 }
ref Timer m_AnalyticsTimer
void SetPlayerDisconnected(bool state)
void UpdatePlayerMeasures()
void CheckConnectedPlayers()
void CleanupDisconnectedPlayer(string playerId)
string m_CharacterId
character ID
string m_Reason
reason of disconnect (quit, kick, ban, sign-out...)
Перекрестные ссылки ScriptedSandstormController::CheckConnectedPlayers(), ScriptedSandstormController::CleanupDisconnectedPlayer(), g_Game, GetId(), Debug::Log(), m_AnalyticsTimer, StatsEventDisconnectedData::m_CharacterId, StatsEventDisconnectedData::m_Reason, Analytics::PlayerDisconnected(), SetPlayerDisconnected(), ToString() и UpdatePlayerMeasures().