private static void HandleTeleport(NetworkMessage netMsg) { if (Util.ConnectionIsLocal(netMsg.conn)) { return; } netMsg.ReadMessage <TeleportHelper.TeleportMessage>(TeleportHelper.messageBuffer); if (!TeleportHelper.messageBuffer.gameObject) { return; } bool flag = Util.HasEffectiveAuthority(TeleportHelper.messageBuffer.gameObject); if (flag) { return; } TeleportHelper.TeleportGameObject(TeleportHelper.messageBuffer.gameObject, TeleportHelper.messageBuffer.newPosition, TeleportHelper.messageBuffer.delta, flag); }
private static void Init() { SteamworksLobbyManager.newestLobbyData = new SteamworksLobbyManager.LobbyData(); LocalUserManager.onLocalUsersUpdated += SteamworksLobbyManager.UpdatePlayerCount; GameNetworkManager.onStopClientGlobal += delegate() { NetworkConnection connection = GameNetworkManager.singleton.client.connection; bool flag = Util.ConnectionIsLocal(connection); bool flag2; if (connection is SteamNetworkConnection) { flag2 = (((SteamNetworkConnection)connection).steamId == SteamworksLobbyManager.newestLobbyData.serverId); } else { flag2 = (connection.address == SteamworksLobbyManager.newestLobbyData.serverAddressPortPair.address); } if (flag && SteamworksLobbyManager.ownsLobby) { SteamworksLobbyManager.client.Lobby.CurrentLobbyData.RemoveData("server_id"); } if (!flag && flag2) { SteamworksLobbyManager.client.Lobby.Leave(); } }; GameNetworkManager.onStartClientGlobal += delegate(NetworkClient networkClient) { if (SteamworksLobbyManager.ownsLobby) { SteamworksLobbyManager.client.Lobby.LobbyType = SteamworksLobbyManager.preferredLobbyType; } }; SteamworksLobbyManager.onLobbyOwnershipGained += delegate() { SteamworksLobbyManager.SetStartingIfOwner(false); }; GameNetworkManager.onStopClientGlobal += delegate() { SteamworksLobbyManager.SetStartingIfOwner(false); }; }