//When server/host is stopped //Perhaps when a delete room button is clicked? Which will result in kicking every one out of the room public override void OnStopServer() { OnServerStopped?.Invoke(); RoomPlayers.Clear(); //Clear the list of existing players, ready for a new game GamePlayers.Clear(); }
public override void OnServerDisconnect(NetworkConnection conn) // -------- Both LOBBY and GAME --------- (invoking some functions) { string currentSceneName = SceneManager.GetActiveScene().name; switch (currentSceneName) { case "Menu": { if (conn.identity != null) { var player = conn.identity.GetComponent <NetworkRoomPlayer>(); RoomPlayers.Remove(player); NotifyPlayersOfReadyState(); } base.OnServerDisconnect(conn); break; } case "Game_PVP": { OnServerWhenClientDisconnectedIngame?.Invoke(); // RpcClient function invoking (from spawn system) base.OnServerDisconnect(conn); break; } } }
public override void OnStopServer() { //OnServerStopped?.Invoke(); RoomPlayers.Clear(); //GamePlayers.Clear(); }
public override void OnServerDisconnect(NetworkConnection conn) { // Quitar de las estructuras de datos. if (conn.identity != null) { print("OnServerDisconnect: conn.identity no es null"); var player = conn.identity.GetComponent <RoomPlayer>(); RoomPlayers.Remove(player); } if (tokenConnection.Exists(p => p.Value == conn)) { print("OnServerDisconnect: Existe token asociado a la conexión"); tokenConnection.Remove(tokenConnection.Find(p => p.Value == conn)); if (modoServidor == ServidorPartida) { print("OnServerDisconnect: Estamos en server partida"); serverPlayers--; if (serverPlayers < 0) { serverPlayers = 0; } print("OnServerDisconnect: serverPlayers: " + serverPlayers + " --- MaxPlayers: " + maxPlayers); if (partidaFinalizada && serverPlayers <= 0) // partidaFinalizada implica que serverPlayers ha sido maxPlayers (buscar partidaFinalizada = true para comprobarlo) { print("Empezamos ENDMATCH"); StartCoroutine(EndMatch()); } } } base.OnServerDisconnect(conn); }
public override void OnStopServer() { ServerStopped?.Invoke(); RoomPlayers.Clear(); GamePlayers.Clear(); //base.OnStopServer(); }
public override void ServerChangeScene(string newSceneName) { if (SceneManager.GetActiveScene().path == lobbyScene && newSceneName.StartsWith("Scene")) { System.Random rnd = new System.Random(); var players = RoomPlayers.OrderBy(x => rnd.Next()).Take(numScientists); foreach (var player in players) { player.IsScientist = true; } for (int i = RoomPlayers.Count - 1; i >= 0; i--) { var conn = RoomPlayers[i].connectionToClient; var gamePlayerInstance = Instantiate(gamePlayerPrefab); gamePlayerInstance.SetDisplayName(RoomPlayers[i].DisplayName); gamePlayerInstance.SetIsScientist(RoomPlayers[i].IsScientist); // NetworkServer.Destroy(conn.identity.gameObject); NetworkServer.ReplacePlayerForConnection(conn, gamePlayerInstance.gameObject); } } base.ServerChangeScene(newSceneName); }
public override void OnStopServer() { //Serveri sammutetaan Huone tyhjennetään OnServerStopped?.Invoke(); RoomPlayers.Clear(); GamePlayers.Clear(); }
public override void OnStopServer() { OnServerStopped?.Invoke(); RoomPlayers.Clear(); GamePlayers.Clear(); ServerChangeScene(menuScene); }
public override void OnServerDisconnect(NetworkConnection conn) { if (conn.identity != null) { var player = conn.identity.GetComponent <NetworkRoomPlayerLobby>(); RoomPlayers.Remove(player); NotifyPlayersOfReadyState(); } base.OnServerDisconnect(conn); }
public override void OnClientDisconnect(NetworkConnection conn) { if (conn.identity != null) { NetworkRoomPlayerLobby player = conn.identity.GetComponent <NetworkRoomPlayerLobby>(); RoomPlayers.Remove(player); } base.OnClientDisconnect(conn); ClientDisconnected?.Invoke(); }
public override void OnServerDisconnect(NetworkConnection conn) { if (conn.identity != null) { //Haetaan poistuneen pelaajan RoomFuturace scripti var player = conn.identity.GetComponent <NetWorkRoomFuturace>(); //Ja poistetaan pelaaja listasta (vain serveri) RoomPlayers.Remove(player); NotifyPlayersOfReadyState(); } //Basessa tuhotaan oikeasti yhteys base.OnServerDisconnect(conn); }
public override void OnServerDisconnect(NetworkConnection conn) { if (conn.identity != null) { Debug.Log("A client was disconnected from the server"); var player = conn.identity.GetComponent <RoomPlayer>(); RoomPlayers.Remove(player); NotifyPlayersOfReadyState(); } base.OnServerDisconnect(conn); }
public override void OnServerDisconnect(NetworkConnection conn) { //removes players when a disconnect occurs so they aren't affected by the world if (conn.identity != null) { NetworkRoomPlayer player = conn.identity.GetComponent <NetworkRoomPlayer>(); RoomPlayers.Remove(player); NotifyPlayersOfReadyState(); } base.OnServerDisconnect(conn); }
//Called on SERVER when a client disconnects from server, automatically public override void OnServerDisconnect(NetworkConnection conn) { //Get room player script and remove from the list if (conn.identity != null) //if the object has a network identity { var player = conn.identity.GetComponent <NetworkRoom>(); //Get network room script of disconnected player RoomPlayers.Remove(player); //Remove the player conn from the list of room players NotifyPlayersOfReadyState(); //Update everyone of ready status } base.OnServerDisconnect(conn); //Destroys player for connection, disconnects client properly //Debug.Log("Removed player"); }
public void EndGame() { if ("Assets/Scenes/" + SceneManager.GetActiveScene().name + ".unity" == gameScene) { ServerChangeScene("EndScene"); for (int i = 0; i < Players.Count; i++) { NetworkServer.Destroy(Players[i].gameObject); NetworkServer.DestroyPlayerForConnection(Players[i].connectionToClient); } RoomPlayers.Clear(); GamePlayers.Clear(); Players.Clear(); } }
public override void OnServerDisconnect(NetworkConnection conn) { Debug.Log("OnServerDisconnect"); if (conn.identity != null) { var player = conn.identity.GetComponent <NetworkRoomPlayerLobby>(); RoomPlayers.Remove(player); NotifyPlayersOfReadyState(); } base.OnServerDisconnect(conn); ForceLeaveGame leave = new ForceLeaveGame(); leave.GoBackToMenu(gameObject); }
private void StartCombat() { rondaAJugar++; int tam = maxPlayers / 2; List <int> indicesRandom = new List <int>(); System.Random rnd = new System.Random(); for (int i = 0; i < tam; ++i) { int indice; do { indice = rnd.Next(0, maxPlayers); } while (indicesRandom.Contains(indice)); // Que no esté el número indicesRandom.Add(indice); } List <int> restoIndices = GetRemainingIndexes(indicesRandom, maxPlayers); string puerto = puertoActual.ToString(); string argumentos = puerto + " 1 " + (puertoInicial - 1).ToString(); // Lo de puerto inicial es para que el server de combate sepa a donde conectarse de vuelta argumentos += GetTokens(indicesRandom); IncrementPort(); ExecuteCommand(GlobalVariables.combatServerScriptPath, argumentos); ChangePlayersToCombatServer(puerto, indicesRandom); // ChangePlayersToCombatServer(puerto, 0, tam); puerto = puertoActual.ToString(); argumentos = puerto + " 1 " + (puertoInicial - 1).ToString(); argumentos += GetTokens(restoIndices); IncrementPort(); ExecuteCommand(GlobalVariables.combatServerScriptPath, argumentos); ChangePlayersToCombatServer(puerto, restoIndices); RoomPlayers.Clear(); // tokenConnection.Clear(); // serverPlayers = 0; // tokens no se tocan // tokenConnection sí ya que la conexión cambia cada vez que nos reconectamos }
private void StartCombat(string[] players) { rondaAJugar++; string puerto = puertoActual.ToString(); string argumentos = puerto + " 1 " + (puertoInicial - 1).ToString() + " "; // Lo de puerto inicial es para que el server de combate sepa a donde conectarse de vuelta foreach (var tk in players) { argumentos += tk + " "; } IncrementPort(); ExecuteCommand(GlobalVariables.combatServerScriptPath, argumentos); ChangePlayersToCombatServer(puerto, players); RoomPlayers.Clear(); // tokenConnection.Clear(); // serverPlayers = 0; }
//Method called on Quit, disconnects all players public override void OnServerDisconnect(NetworkConnection conn) { if (conn.identity != null) { var player = conn.identity.GetComponent <NetworkBehaviour>(); if (player is NetworkRoomPlayerDND roomPlayer) { RoomPlayers.Remove(roomPlayer); NotifyPlayersOfReadyState(); } else if (player is NetworkGamePlayerDND gamePlayer) { GamePlayers.Remove(gamePlayer); StopHost(); } } base.OnServerDisconnect(conn); }
public override void OnServerDisconnect(NetworkConnection conn) { if (conn.identity != null) { var player = conn.identity.GetComponent <NetworkBehaviour>(); //Refrence to the player who disconnected if (player is NetworkRoomPlayer roomPlayer) { RoomPlayers.Remove(roomPlayer); //Removes disconnected player from list of current players NotifyPlayersOfReadyState(); } else if (player is NetworkGamePlayer gamePlayer) { GamePlayers.Remove(gamePlayer); } } base.OnServerDisconnect(conn); }
public override void OnServerAddPlayer(NetworkConnection conn) { if (modoServidor == ServidorPartida) { if (SceneManager.GetActiveScene().path == lobbyScene && rondaAJugar <= maxRondas) { RoomPlayer roomPlayerInstance = Instantiate(roomPlayerPrefab); if (indexColoresServidor < maxPlayers) { PlayerColorMessage msg = new PlayerColorMessage(); msg.Color = coloresServidor[indexColoresServidor]; indexColoresServidor++; conn.Send <PlayerColorMessage>(msg); } NetworkServer.AddPlayerForConnection(conn, roomPlayerInstance.gameObject); // Esto se encarga de spawnearlo en todos los clientes también RoomPlayers.Add(roomPlayerInstance); if ((numPlayers == maxPlayers && rondaAJugar < maxRondas) || (numPlayers == maxPlayers / 2 && rondaAJugar == maxRondas)) { NextRound(); } } } else if (modoServidor == ServidorCombate) { if (SceneManager.GetActiveScene().path == lobbyScene) { RoomPlayer roomPlayerInstance = Instantiate(roomPlayerPrefab); NetworkServer.AddPlayerForConnection(conn, roomPlayerInstance.gameObject); // Esto se encarga de spawnearlo en todos los clientes también RoomPlayers.Add(roomPlayerInstance); if (numPlayers == maxPlayers) { StartGame(); } } } }
public override void OnStopServer() { //removes all the players from the scene at the end of the game RoomPlayers.Clear(); }
//When server/host is stopped //Perhaps when a delete room button is clicked? Which will result in kicking every one out of the room public override void OnStopServer() { RoomPlayers.Clear(); //Clear the list of existing players, ready for a new game }
public override void OnStopServer() { RoomPlayers.Clear(); GamePlayers.Clear(); base.OnStopServer(); }
public override void OnStopServer() { Debug.Log("Server Stopped"); RoomPlayers.Clear(); }
public override void OnStopServer() { RoomPlayers.Clear(); }
public override void OnStopServer() { //base.OnStopServer(); RoomPlayers.Clear(); }
public override void OnStopClient() { //Debug.Log("Custom Network Manager: Stopped client"); SceneManager.LoadScene(0); //reload scene for client RoomPlayers.Clear(); }
public override void OnStopServer() // ---------- LOBBY (i guess) ----------- { RoomPlayers.Clear(); }
public override void OnStopHost() { RoomPlayers.Clear(); //Debug.Log("Custom Network Manager: Stopped host"); StopClient(); }