// ------------------------------------------------------------------------------- // OnClientMessageRequestPlayerSwitchServer // ------------------------------------------------------------------------------- public void OnClientMessageRequestPlayerSwitchServer(NetworkConnection conn, ClientMessageRequestPlayerSwitchServer msg) { if (NetworkServer.active) { return; } networkManager.StopClient(); NetworkClient.Shutdown(); OpenMMO.Network.NetworkManager.Shutdown(); OpenMMO.Network.NetworkManager.singleton = networkManager; autoSelectPlayer = msg.playername; string sceneName = ""; foreach (NetworkZoneTemplate template in networkZones) { if (msg.zonename == template.name) { sceneName = template.scene.SceneName; } } SceneManager.LoadScene(sceneName); autoConnectClient = true; }
// ====================== MESSAGE EVENT HANDLERS ================================= // ------------------------------------------------------------------------------- // OnServerMessageResponsePlayerSwitchServer // @Client // ------------------------------------------------------------------------------- public void OnServerMessageResponsePlayerSwitchServer(NetworkConnection conn, ServerMessageResponsePlayerSwitchServer msg) { networkManager.StopClient(); NetworkClient.Shutdown(); OpenMMO.Network.NetworkManager.Shutdown(); OpenMMO.Network.NetworkManager.singleton = networkManager; autoPlayerName = msg.playername; for (int i = 0; i < subZones.Count; i++) { if (msg.zonename == subZones[i].name) { zoneIndex = i; networkTransport.port = GetZonePort; autoConnectClient = true; Invoke(nameof(ReloadScene), 0.25f); debug.LogFormat(this.name, nameof(OnServerMessageResponsePlayerSwitchServer), i.ToString()); //DEBUG return; } } debug.LogFormat(this.name, nameof(OnServerMessageResponsePlayerSwitchServer), "NOT FOUND"); //DEBUG }
// ====================== MESSAGE EVENT HANDLERS ================================= // ------------------------------------------------------------------------------- // OnServerMessageResponsePlayerSwitchServer // @Client // ------------------------------------------------------------------------------- public void OnServerMessageResponsePlayerSwitchServer(NetworkConnection conn, ServerMessageResponsePlayerSwitchServer msg) { if (NetworkServer.active) { return; } networkManager.StopClient(); NetworkClient.Shutdown(); OpenMMO.Network.NetworkManager.Shutdown(); OpenMMO.Network.NetworkManager.singleton = networkManager; autoPlayerName = msg.playername; for (int i = 0; i < subZones.Count; i++) { if (msg.zonename == subZones[i].name) { zoneIndex = i; networkTransport.port = GetZonePort; autoConnectClient = true; Invoke(nameof(ReloadScene), 0.25f); return; } } }