aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs22
-rw-r--r--OpenSim/Region/ScriptEngine/Shared/Api/Interface/ILSL_Api.cs1
-rw-r--r--OpenSim/Region/ScriptEngine/Shared/Api/Runtime/LSL_Stub.cs5
3 files changed, 28 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 e9f9c2d..5c02d98 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
@@ -4657,6 +4657,28 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
4657 ScriptSleep(5000); 4657 ScriptSleep(5000);
4658 } 4658 }
4659 4659
4660 public void llTeleportAgent(string agent, string simname, LSL_Vector pos, LSL_Vector lookAt)
4661 {
4662 m_host.AddScriptLPS(1);
4663 UUID agentId = new UUID();
4664 if (UUID.TryParse(agent, out agentId))
4665 {
4666 ScenePresence presence = World.GetScenePresence(agentId);
4667 if (presence != null)
4668 {
4669 // agent must not be a god
4670 if (presence.UserLevel >= 200) return;
4671
4672 // agent must be over the owners land
4673 if (m_host.OwnerID == World.LandChannel.GetLandObject(
4674 presence.AbsolutePosition.X, presence.AbsolutePosition.Y).LandData.OwnerID)
4675 {
4676 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);
4677 }
4678 }
4679 }
4680 }
4681
4660 public void llTextBox(string agent, string message, int chatChannel) 4682 public void llTextBox(string agent, string message, int chatChannel)
4661 { 4683 {
4662 IDialogModule dm = World.RequestModuleInterface<IDialogModule>(); 4684 IDialogModule dm = World.RequestModuleInterface<IDialogModule>();
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Interface/ILSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Interface/ILSL_Api.cs
index 99bfc97..5b8c316 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Interface/ILSL_Api.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Interface/ILSL_Api.cs
@@ -395,6 +395,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api.Interfaces
395 void llTargetOmega(LSL_Vector axis, double spinrate, double gain); 395 void llTargetOmega(LSL_Vector axis, double spinrate, double gain);
396 void llTargetRemove(int number); 396 void llTargetRemove(int number);
397 void llTeleportAgentHome(string agent); 397 void llTeleportAgentHome(string agent);
398 void llTeleportAgent(string agent, string simname, LSL_Vector pos, LSL_Vector lookAt);
398 void llTextBox(string avatar, string message, int chat_channel); 399 void llTextBox(string avatar, string message, int chat_channel);
399 LSL_String llToLower(string source); 400 LSL_String llToLower(string source);
400 LSL_String llToUpper(string source); 401 LSL_String llToUpper(string source);
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/LSL_Stub.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/LSL_Stub.cs
index 9c4437d..1366141 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/LSL_Stub.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/LSL_Stub.cs
@@ -1815,6 +1815,11 @@ namespace OpenSim.Region.ScriptEngine.Shared.ScriptBase
1815 m_LSL_Functions.llTargetRemove(number); 1815 m_LSL_Functions.llTargetRemove(number);
1816 } 1816 }
1817 1817
1818 public void llTeleportAgent(string agent, string simname, LSL_Vector pos, LSL_Vector lookAt)
1819 {
1820 m_LSL_Functions.llTeleportAgent(agent, simname, pos, lookAt);
1821 }
1822
1818 public void llTeleportAgentHome(string agent) 1823 public void llTeleportAgentHome(string agent)
1819 { 1824 {
1820 m_LSL_Functions.llTeleportAgentHome(agent); 1825 m_LSL_Functions.llTeleportAgentHome(agent);