diff options
Diffstat (limited to 'OpenSim')
-rw-r--r-- | OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs | 5 | ||||
-rw-r--r-- | OpenSim/Region/Framework/Scenes/ScenePresence.cs | 89 |
2 files changed, 19 insertions, 75 deletions
diff --git a/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs b/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs index 0208676..ec7dd77 100644 --- a/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs +++ b/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs | |||
@@ -1782,10 +1782,9 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer | |||
1782 | // Unlike a teleport, here we do not wait for the destination region to confirm the receipt. | 1782 | // Unlike a teleport, here we do not wait for the destination region to confirm the receipt. |
1783 | m_entityTransferStateMachine.UpdateInTransit(agent.UUID, AgentTransferState.CleaningUp); | 1783 | m_entityTransferStateMachine.UpdateInTransit(agent.UUID, AgentTransferState.CleaningUp); |
1784 | 1784 | ||
1785 | AgentHasMovedAway(agent, false); | 1785 | AgentHasMovedAway(agent, true); |
1786 | 1786 | ||
1787 | KillEntity(agent.Scene, agent.LocalId); | 1787 | agent.parcelRegionCross(); |
1788 | // agent.parcelRegionCross(false); | ||
1789 | 1788 | ||
1790 | agent.MakeChildAgent(); | 1789 | agent.MakeChildAgent(); |
1791 | 1790 | ||
diff --git a/OpenSim/Region/Framework/Scenes/ScenePresence.cs b/OpenSim/Region/Framework/Scenes/ScenePresence.cs index 977ff24..20d0f29 100644 --- a/OpenSim/Region/Framework/Scenes/ScenePresence.cs +++ b/OpenSim/Region/Framework/Scenes/ScenePresence.cs | |||
@@ -5503,8 +5503,8 @@ namespace OpenSim.Region.Framework.Scenes | |||
5503 | { | 5503 | { |
5504 | if (p.GodLevel < 200) | 5504 | if (p.GodLevel < 200) |
5505 | killsToSendto.Add(p); | 5505 | killsToSendto.Add(p); |
5506 | if (GodLevel < 200 && p.ParcelHideThisAvatar) | 5506 | // if (GodLevel < 200 && p.ParcelHideThisAvatar) |
5507 | killsToSendme.Add(p.LocalId); | 5507 | // killsToSendme.Add(p.LocalId); |
5508 | } | 5508 | } |
5509 | else | 5509 | else |
5510 | { | 5510 | { |
@@ -5567,89 +5567,34 @@ namespace OpenSim.Region.Framework.Scenes | |||
5567 | */ | 5567 | */ |
5568 | } | 5568 | } |
5569 | 5569 | ||
5570 | public void parcelRegionCross(bool abort) | 5570 | public void parcelRegionCross() |
5571 | { | 5571 | { |
5572 | // if (!ParcelHideThisAvatar) | 5572 | if (!ParcelHideThisAvatar || GodLevel >= 200) |
5573 | // return; | 5573 | return; |
5574 | 5574 | ||
5575 | List<ScenePresence> allpresences = null; | 5575 | List<ScenePresence> allpresences = null; |
5576 | allpresences = m_scene.GetScenePresences(); | 5576 | allpresences = m_scene.GetScenePresences(); |
5577 | 5577 | ||
5578 | // abort no longer complet | 5578 | List<uint> killsToSendme = new List<uint>(); |
5579 | if (abort) | ||
5580 | { | ||
5581 | List<ScenePresence> viewsToSendme = new List<ScenePresence>(); | ||
5582 | |||
5583 | foreach (ScenePresence p in allpresences) | ||
5584 | { | ||
5585 | if (p.IsDeleted || p == this || p.ControllingClient == null || !p.ControllingClient.IsActive) | ||
5586 | continue; | ||
5587 | |||
5588 | if (p.currentParcelUUID == m_currentParcelUUID) | ||
5589 | { | ||
5590 | viewsToSendme.Add(p); | ||
5591 | } | ||
5592 | } | ||
5593 | 5579 | ||
5594 | if (viewsToSendme.Count > 0) | 5580 | foreach (ScenePresence p in allpresences) |
5595 | { | ||
5596 | foreach (ScenePresence p in viewsToSendme) | ||
5597 | { | ||
5598 | if (p.IsChildAgent) | ||
5599 | continue; | ||
5600 | // m_log.Debug("[AVATAR]: viewMe: " + Lastname + " " + p.Lastname); | ||
5601 | ControllingClient.SendAvatarDataImmediate(p); | ||
5602 | p.SendAppearanceToAgent(this); | ||
5603 | p.SendAttachmentsToClient(ControllingClient); | ||
5604 | if (p.Animator != null) | ||
5605 | p.Animator.SendAnimPackToClient(ControllingClient); | ||
5606 | } | ||
5607 | } | ||
5608 | } | ||
5609 | else | ||
5610 | { | 5581 | { |
5582 | if (p.IsDeleted || p == this || p.ControllingClient == null || !p.ControllingClient.IsActive) | ||
5583 | continue; | ||
5611 | 5584 | ||
5612 | bool inprivate = ParcelHideThisAvatar && GodLevel < 200; | 5585 | if (p.currentParcelUUID == m_currentParcelUUID) |
5613 | List<uint> killsToSendme = new List<uint>(); | ||
5614 | |||
5615 | if (inprivate) | ||
5616 | { | 5586 | { |
5617 | foreach (ScenePresence p in allpresences) | 5587 | killsToSendme.Add(p.LocalId); |
5618 | { | ||
5619 | if (p.IsDeleted || p == this || p.ControllingClient == null || !p.ControllingClient.IsActive) | ||
5620 | continue; | ||
5621 | |||
5622 | if (p.currentParcelUUID == m_currentParcelUUID) | ||
5623 | { | ||
5624 | m_log.Debug("[AVATAR]: killMe: " + Lastname + " " + p.Lastname); | ||
5625 | killsToSendme.Add(p.LocalId); | ||
5626 | } | ||
5627 | } | ||
5628 | } | 5588 | } |
5629 | /* | 5589 | } |
5630 | else | ||
5631 | { | ||
5632 | foreach (ScenePresence p in allpresences) | ||
5633 | { | ||
5634 | if (p.IsDeleted || p == this || p.ControllingClient == null || !p.ControllingClient.IsActive) | ||
5635 | continue; | ||
5636 | 5590 | ||
5637 | killsToSendme.Add(p.LocalId); | 5591 | if (killsToSendme.Count > 0) |
5638 | } | 5592 | { |
5639 | } | 5593 | try |
5640 | */ | ||
5641 | if (killsToSendme.Count > 0) | ||
5642 | { | 5594 | { |
5643 | try | 5595 | ControllingClient.SendKillObject(killsToSendme); |
5644 | { | ||
5645 | ControllingClient.SendKillObject(killsToSendme); | ||
5646 | } | ||
5647 | catch (NullReferenceException) { } | ||
5648 | } | 5596 | } |
5649 | 5597 | catch (NullReferenceException) { } | |
5650 | if (Scene.AttachmentsModule != null) | ||
5651 | Scene.AttachmentsModule.DeleteAttachmentsFromScene(this, true); | ||
5652 | |||
5653 | } | 5598 | } |
5654 | } | 5599 | } |
5655 | 5600 | ||