aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/ScriptEngine
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Region/ScriptEngine')
-rw-r--r--OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs10
1 files changed, 9 insertions, 1 deletions
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
index 2b99ce6..46f6d8b 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
@@ -67,6 +67,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
67 internal bool throwErrorOnNotImplemented = true; 67 internal bool throwErrorOnNotImplemented = true;
68 internal AsyncCommandManager AsyncCommands = null; 68 internal AsyncCommandManager AsyncCommands = null;
69 internal float m_ScriptDelayFactor = 1.0f; 69 internal float m_ScriptDelayFactor = 1.0f;
70 internal float m_ScriptDistanceFactor = 1.0f;
70 71
71 public void Initialize(IScriptEngine ScriptEngine, SceneObjectPart host, uint localID, LLUUID itemID) 72 public void Initialize(IScriptEngine ScriptEngine, SceneObjectPart host, uint localID, LLUUID itemID)
72 { 73 {
@@ -81,6 +82,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
81 82
82 m_ScriptDelayFactor = config.Configs["XEngine"]. 83 m_ScriptDelayFactor = config.Configs["XEngine"].
83 GetFloat("ScriptDelayFactor", 1.0f); 84 GetFloat("ScriptDelayFactor", 1.0f);
85 m_ScriptDistanceFactor = config.Configs["XEngine"].
86 GetFloat("ScriptDistanceLimitFactor", 1.0f);
84 87
85 AsyncCommands = (AsyncCommandManager)ScriptEngine.AsyncCommands; 88 AsyncCommands = (AsyncCommandManager)ScriptEngine.AsyncCommands;
86 } 89 }
@@ -1493,7 +1496,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
1493 LSL_Types.Vector3 currentPos = llGetLocalPos(); 1496 LSL_Types.Vector3 currentPos = llGetLocalPos();
1494 if (llVecDist(currentPos, targetPos) > 10) 1497 if (llVecDist(currentPos, targetPos) > 10)
1495 { 1498 {
1496 targetPos = currentPos + 10 * llVecNorm(targetPos - currentPos); 1499 targetPos = currentPos + m_ScriptDistanceFactor * 10 * llVecNorm(targetPos - currentPos);
1497 } 1500 }
1498 1501
1499 if (part.ParentID != 0) 1502 if (part.ParentID != 0)
@@ -2125,6 +2128,11 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
2125 2128
2126 public void llRezAtRoot(string inventory, LSL_Types.Vector3 pos, LSL_Types.Vector3 vel, LSL_Types.Quaternion rot, int param) 2129 public void llRezAtRoot(string inventory, LSL_Types.Vector3 pos, LSL_Types.Vector3 vel, LSL_Types.Quaternion rot, int param)
2127 { 2130 {
2131 float dist = (float)llVecMag(llGetPos() - pos);
2132
2133 if(dist > m_ScriptDistanceFactor * 10.0f)
2134 return;
2135
2128 m_host.AddScriptLPS(1); 2136 m_host.AddScriptLPS(1);
2129 bool found = false; 2137 bool found = false;
2130 2138