aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorMW2007-03-08 18:22:20 +0000
committerMW2007-03-08 18:22:20 +0000
commitecd85fea012129e4c9eac3dad10937f42c709cc6 (patch)
treefe0ce6afed8226fba995cac22dd713fdbf54eda3
parentPrimitive's shape and scale are now saved into database and reloaded. (diff)
downloadopensim-SC-ecd85fea012129e4c9eac3dad10937f42c709cc6.zip
opensim-SC-ecd85fea012129e4c9eac3dad10937f42c709cc6.tar.gz
opensim-SC-ecd85fea012129e4c9eac3dad10937f42c709cc6.tar.bz2
opensim-SC-ecd85fea012129e4c9eac3dad10937f42c709cc6.tar.xz
When a user logs off , the server now tells the other clients to kill that avatar. (So no more half dead avatars messing up the landscape.)
Diffstat (limited to '')
-rw-r--r--src/OpenSimClient.cs8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/OpenSimClient.cs b/src/OpenSimClient.cs
index eb190e9..50d8c78 100644
--- a/src/OpenSimClient.cs
+++ b/src/OpenSimClient.cs
@@ -178,6 +178,14 @@ namespace OpenSim
178 break; 178 break;
179 case PacketType.LogoutRequest: 179 case PacketType.LogoutRequest:
180 ServerConsole.MainConsole.Instance.WriteLine("OpenSimClient.cs:ProcessInPacket() - Got a logout request"); 180 ServerConsole.MainConsole.Instance.WriteLine("OpenSimClient.cs:ProcessInPacket() - Got a logout request");
181 //tell all clients to kill our object
182 KillObjectPacket kill = new KillObjectPacket();
183 kill.ObjectData = new KillObjectPacket.ObjectDataBlock[1];
184 kill.ObjectData[0] = new KillObjectPacket.ObjectDataBlock();
185 kill.ObjectData[0].ID = this.ClientAvatar.localid;
186 foreach(OpenSimClient client in OpenSim_Main.sim.ClientThreads.Values) {
187 client.OutPacket(kill);
188 }
181 OpenSim_Main.gridServers.GridServer.LogoutSession(this.SessionID, this.AgentID, this.CircuitCode); 189 OpenSim_Main.gridServers.GridServer.LogoutSession(this.SessionID, this.AgentID, this.CircuitCode);
182 lock(OpenSim_Main.local_world.Entities) { 190 lock(OpenSim_Main.local_world.Entities) {
183 OpenSim_Main.local_world.Entities.Remove(this.AgentID); 191 OpenSim_Main.local_world.Entities.Remove(this.AgentID);