- Home /
Deleting client objects if internet connection was lost...
Ok this code seams to work... now I'm wondering if this is the best way. Please feel free to comment my code xD
private var clients : Array;
private var sendEnabled : boolean = true;
@RPC function StopSendingClient(){ sendEnabled = false; }
@RPC function AddClient(networkPlayer : NetworkPlayer){ var add : boolean = true; var counter : int = 0;
for(counter = 0; counter < clients.length; counter++)
if(networkPlayer == clients[counter])
add = false;
if(add){
clients.Add(networkPlayer);
this.gameObject.networkView.RPC("StopSendingClient", networkPlayer);
}
}
function SendClient(){ if(sendEnabled) this.gameObject.networkView.RPC("AddClient", RPCMode.Server, Network.player); }
function Start(){ if(Network.isServer) clients = new Array(); else{ sendEnabled = true; InvokeRepeating("SendClient", 0.0, 2.0); } }
function OnGUI(){ if(Network.isServer){ GUILayout.Label(clients.length.ToString()); } }
function OnFailedToConnectToMasterServer(info: NetworkConnectionError){ Network.Disconnect(); MasterServer.UnregisterHost(); MasterServer.ClearHostList(); Debug.Log(info); }
function Update (){ var counter : int = 0; if(Network.isServer){ for(counter = 0; counter < clients.length; counter++){ var connectionPing : int = Network.GetAveragePing(clients[counter]);
if(connectionPing == -1){
Debug.Log("Deleting Player through GetAvaragePing");
Network.RemoveRPCs(clients[counter]);
Network.DestroyPlayerObjects(clients[counter]);
clients.RemoveAt(counter);
}
}
}if(Network.peerType == NetworkPeerType.Disconnected)
Application.LoadLevel("Lobby");
}
function OnDisconnectedFromServer(info : NetworkDisconnection){ Network.RemoveRPCs(Network.player); Network.DestroyPlayerObjects(Network.player);
}
To start with, that code is pretty hard to read. If you formatted it better, maybe you'd get more interest...
Feel free to CO$$anonymous$$$$anonymous$$ENT YOUR OWN CODE, if we are to spend any time trying to help you @slatius - if you cannot comment it, I dont see any point trying to understand it either.
Your answer
![](https://koobas.hobune.stream/wayback/20220612224619im_/https://answers.unity.com/themes/thub/images/avi.jpg)
Follow this Question
Related Questions
Crash when sending RPC 2 Answers
client to client ping - NAT punchthrough 1 Answer
RPC Call doesnt get called 2 Answers
RPC , string parameter is sent, but length is 0 1 Answer
RPC setName() not working correctly 0 Answers