Ejemplo n.º 1
0
        private void OnPlayerDisconnected(uLink.NetworkPlayer netPlayer)
        {
            var netUser = netPlayer.GetLocalData() as NetUser;

            if (netUser == null)
            {
                return;
            }

            // Let covalence know
            Interface.Call("OnUserDisconnected", Covalence.PlayerManager.FindPlayerById(netUser.userID.ToString()), "Unknown");
            Covalence.PlayerManager.PlayerDisconnected(netUser);

            // Delay removing player until OnPlayerDisconnect has fired in plugins
            Interface.Oxide.NextTick(() =>
            {
                if (playerData.ContainsKey(netUser))
                {
                    playerData.Remove(netUser);
                }
            });
        }
Ejemplo n.º 2
0
        private void OnPlayerDisconnected(uLink.NetworkPlayer netPlayer)
        {
            var netUser = netPlayer.GetLocalData() as NetUser;

            if (netUser != null)
            {
                // Call covalence hook
                var iplayer = covalence.PlayerManager.GetPlayer(netUser.userID.ToString());
                Interface.CallHook("OnUserDisconnected", iplayer, null);

                // Let covalence know
                covalence.PlayerManager.NotifyPlayerDisconnect(netUser);

                // Delay removing player until OnPlayerDisconnect has fired in plugins
                Interface.Oxide.NextTick(() =>
                {
                    if (playerData.ContainsKey(netUser))
                    {
                        playerData.Remove(netUser);
                    }
                });
            }
        }
    void uLink_OnPlayerDisconnected(uLink.NetworkPlayer player)
    {
        string name = "";

        serverBallScript[] serverScripts = FindObjectsOfType(typeof(serverBallScript)) as serverBallScript[];
        foreach (serverBallScript script in serverScripts)
        {
            if (script.playerID == player.id)
            {
                name = script.playerName;
            }
        }


        GameObject.FindGameObjectWithTag("chat").transform.uLinkNetworkView().RPC("Chat", uLink.NetworkPlayer.server, name + " has left the game.");



        if (cleanupAfterPlayers)
        {
            //only on blue

            if ((int)player.GetLocalData() == 0)
            {
                numberOfPlayersOnBlue--;
            }
            //only on red
            else if ((int)player.GetLocalData() == 1)
            {
                numberOfPlayersOnRed--;
            }
            //on blue and has flag
            else if ((int)player.GetLocalData() == 4)
            {
                numberOfPlayersOnBlue--;
                GameObject.FindGameObjectWithTag("redFlag").GetComponentInChildren <MeshRenderer>().enabled = true;

                transform.uLinkNetworkView().RPC("clientResetFlag", uLink.RPCMode.Buffered, 1);
                for (int i = 0; i < uLink.Network.connections.Length; i++)
                {
                    transform.uLinkNetworkView().RPC("clientResetFlag", uLink.Network.connections[i], 1);
                }
            }
            //on red and has flag
            else if ((int)player.GetLocalData() == 3)
            {
                numberOfPlayersOnRed--;
                GameObject.FindGameObjectWithTag("blueFlag").GetComponentInChildren <MeshRenderer>().enabled = true;

                transform.uLinkNetworkView().RPC("clientResetFlag", uLink.RPCMode.Buffered, 0);
                for (int i = 0; i < uLink.Network.connections.Length; i++)
                {
                    transform.uLinkNetworkView().RPC("clientResetFlag", uLink.Network.connections[i], 0);
                }
            }



            uLink.Network.DestroyPlayerObjects(player);



            // this is not really necessery unless you are removing NetworkViews without calling uLink.Network.Destroy
            uLink.Network.RemoveInstantiates(player);
        }
    }