diff options
Fixed bug, where the clients in a region weren't told to kill a user's avatar when that user teleported to a different region.
Diffstat (limited to 'OpenSim/Region/Environment/Scenes/SceneCommunicationService.cs')
-rw-r--r-- | OpenSim/Region/Environment/Scenes/SceneCommunicationService.cs | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/OpenSim/Region/Environment/Scenes/SceneCommunicationService.cs b/OpenSim/Region/Environment/Scenes/SceneCommunicationService.cs index 0355a1b..9a83710 100644 --- a/OpenSim/Region/Environment/Scenes/SceneCommunicationService.cs +++ b/OpenSim/Region/Environment/Scenes/SceneCommunicationService.cs | |||
@@ -10,6 +10,8 @@ using OpenSim.Framework.Communications; | |||
10 | 10 | ||
11 | namespace OpenSim.Region.Environment.Scenes | 11 | namespace OpenSim.Region.Environment.Scenes |
12 | { | 12 | { |
13 | public delegate void KillObjectDelegate(uint localID); | ||
14 | |||
13 | public class SceneCommunicationService //one instance per region | 15 | public class SceneCommunicationService //one instance per region |
14 | { | 16 | { |
15 | protected CommunicationsManager m_commsProvider; | 17 | protected CommunicationsManager m_commsProvider; |
@@ -22,8 +24,11 @@ namespace OpenSim.Region.Environment.Scenes | |||
22 | public event CloseAgentConnection OnCloseAgentConnection; | 24 | public event CloseAgentConnection OnCloseAgentConnection; |
23 | public event PrimCrossing OnPrimCrossingIntoRegion; | 25 | public event PrimCrossing OnPrimCrossingIntoRegion; |
24 | public event RegionUp OnRegionUp; | 26 | public event RegionUp OnRegionUp; |
27 | |||
28 | public KillObjectDelegate KillObject; | ||
25 | public string _debugRegionName = ""; | 29 | public string _debugRegionName = ""; |
26 | 30 | ||
31 | |||
27 | public string debugRegionName | 32 | public string debugRegionName |
28 | { | 33 | { |
29 | get { return _debugRegionName; } | 34 | get { return _debugRegionName; } |
@@ -276,6 +281,10 @@ namespace OpenSim.Region.Environment.Scenes | |||
276 | string capsPath = Util.GetCapsURL(avatar.ControllingClient.AgentId); | 281 | string capsPath = Util.GetCapsURL(avatar.ControllingClient.AgentId); |
277 | avatar.ControllingClient.SendRegionTeleport(regionHandle, 13, reg.ExternalEndPoint, 4, (1 << 4), capsPath); | 282 | avatar.ControllingClient.SendRegionTeleport(regionHandle, 13, reg.ExternalEndPoint, 4, (1 << 4), capsPath); |
278 | avatar.MakeChildAgent(); | 283 | avatar.MakeChildAgent(); |
284 | if (KillObject != null) | ||
285 | { | ||
286 | KillObject(avatar.LocalId); | ||
287 | } | ||
279 | uint newRegionX = (uint)(regionHandle >> 40); | 288 | uint newRegionX = (uint)(regionHandle >> 40); |
280 | uint newRegionY = (((uint)(regionHandle)) >> 8); | 289 | uint newRegionY = (((uint)(regionHandle)) >> 8); |
281 | uint oldRegionX = (uint)(m_regionInfo.RegionHandle >> 40); | 290 | uint oldRegionX = (uint)(m_regionInfo.RegionHandle >> 40); |