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); } }); }
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); } }