public void RemovePlayer(MatchPlayer player) { if (Players.Contains(player)) { Players.Remove(player); if (player.BallObject) { Destroy(player.BallObject.gameObject); } if (MatchPlayerRemoved != null) { MatchPlayerRemoved(this, new MatchPlayerEventArgs(player)); } } }
public MatchPlayer CreatePlayer(string name, ControlType ctrlType, int characterId) { var p = new MatchPlayer(name, ctrlType, characterId); Players.Add(p); if (inLobby) { SpawnLobbyBall(p); } p.ChangedReady += AnyPlayerChangedReadyHandler; StopLobbyTimer(); if (MatchPlayerAdded != null) { MatchPlayerAdded(this, new MatchPlayerEventArgs(p)); } return(p); }
public void AddNotInitializatedPlayer() { // this method is used when a player didnt choose a character, we proceed to assign him a default one for (int i = 0; i < NetworkServer.connections.Count; i++) { bool iniciado = false; for (int j = 0; j < Players.Count; j++) { if (NetworkServer.connections[i] == Players[j].ConnectionSelf) { iniciado = true; } else { } } if (!iniciado && NetworkServer.connections[i] != null) { var p = new MatchPlayer("Player_", ControlType.Keyboard, 0); p.ConnectionSelf = NetworkServer.connections[i]; Players.Add(p); if (inLobby) { } p.ChangedReady += AnyPlayerChangedReadyHandler; if (MatchPlayerAdded != null) { MatchPlayerAdded(this, new MatchPlayerEventArgs(p)); } } } }
// aparece el lobbyBall private void SpawnLobbyBallFromRace(MatchPlayer player) { LobbyBallSpawner spawner = LobbyReferences.Active.BallSpawner; if (player.ConnectionSelf != null) { replace = true; Debug.Log("We delete the gameobject and then proceed to make a replacement."); } if (isServer && !replace) { player.ConnectionSelf = NetworkServer.connections[0]; } if (!replace) { player.BallObject = spawner.SpawnBall(Data.PlayerType.Normal, player.CtrlType, player.CharacterId, "Player", NetworkManager.singleton.client.connection); // en cliente esto da nulo,, creo. } else { player.BallObject = spawner.SpawnBall(Data.PlayerType.Normal, player.CtrlType, player.CharacterId, "Player", player.ConnectionSelf); // en cliente esto da nulo,, creo. } }
public void CmdSetMatchManager( ) { if (isClient && !isLocalPlayer) { bool repeated = false; for (int i = 0; i < NetworkServer.connections.Count; i++) { if (NetworkServer.connections[i] != null) { if (this.connectionToClient.connectionId == NetworkServer.connections[i].connectionId) { Debug.Log("THE CONNECTION WAS FOUND " + this.connectionToClient.connectionId); } } } for (int i = 0; i < NetworkServer.connections.Count; i++) { if (NetworkServer.connections[i] != null) { if (this.connectionToClient.connectionId == NetworkServer.connections[i].connectionId) { //HE CONNECTION WAS FOUND in the SERVER.. for (int j = 0; j < NetworkManager.singleton.GetComponent <SanicNetworkManager>().matchManager.Players.Count; j++) { if (this.connectionToClient.connectionId == NetworkManager.singleton.GetComponent <SanicNetworkManager>().matchManager.Players[j].ConnectionSelf.connectionId) { repeated = true; } } if (!repeated) { MatchPlayer p = new MatchPlayer(this.name, this.ctrlType, this.characterId); p.CharacterId = this.characterId; p.ConnectionSelf = NetworkServer.connections[i]; p.BallObject = GetComponent <Ball>(); p = NetworkManager.singleton.GetComponent <SanicNetworkManager>().matchManager.AddReadyEvent(p); NetworkManager.singleton.GetComponent <SanicNetworkManager>().matchManager.Players.Add(p); } } } } } /* * if( NetworkManager.singleton.GetComponent<SanicNetworkManager>().matchManager.Players.Count==1) * { * * MatchPlayer p = new MatchPlayer(this.name, this.ctrlType, this.characterId); * * NetworkManager.singleton.GetComponent<SanicNetworkManager>().matchManager.Players.Add(p); * Debug.Log("knknknkjnkjnknkjnkjnkjnk2"); * } * if( NetworkManager.singleton.GetComponent<SanicNetworkManager>().matchManager.Players.Count==2){ * NetworkManager.singleton.GetComponent<SanicNetworkManager>().matchManager.Players[1].CharacterId= this.characterId; * NetworkManager.singleton.GetComponent<SanicNetworkManager>().matchManager.Players[1].ConnectionSelf= NetworkServer.connections[1]; * * Debug.Log("THE CONNECTION "+ NetworkManager.singleton.GetComponent<SanicNetworkManager>().matchManager.Players[1].ConnectionSelf); * * * * * } */ }
public override void OnStartLocalPlayer() { if (UnityEngine.SceneManagement.SceneManager.GetActiveScene().name != "Lobby") { if (!isServer) { // NetworkManager.singleton.GetComponent<SanicNetworkManager>().raceManager= // Instantiate( NetworkManager.singleton.GetComponent<SanicNetworkManager>().raceManagerPrefab); // NetworkManager.singleton.GetComponent<SanicNetworkManager>().raceManager.currentState=Sanicball.RaceState.Countdown; } } // esto corre cada vez que instancio a mi proppia pelota, en mi propia identidad. //no se instancia con el vecino... Debug.Log("Client as been started Locally"); this.type = GameObject.Find("SanicNetworkManager").GetComponent <SanicNetworkManager>().tipo; this.ctrlType = GameObject.Find("SanicNetworkManager").GetComponent <SanicNetworkManager>().controlTipo; this.characterId = GameObject.Find("SanicNetworkManager").GetComponent <SanicNetworkManager>().personaje; this.nickname = GameObject.Find("SanicNetworkManager").GetComponent <SanicNetworkManager>().nickName; if (!isServer) { if (NetworkManager.singleton.GetComponent <SanicNetworkManager>().matchManager.Players.Count > 0) { if (NetworkManager.singleton.GetComponent <SanicNetworkManager>().matchManager.Players[0].BallObject == null) { if (UnityEngine.SceneManagement.SceneManager.GetActiveScene().name == "Lobby") { CmdInit(this.type, this.ctrlType, this.characterId, this.nickname); } } else { } } else { if (UnityEngine.SceneManagement.SceneManager.GetActiveScene().name != "Lobby") { Debug.Log("There are not initialized local players, the player didnt choose a character."); if (isLocalPlayer) { var p = new MatchPlayer("Player._.", ControlType.Keyboard, 0); NetworkManager.singleton.GetComponent <SanicNetworkManager>().matchManager.Players.Add(p); } } } CmdSetMatchManager(); NetworkManager.singleton.GetComponent <SanicNetworkManager>().matchManager.Players[0].BallObject = this.GetComponent <Ball>(); } else { Debug.Log("As Im server, I need to send RpcInit to star the balls in clients"); RpcInit(this.type, this.ctrlType, this.characterId, this.nickname); } }
public MatchPlayerEventArgs(MatchPlayer player) { Player = player; }