This represents a networked player.

Exemple #1
0
 public override void OnServerRemovePlayer(NetworkConnection conn, UnityEngine.Networking.PlayerController player)
 {
     //base.OnServerRemovePlayer(conn, player);
     ConnectionManager.instance.RemoveGunfish(conn);
     //print("Removing player");
     RaceManager.instance.TrySwapLevel();
 }
    void OnServerReadyToBeginMessage(NetworkMessage netMsg)
    {
        if (LogFilter.logDebug)
        {
            Debug.Log("NetworkLobbyManager OnServerReadyToBeginMessage");
        }
        netMsg.ReadMessage(s_ReadyToBeginMessage);

        UnityEngine.Networking.PlayerController lobbyController = netMsg.conn.playerControllers.First();

        // set this player ready
        var lobbyPlayer = lobbyController.gameObject.GetComponent <LobbyPlayer>();

        lobbyPlayer.readyToBegin = s_ReadyToBeginMessage.readyState;

        // tell every player that this player is ready
        var outMsg = new LobbyReadyToBeginMessage();

        outMsg.slotId     = lobbyPlayer.slot;
        outMsg.readyState = s_ReadyToBeginMessage.readyState;
        NetworkServer.SendToReady(null, MsgType.LobbyReadyToBegin, outMsg);

        // maybe start the game
        CheckReadyToBegin();
    }
 public override void OnServerRemovePlayer(NetworkConnection conn, UnityEngine.Networking.PlayerController player)
 {
     if (player.gameObject != null)
     {
         NetworkServer.Destroy(player.gameObject);
     }
 }
Exemple #4
0
    public override void OnServerRemovePlayer(NetworkConnection conn, UnityEngine.Networking.PlayerController player)
    {
        byte slot = player.gameObject.GetComponent <CaptainsMessPlayer>().slot;

        lobbySlots[slot] = null;
        base.OnServerRemovePlayer(conn, player);
    }
Exemple #5
0
    public override void OnServerRemovePlayer(NetworkConnection conn, UnityEngine.Networking.PlayerController player)
    {
        base.OnServerRemovePlayer(conn, player);
        var canvas = FindObjectOfType <Canvas>();
        var button = canvas.GetComponentInChildren <Button>();

        button.GetComponentInChildren <Text>().text = this.numPlayers + " Player(s)";
    }
Exemple #6
0
        public override void OnServerRemovePlayer(
            NetworkConnection conn,
            UnityEngine.Networking.PlayerController playerController
            )
        {
            Player player = playerController.gameObject.GetComponent <Player>();

            players[player.playerId] = null;
            base.OnServerRemovePlayer(conn, playerController);
        }
    void OnServerSceneLoadedMessage(NetworkMessage netMsg)
    {
        if (LogFilter.logDebug)
        {
            Debug.Log("NetworkLobbyManager OnSceneLoadedMessage");
        }

        netMsg.ReadMessage(s_SceneLoadedMessage);

        UnityEngine.Networking.PlayerController lobbyController = netMsg.conn.playerControllers.First();

        SceneLoadedForPlayer(netMsg.conn, lobbyController.gameObject);
    }
 static public bool GetPlayerController(short id, NetworkConnection conn, out UnityEngine.Networking.PlayerController player)
 {
     for (int i = 0; i < conn.playerControllers.Count; i++)
     {
         if (conn.playerControllers [i] != null && conn.playerControllers [i].playerControllerId == id)
         {
             player = conn.playerControllers [i];
             return(true);
         }
     }
     player = null;
     return(false);
 }
 internal void AddLocalPlayer(PlayerController localPlayer)
 {
   if (LogFilter.logDev)
     Debug.Log((object) ("Local client AddLocalPlayer " + localPlayer.gameObject.name + " conn=" + (object) this.m_Connection.connectionId));
   this.m_Connection.isReady = true;
   this.m_Connection.SetPlayerController(localPlayer);
   NetworkIdentity unetView = localPlayer.unetView;
   if ((Object) unetView != (Object) null)
   {
     ClientScene.SetLocalObject(unetView.netId, localPlayer.gameObject);
     unetView.SetConnectionToServer(this.m_Connection);
   }
   ClientScene.InternalAddPlayer(unetView, localPlayer.playerControllerId);
 }
Exemple #10
0
        void RemovePlayer(NetworkConnection conn, UnityEngine.Networking.PlayerController controller)
        {
            var playerConnection = new PlayerConnection {
                ConnectionID       = conn.connectionId,
                PlayerControllerID = controller.playerControllerId
            };

            if (PlayerMap.ContainsKey(playerConnection))
            {
                var player = PlayerMap[playerConnection];
                player.Type      = PlayerType.None;
                player.Selection = new PlayerSelection();
                PlayerMap.Remove(playerConnection);
            }
            playerCount = Mathf.Max(0, playerCount - 1);
        }
Exemple #11
0
 internal void AddLocalPlayer(PlayerController localPlayer)
 {
     if (LogFilter.logDev)
     {
         Debug.Log(string.Concat(new object[] { "Local client AddLocalPlayer ", localPlayer.gameObject.name, " conn=", base.m_Connection.connectionId }));
     }
     base.m_Connection.isReady = true;
     base.m_Connection.SetPlayerController(localPlayer);
     NetworkIdentity unetView = localPlayer.unetView;
     if (unetView != null)
     {
         ClientScene.SetLocalObject(unetView.netId, localPlayer.gameObject);
         unetView.SetConnectionToServer(base.m_Connection);
     }
     ClientScene.InternalAddPlayer(unetView, localPlayer.playerControllerId);
 }
    public override void OnServerRemovePlayer(NetworkConnection conn, UnityEngine.Networking.PlayerController player)
    {
        var  playerControllerId = player.playerControllerId;
        byte slot = player.gameObject.GetComponent <LobbyPlayer>().slot;

        lobbySlots[slot] = null;
        base.OnServerRemovePlayer(conn, player);

        foreach (var p in lobbySlots)
        {
            if (p != null)
            {
                p.GetComponent <LobbyPlayer>().readyToBegin = false;

                s_LobbyReadyToBeginMessage.slotId     = p.slot;
                s_LobbyReadyToBeginMessage.readyState = false;
                NetworkServer.SendToReady(null, MsgType.LobbyReadyToBegin, s_LobbyReadyToBeginMessage);
            }
        }

        OnLobbyServerPlayerRemoved(conn, playerControllerId);
    }
        public override void OnServerAddPlayer(NetworkConnection conn, short playerControllerId)
        {
            base.OnServerAddPlayer(conn, playerControllerId);
            GameObject player = null;

            UnityEngine.Networking.PlayerController playerController = conn.playerControllers[(int)playerControllerId];

            if (playerController != null)
            {
                player = playerController.gameObject;
            }
            if (player != null)
            {
                if (numPlayers == 1)
                {
                    SetupServer(player);
                }
                else
                {
                    player.name = "Client";
                }
            }
        }
Exemple #14
0
 public static bool RemovePlayer(short playerControllerId)
 {
     PlayerController controller;
     if (LogFilter.logDebug)
     {
         Debug.Log(string.Concat(new object[] { "ClientScene::RemovePlayer() for ID ", playerControllerId, " called with connection [", s_ReadyConnection, "]" }));
     }
     if (s_ReadyConnection.GetPlayerController(playerControllerId, out controller))
     {
         RemovePlayerMessage msg = new RemovePlayerMessage {
             playerControllerId = playerControllerId
         };
         s_ReadyConnection.Send(0x26, msg);
         s_ReadyConnection.RemovePlayerController(playerControllerId);
         s_LocalPlayers[playerControllerId] = new PlayerController();
         UnityEngine.Object.Destroy(controller.gameObject);
         return true;
     }
     if (LogFilter.logError)
     {
         Debug.LogError("Failed to find player ID " + playerControllerId);
     }
     return false;
 }
 // called when a player is removed for a client
 public override void OnServerRemovePlayer(NetworkConnection conn, PlayerController player) {
     if (player.unetView != null && player.gameObject != null)
             NetworkServer.Destroy(player.gameObject);
 }
 internal bool GetPlayerController(short playerControllerId, out PlayerController playerController)
 {
   playerController = (PlayerController) null;
   if (this.playerControllers.Count <= 0)
     return false;
   for (int index = 0; index < this.playerControllers.Count; ++index)
   {
     if (this.playerControllers[index].IsValid && (int) this.playerControllers[index].playerControllerId == (int) playerControllerId)
     {
       playerController = this.playerControllers[index];
       return true;
     }
   }
   return false;
 }
Exemple #17
0
 public virtual void OnServerRemovePlayer(NetworkConnection conn, PlayerController player)
 {
     if (player.gameObject != null)
     {
         NetworkServer.Destroy(player.gameObject);
     }
 }
Exemple #18
0
 public override void OnServerRemovePlayer(NetworkConnection conn, UnityEngine.Networking.PlayerController player)
 {
     base.OnServerRemovePlayer(conn, player);
     Debug.LogError("OnServerRemovePlayer" + System.DateTime.Now.TimeOfDay);
 }
 internal void SetPlayerController(PlayerController player)
 {
     while (player.playerControllerId >= this.m_PlayerControllers.Count)
     {
         this.m_PlayerControllers.Add(new PlayerController());
     }
     this.m_PlayerControllers[player.playerControllerId] = player;
 }
Exemple #20
0
 //서버에서 플레이어 지울때
 public override void OnServerRemovePlayer(NetworkConnection conn, UnityEngine.Networking.PlayerController player)
 {
     //플레이어 지움
     base.OnServerRemovePlayer(conn, player);
     playerCount--;
 }
 public override void OnServerRemovePlayer(NetworkConnection conn, UnityEngine.Networking.PlayerController player)
 {
     LogEntry();
     base.OnServerRemovePlayer(conn, player);
     LogExit();
 }
 public override void OnServerRemovePlayer(NetworkConnection conn, PlayerController player)
 {
   short playerControllerId = player.playerControllerId;
   this.lobbySlots[(int) player.gameObject.GetComponent<NetworkLobbyPlayer>().slot] = (NetworkLobbyPlayer) null;
   base.OnServerRemovePlayer(conn, player);
   foreach (NetworkLobbyPlayer lobbySlot in this.lobbySlots)
   {
     if ((Object) lobbySlot != (Object) null)
     {
       lobbySlot.GetComponent<NetworkLobbyPlayer>().readyToBegin = false;
       NetworkLobbyManager.s_LobbyReadyToBeginMessage.slotId = lobbySlot.slot;
       NetworkLobbyManager.s_LobbyReadyToBeginMessage.readyState = false;
       NetworkServer.SendToReady((GameObject) null, (short) 43, (MessageBase) NetworkLobbyManager.s_LobbyReadyToBeginMessage);
     }
   }
   this.OnLobbyServerPlayerRemoved(conn, playerControllerId);
 }
        public override void OnServerRemovePlayer(NetworkConnection conn, PlayerController player)
        {
            short playerControllerId = player.playerControllerId;
              this.lobbySlots[(int) player.gameObject.GetComponent<NetworkLobbyPlayer>().slot] = (NetworkLobbyPlayer) null;

              base.OnServerRemovePlayer(conn, player); // base implementation destroys the player gameobject

              foreach (NetworkLobbyPlayer networkLobbyPlayer in this.lobbySlots)
              {
            if ((UnityEngine.Object) networkLobbyPlayer != (UnityEngine.Object) null)
            {
              networkLobbyPlayer.GetComponent<NetworkLobbyPlayer>().readyToBegin = false;
              NetworkLobbyManager.s_LobbyReadyToBeginMessage.slotId = networkLobbyPlayer.slot;
              NetworkLobbyManager.s_LobbyReadyToBeginMessage.readyState = false;
              NetworkServer.SendToReady((GameObject) null, (short) 43, (MessageBase) NetworkLobbyManager.s_LobbyReadyToBeginMessage);
            }
              }
              this.OnLobbyServerPlayerRemoved(conn, playerControllerId); // empty virtual hook method
        }
 internal bool InternalReplacePlayerForConnection(NetworkConnection conn, GameObject playerGameObject, short playerControllerId)
 {
     NetworkIdentity identity;
     PlayerController controller;
     if (!GetNetworkIdentity(playerGameObject, out identity))
     {
         if (LogFilter.logError)
         {
             Debug.LogError("ReplacePlayer: playerGameObject has no NetworkIdentity. Please add a NetworkIdentity to " + playerGameObject);
         }
         return false;
     }
     if (!CheckPlayerControllerIdForConnection(conn, playerControllerId))
     {
         return false;
     }
     if (LogFilter.logDev)
     {
         Debug.Log("NetworkServer ReplacePlayer");
     }
     if (conn.GetPlayerController(playerControllerId, out controller))
     {
         controller.unetView.SetNotLocalPlayer();
         controller.unetView.ClearClientOwner();
     }
     PlayerController player = new PlayerController(playerGameObject, playerControllerId);
     conn.SetPlayerController(player);
     identity.SetConnectionToClient(conn, player.playerControllerId);
     if (LogFilter.logDev)
     {
         Debug.Log("NetworkServer ReplacePlayer setup local");
     }
     if (!this.SetupLocalPlayerForConnection(conn, identity, player))
     {
         if (LogFilter.logDebug)
         {
             Debug.Log(string.Concat(new object[] { "Replacing playerGameObject object netId: ", playerGameObject.GetComponent<NetworkIdentity>().netId, " asset ID ", playerGameObject.GetComponent<NetworkIdentity>().assetId }));
         }
         FinishPlayerForConnection(conn, identity, playerGameObject);
         if (identity.localPlayerAuthority)
         {
             identity.SetClientOwner(conn);
         }
     }
     return true;
 }
 public override void OnServerRemovePlayer(NetworkConnection conn, UnityEngine.Networking.PlayerController player)
 {
     base.OnServerRemovePlayer(conn, player);
     print("Player Removed");
 }
 internal bool InternalReplacePlayerForConnection(NetworkConnection conn, GameObject playerGameObject, short playerControllerId)
 {
     NetworkIdentity view;
       if (!NetworkServer.GetNetworkIdentity(playerGameObject, out view))
       {
     if (LogFilter.logError)
       Debug.LogError((object) ("ReplacePlayer: playerGameObject has no NetworkIdentity. Please add a NetworkIdentity to " + (object) playerGameObject));
     return false;
       }
       if (!this.CheckPlayerControllerIdForConnection(conn, playerControllerId))
     return false;
       if (LogFilter.logDev)
     Debug.Log((object) "NetworkServer ReplacePlayer");
       PlayerController playerController = new PlayerController(playerGameObject, playerControllerId);
       conn.SetPlayerController(playerController);
       view.m_PlayerId = playerController.playerControllerId;
       view.SetConnectionToClient(conn);
       if (LogFilter.logDev)
     Debug.Log((object) "NetworkServer ReplacePlayer setup local");
       if (this.SetupLocalPlayerForConnection(conn, view, playerController))
     return true;
       if (LogFilter.logDebug)
       {
     object[] objArray = new object[4];
     int index1 = 0;
     string str1 = "Replacing playerGameObject object netId: ";
     objArray[index1] = (object) str1;
     int index2 = 1;
     // ISSUE: variable of a boxed type
     __Boxed<NetworkInstanceId> local1 = (ValueType) playerGameObject.GetComponent<NetworkIdentity>().netId;
     objArray[index2] = (object) local1;
     int index3 = 2;
     string str2 = " asset ID ";
     objArray[index3] = (object) str2;
     int index4 = 3;
     // ISSUE: variable of a boxed type
     __Boxed<NetworkHash128> local2 = (ValueType) playerGameObject.GetComponent<NetworkIdentity>().assetId;
     objArray[index4] = (object) local2;
     Debug.Log((object) string.Concat(objArray));
       }
       this.FinishPlayerForConnection(conn, view, playerGameObject);
       return true;
 }
 internal bool InternalAddPlayerForConnection(NetworkConnection conn, GameObject playerGameObject, short playerControllerId)
 {
     NetworkIdentity view;
       if (!NetworkServer.GetNetworkIdentity(playerGameObject, out view))
       {
     if (LogFilter.logError)
       Debug.Log((object) ("AddPlayer: playerGameObject has no NetworkIdentity. Please add a NetworkIdentity to " + (object) playerGameObject));
     return false;
       }
       if (!this.CheckPlayerControllerIdForConnection(conn, playerControllerId))
     return false;
       PlayerController playerController1 = (PlayerController) null;
       GameObject gameObject = (GameObject) null;
       if (conn.GetPlayerController(playerControllerId, out playerController1))
     gameObject = playerController1.gameObject;
       if ((UnityEngine.Object) gameObject != (UnityEngine.Object) null)
       {
     if (LogFilter.logError)
       Debug.Log((object) ("AddPlayer: player object already exists for playerControllerId of " + (object) playerControllerId));
     return false;
       }
       PlayerController playerController2 = new PlayerController(playerGameObject, playerControllerId);
       conn.SetPlayerController(playerController2);
       view.m_PlayerId = playerController2.playerControllerId;
       view.SetConnectionToClient(conn);
       NetworkServer.SetClientReady(conn);
       if (this.SetupLocalPlayerForConnection(conn, view, playerController2))
     return true;
       if (LogFilter.logDebug)
       {
     object[] objArray = new object[4];
     int index1 = 0;
     string str1 = "Adding new playerGameObject object netId: ";
     objArray[index1] = (object) str1;
     int index2 = 1;
     // ISSUE: variable of a boxed type
     __Boxed<NetworkInstanceId> local1 = (ValueType) playerGameObject.GetComponent<NetworkIdentity>().netId;
     objArray[index2] = (object) local1;
     int index3 = 2;
     string str2 = " asset ID ";
     objArray[index3] = (object) str2;
     int index4 = 3;
     // ISSUE: variable of a boxed type
     __Boxed<NetworkHash128> local2 = (ValueType) playerGameObject.GetComponent<NetworkIdentity>().assetId;
     objArray[index4] = (object) local2;
     Debug.Log((object) string.Concat(objArray));
       }
       this.FinishPlayerForConnection(conn, view, playerGameObject);
       return true;
 }
 public override void OnServerRemovePlayer(NetworkConnection conn, PlayerController player)
 {
     short playerControllerId = player.playerControllerId;
     byte slot = player.gameObject.GetComponent<NetworkLobbyPlayer>().slot;
     this.lobbySlots[slot] = null;
     base.OnServerRemovePlayer(conn, player);
     foreach (NetworkLobbyPlayer player2 in this.lobbySlots)
     {
         if (player2 != null)
         {
             player2.GetComponent<NetworkLobbyPlayer>().readyToBegin = false;
             s_LobbyReadyToBeginMessage.slotId = player2.slot;
             s_LobbyReadyToBeginMessage.readyState = false;
             NetworkServer.SendToReady(null, 0x2b, s_LobbyReadyToBeginMessage);
         }
     }
     this.OnLobbyServerPlayerRemoved(conn, playerControllerId);
 }
 internal static void InternalAddPlayer(NetworkIdentity view, short playerControllerId)
 {
     if (LogFilter.logDebug)
     {
         Debug.LogWarning("ClientScene::InternalAddPlayer: playerControllerId : " + playerControllerId);
     }
     if (playerControllerId >= s_LocalPlayers.Count)
     {
         if (LogFilter.logWarn)
         {
             Debug.LogWarning("ClientScene::InternalAddPlayer: playerControllerId higher than expected: " + playerControllerId);
         }
         while (playerControllerId >= s_LocalPlayers.Count)
         {
             s_LocalPlayers.Add(new PlayerController());
         }
     }
     PlayerController player = new PlayerController {
         gameObject = view.gameObject,
         playerControllerId = playerControllerId,
         unetView = view
     };
     s_LocalPlayers[playerControllerId] = player;
     s_ReadyConnection.SetPlayerController(player);
 }
 internal bool GetPlayerController(short playerControllerId, out PlayerController playerController)
 {
     playerController = null;
     if (this.playerControllers.Count > 0)
     {
         for (int i = 0; i < this.playerControllers.Count; i++)
         {
             if (this.playerControllers[i].IsValid && (this.playerControllers[i].playerControllerId == playerControllerId))
             {
                 playerController = this.playerControllers[i];
                 return true;
             }
         }
         return false;
     }
     return false;
 }
	override public void OnServerRemovePlayer(NetworkConnection conn, PlayerController player)
	{
		base.OnServerRemovePlayer(conn, player);
		ServerRemovePlayer(conn, player);
	}
 public override void OnServerRemovePlayer(NetworkConnection conn, UnityEngine.Networking.PlayerController player)
 {
     base.OnServerRemovePlayer(conn, player);
     Debug.Log("Player Removed from server");
 }
Exemple #33
0
 public override void OnServerRemovePlayer(NetworkConnection conn, PlayerController player)
 {
     base.OnServerRemovePlayer(conn, player);
     //ServerManagement._instance.RpcRemovePlayer(player.playerControllerId);
     Debug.Log("RemovePlayer : " + player.playerControllerId);
 }
 private bool SetupLocalPlayerForConnection(NetworkConnection conn, NetworkIdentity uv, PlayerController newPlayerController)
 {
     if (LogFilter.logDev)
     Debug.Log((object) ("NetworkServer SetupLocalPlayerForConnection netID:" + (object) uv.netId));
       ULocalConnectionToClient connectionToClient = conn as ULocalConnectionToClient;
       if (connectionToClient == null)
     return false;
       if (LogFilter.logDev)
     Debug.Log((object) "NetworkServer AddPlayer handling ULocalConnectionToClient");
       if (uv.netId.IsEmpty())
     uv.OnStartServer();
       uv.RebuildObservers(true);
       this.SendSpawnMessage(uv, (NetworkConnection) null);
       connectionToClient.localClient.AddLocalPlayer(newPlayerController);
       uv.SetLocalPlayer(newPlayerController.playerControllerId);
       return true;
 }
 internal static bool GetPlayerController(short playerControllerId, out PlayerController player)
 {
     player = null;
     if (playerControllerId >= localPlayers.Count)
     {
         if (LogFilter.logWarn)
         {
             Debug.Log("ClientScene::GetPlayer: no local player found for: " + playerControllerId);
         }
         return false;
     }
     if (localPlayers[playerControllerId] == null)
     {
         if (LogFilter.logWarn)
         {
             Debug.LogWarning("ClientScene::GetPlayer: local player is null for: " + playerControllerId);
         }
         return false;
     }
     player = localPlayers[playerControllerId];
     return (player.gameObject != null);
 }
 /// <summary>
 ///   <para>Called on the server when a client removes a player.</para>
 /// </summary>
 /// <param name="conn">The connection to remove the player from.</param>
 /// <param name="player">The player controller to remove.</param>
 public virtual void OnServerRemovePlayer(NetworkConnection conn, PlayerController player)
 {
   if (!((UnityEngine.Object) player.gameObject != (UnityEngine.Object) null))
     return;
   NetworkServer.Destroy(player.gameObject);
 }
 internal static bool GetPlayerController(short playerControllerId, out PlayerController player)
 {
   player = (PlayerController) null;
   if ((int) playerControllerId >= ClientScene.localPlayers.Count)
   {
     if (LogFilter.logWarn)
       Debug.Log((object) ("ClientScene::GetPlayer: no local player found for: " + (object) playerControllerId));
     return false;
   }
   if (ClientScene.localPlayers[(int) playerControllerId] == null)
   {
     if (LogFilter.logWarn)
       Debug.LogWarning((object) ("ClientScene::GetPlayer: local player is null for: " + (object) playerControllerId));
     return false;
   }
   player = ClientScene.localPlayers[(int) playerControllerId];
   return (Object) player.gameObject != (Object) null;
 }
 internal static void InternalAddPlayer(NetworkIdentity view, short playerControllerId)
 {
   if (LogFilter.logDebug)
     Debug.LogWarning((object) ("ClientScene::InternalAddPlayer: playerControllerId : " + (object) playerControllerId));
   if ((int) playerControllerId >= ClientScene.s_LocalPlayers.Count)
   {
     if (LogFilter.logWarn)
       Debug.LogWarning((object) ("ClientScene::InternalAddPlayer: playerControllerId higher than expected: " + (object) playerControllerId));
     while ((int) playerControllerId >= ClientScene.s_LocalPlayers.Count)
       ClientScene.s_LocalPlayers.Add(new PlayerController());
   }
   PlayerController player = new PlayerController() { gameObject = view.gameObject, playerControllerId = playerControllerId, unetView = view };
   ClientScene.s_LocalPlayers[(int) playerControllerId] = player;
   ClientScene.s_ReadyConnection.SetPlayerController(player);
 }
 internal bool InternalAddPlayerForConnection(NetworkConnection conn, GameObject playerGameObject, short playerControllerId)
 {
     NetworkIdentity identity;
     if (!GetNetworkIdentity(playerGameObject, out identity))
     {
         if (LogFilter.logError)
         {
             Debug.Log("AddPlayer: playerGameObject has no NetworkIdentity. Please add a NetworkIdentity to " + playerGameObject);
         }
         return false;
     }
     if (!CheckPlayerControllerIdForConnection(conn, playerControllerId))
     {
         return false;
     }
     PlayerController playerController = null;
     GameObject gameObject = null;
     if (conn.GetPlayerController(playerControllerId, out playerController))
     {
         gameObject = playerController.gameObject;
     }
     if (gameObject != null)
     {
         if (LogFilter.logError)
         {
             Debug.Log("AddPlayer: player object already exists for playerControllerId of " + playerControllerId);
         }
         return false;
     }
     PlayerController player = new PlayerController(playerGameObject, playerControllerId);
     conn.SetPlayerController(player);
     identity.SetConnectionToClient(conn, player.playerControllerId);
     SetClientReady(conn);
     if (!this.SetupLocalPlayerForConnection(conn, identity, player))
     {
         if (LogFilter.logDebug)
         {
             Debug.Log(string.Concat(new object[] { "Adding new playerGameObject object netId: ", playerGameObject.GetComponent<NetworkIdentity>().netId, " asset ID ", playerGameObject.GetComponent<NetworkIdentity>().assetId }));
         }
         FinishPlayerForConnection(conn, identity, playerGameObject);
         if (identity.localPlayerAuthority)
         {
             identity.SetClientOwner(conn);
         }
     }
     return true;
 }