aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim
diff options
context:
space:
mode:
authorMelanie2012-03-29 14:45:56 +0200
committerMelanie2012-03-29 14:45:56 +0200
commit807bb85ac28af3ee6352bdf27db3aaeaf016265e (patch)
treecad99b870319e6626828237e260002b57c69bbd3 /OpenSim
parentMerge branch 'master' into careminster (diff)
downloadopensim-SC_OLD-807bb85ac28af3ee6352bdf27db3aaeaf016265e.zip
opensim-SC_OLD-807bb85ac28af3ee6352bdf27db3aaeaf016265e.tar.gz
opensim-SC_OLD-807bb85ac28af3ee6352bdf27db3aaeaf016265e.tar.bz2
opensim-SC_OLD-807bb85ac28af3ee6352bdf27db3aaeaf016265e.tar.xz
Allow llTeleportAgent to work in attachments
Diffstat (limited to 'OpenSim')
-rw-r--r--OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs10
1 files changed, 10 insertions, 0 deletions
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
index 4d7c40e..1a21e1c 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
@@ -4680,12 +4680,22 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
4680 // agent must not be a god 4680 // agent must not be a god
4681 if (presence.GodLevel >= 200) return; 4681 if (presence.GodLevel >= 200) return;
4682 4682
4683 if (simname == String.Empty)
4684 simname = World.RegionInfo.RegionName;
4685
4683 // agent must be over the owners land 4686 // agent must be over the owners land
4684 if (m_host.OwnerID == World.LandChannel.GetLandObject( 4687 if (m_host.OwnerID == World.LandChannel.GetLandObject(
4685 presence.AbsolutePosition.X, presence.AbsolutePosition.Y).LandData.OwnerID) 4688 presence.AbsolutePosition.X, presence.AbsolutePosition.Y).LandData.OwnerID)
4686 { 4689 {
4687 World.RequestTeleportLocation(presence.ControllingClient, simname, new Vector3((float)pos.x, (float)pos.y, (float)pos.z), new Vector3((float)lookAt.x, (float)lookAt.y, (float)lookAt.z), (uint)TeleportFlags.ViaLocation); 4690 World.RequestTeleportLocation(presence.ControllingClient, simname, new Vector3((float)pos.x, (float)pos.y, (float)pos.z), new Vector3((float)lookAt.x, (float)lookAt.y, (float)lookAt.z), (uint)TeleportFlags.ViaLocation);
4688 } 4691 }
4692 else // or must be wearing the prim
4693 {
4694 if (m_host.ParentGroup.AttachmentPoint != 0 && m_host.OwnerID == presence.UUID)
4695 {
4696 World.RequestTeleportLocation(presence.ControllingClient, simname, new Vector3((float)pos.x, (float)pos.y, (float)pos.z), new Vector3((float)lookAt.x, (float)lookAt.y, (float)lookAt.z), (uint)TeleportFlags.ViaLocation);
4697 }
4698 }
4689 } 4699 }
4690 } 4700 }
4691 } 4701 }