123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 |
- class SyncPlayerList
- {
- ref array<ref SyncPlayer> m_PlayerList;
- void CreatePlayerList()
- {
- if (GetGame().IsServer())
- {
- m_PlayerList = new array<ref SyncPlayer>();
-
- array<PlayerIdentity> identities = new array<PlayerIdentity>();
- GetGame().GetPlayerIndentities(identities);
- foreach (auto identity : identities)
- {
- SyncPlayer sync_player = new SyncPlayer;
- sync_player.m_Identity = identity;
- sync_player.m_UID = identity.GetPlainId();
- sync_player.m_PlayerName = identity.GetPlainName();
- m_PlayerList.Insert(sync_player);
- }
- }
- }
- static SyncPlayerList Compare(SyncPlayerList a, SyncPlayerList b)
- {
- SyncPlayerList new_list = new SyncPlayerList;
- new_list.m_PlayerList = new array<ref SyncPlayer>;
- if (!a && b && b.m_PlayerList)
- {
- foreach (SyncPlayer player3 : b.m_PlayerList)
- {
- new_list.m_PlayerList.Insert(player3);
- }
- }
- else if (a && a.m_PlayerList && !b)
- {
- foreach (SyncPlayer player4 : a.m_PlayerList)
- {
- new_list.m_PlayerList.Insert(player4);
- }
- }
- else if (a && a.m_PlayerList && b && b.m_PlayerList)
- {
- array<ref SyncPlayer> array_a = a.m_PlayerList;
- array<ref SyncPlayer> array_b = b.m_PlayerList;
- foreach (SyncPlayer player : array_b)
- {
- bool found = false;
- foreach (SyncPlayer player2 : array_a)
- {
- if (player.m_UID == player2.m_UID)
- {
- found = true;
- break;
- }
- }
- if (!found)
- {
- new_list.m_PlayerList.Insert(player);
- }
- }
- }
- return new_list;
- }
- }
|