123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131 |
- class ClientData
- {
- static ref ScriptInvoker SyncEvent_OnPlayerListUpdate = new ScriptInvoker();
- static ref ScriptInvoker SyncEvent_OnEntityKilled = new ScriptInvoker();
- static ref ScriptInvoker SyncEvent_OnPlayerIgnitedFireplace = new ScriptInvoker();
-
- static ref array<Man> m_PlayerBaseList = new array<Man>;
- static ref SyncPlayerList m_PlayerList;
- static ref SyncPlayerList m_LastNewPlayers;
-
- static ref OnlineServices m_OnlineServices;
-
- static void ResetClientData()
- {
- if ( m_PlayerBaseList )
- m_PlayerBaseList.Clear();
- if ( m_PlayerList && m_PlayerList.m_PlayerList )
- m_PlayerList.m_PlayerList.Clear();
- if ( m_LastNewPlayers && m_LastNewPlayers.m_PlayerList )
- m_LastNewPlayers.m_PlayerList.Clear();
- }
-
- static void AddPlayerBase( Man player )
- {
- if ( m_PlayerBaseList && player != GetGame().GetPlayer() )
- m_PlayerBaseList.Insert( player );
- }
-
- static void RemovePlayerBase( Man player )
- {
- if ( m_PlayerBaseList )
- m_PlayerBaseList.RemoveItem( player );
- }
-
- static void SyncEvent_PreprocessPlayerList(SyncPlayerList player_list)
- {
- foreach (auto sync_player : player_list.m_PlayerList)
- {
- PlayerIdentity identity = sync_player.m_Identity;
- if (!identity)
- {
- ErrorEx("PlayerIdentity not synchronized before SyncPlayer", ErrorExSeverity.WARNING);
- continue;
- }
- sync_player.m_UID = identity.GetPlainId();
- sync_player.m_PlayerName = identity.GetPlainName();
- }
- }
- static void SyncEvent_OnRecievedPlayerList( SyncPlayerList player_list )
- {
- if (m_PlayerList && m_PlayerList.m_PlayerList)
- {
- //Print("SyncEvent_OnRecievedPlayerList | " + m_PlayerList.m_PlayerList.Count());
- }
-
- SyncPlayerList new_players = SyncPlayerList.Compare(m_PlayerList, player_list);
-
- if ( !m_LastNewPlayers )
- {
- m_LastNewPlayers = player_list;
- }
- else
- {
- m_LastNewPlayers = SyncPlayerList.Compare( m_LastNewPlayers, new_players );
- }
-
- m_PlayerList = SyncPlayerList.Compare(player_list, null);
-
- #ifdef PLATFORM_CONSOLE
- #ifndef PLATFORM_WINDOWS // if app is not on Windows with -XBOX parameter
- array<string> newPlayersSimple = GetSimplePlayerList( new_players );
- OnlineServices.LoadPermissions( newPlayersSimple );
- OnlineServices.m_ClientServices.GetSessionService().OnSessionPlayerListUpdate(newPlayersSimple);
-
- if ( new_players.m_PlayerList.Count() > 0 )
- {
- OnlineServices.LoadFriends();
- }
-
- if ( g_Game.GetGameState() == DayZGameState.IN_GAME )
- {
- OnlineServices.SetMultiplayState(OnlineServices.GetMultiplayState());
- }
- #endif
- #endif
-
- SyncEvent_OnPlayerListUpdate.Invoke( player_list );
- }
-
- static array<string> GetSimplePlayerList()
- {
- array<string> ids = new array<string>;
- if ( m_PlayerList && m_PlayerList.m_PlayerList )
- {
- for ( int i = 0; i < m_PlayerList.m_PlayerList.Count(); i++ )
- {
- SyncPlayer player = m_PlayerList.m_PlayerList.Get( i );
- ids.Insert( player.m_UID );
- }
- }
-
- return ids;
- }
-
- static array<string> GetSimplePlayerList( SyncPlayerList list )
- {
- array<string> ids = new array<string>;
- if ( list )
- {
- for ( int i = 0; i < list.m_PlayerList.Count(); i++ )
- {
- SyncPlayer player = list.m_PlayerList.Get( i );
- ids.Insert( player.m_UID );
- }
- }
-
- return ids;
- }
-
- static void SyncEvent_OnEntityKilled( SyncEntityKillInfo entity_killed_data )
- {
- SyncEvent_OnEntityKilled.Invoke(entity_killed_data.m_EntityVictim, entity_killed_data.m_EntityKiller, entity_killed_data.m_EntitySource, entity_killed_data.m_IsHeadShot );
- }
-
- static void SyncEvent_OnPlayerIgnitedFireplace( EFireIgniteType igante_type )
- {
- SyncEvent_OnPlayerIgnitedFireplace.Invoke(igante_type);
- }
- }
|