diff options
-rw-r--r-- | OpenSim/Region/ScriptEngine/Common/LSL_BuiltIn_Commands.cs | 8 | ||||
-rw-r--r-- | bin/OpenSim.ini.example | 1 |
2 files changed, 8 insertions, 1 deletions
diff --git a/OpenSim/Region/ScriptEngine/Common/LSL_BuiltIn_Commands.cs b/OpenSim/Region/ScriptEngine/Common/LSL_BuiltIn_Commands.cs index 60ed5c1..74ba4fa 100644 --- a/OpenSim/Region/ScriptEngine/Common/LSL_BuiltIn_Commands.cs +++ b/OpenSim/Region/ScriptEngine/Common/LSL_BuiltIn_Commands.cs | |||
@@ -78,6 +78,7 @@ namespace OpenSim.Region.ScriptEngine.Common | |||
78 | config.AddConfig("LL-Functions"); | 78 | config.AddConfig("LL-Functions"); |
79 | 79 | ||
80 | m_delayFactor = config.Configs["LL-Functions"].GetFloat("ScriptDelayFactor", 1.0f); | 80 | m_delayFactor = config.Configs["LL-Functions"].GetFloat("ScriptDelayFactor", 1.0f); |
81 | m_distanceFactor = config.Configs["LL-Functions"].GetFloat("ScriptDistanceLimitFactor", 1.0f); | ||
81 | 82 | ||
82 | } | 83 | } |
83 | 84 | ||
@@ -85,6 +86,7 @@ namespace OpenSim.Region.ScriptEngine.Common | |||
85 | private string m_state = "default"; | 86 | private string m_state = "default"; |
86 | private bool m_waitingForScriptAnswer=false; | 87 | private bool m_waitingForScriptAnswer=false; |
87 | private float m_delayFactor = 1.0f; | 88 | private float m_delayFactor = 1.0f; |
89 | private float m_distanceFactor = 1.0f; | ||
88 | 90 | ||
89 | 91 | ||
90 | private void ScriptSleep(int delay) | 92 | private void ScriptSleep(int delay) |
@@ -1658,7 +1660,7 @@ namespace OpenSim.Region.ScriptEngine.Common | |||
1658 | LSL_Types.Vector3 currentPos = llGetLocalPos(); | 1660 | LSL_Types.Vector3 currentPos = llGetLocalPos(); |
1659 | if (llVecDist(currentPos, targetPos) > 10) | 1661 | if (llVecDist(currentPos, targetPos) > 10) |
1660 | { | 1662 | { |
1661 | targetPos = currentPos + 10 * llVecNorm(targetPos - currentPos); | 1663 | targetPos = currentPos + m_distanceFactor * 10.0f * llVecNorm(targetPos - currentPos); |
1662 | } | 1664 | } |
1663 | 1665 | ||
1664 | if (part.ParentID != 0) | 1666 | if (part.ParentID != 0) |
@@ -2293,6 +2295,10 @@ namespace OpenSim.Region.ScriptEngine.Common | |||
2293 | m_host.AddScriptLPS(1); | 2295 | m_host.AddScriptLPS(1); |
2294 | bool found = false; | 2296 | bool found = false; |
2295 | 2297 | ||
2298 | float dist = (float)llVecDist(llGetPos(), pos); | ||
2299 | if(dist > m_distanceFactor * 10.0f) | ||
2300 | return; | ||
2301 | |||
2296 | // Instead of using return;, I'm using continue; because in our TaskInventory implementation | 2302 | // Instead of using return;, I'm using continue; because in our TaskInventory implementation |
2297 | // it's possible to have two items with the same task inventory name. | 2303 | // it's possible to have two items with the same task inventory name. |
2298 | // this is an easter egg of sorts. | 2304 | // this is an easter egg of sorts. |
diff --git a/bin/OpenSim.ini.example b/bin/OpenSim.ini.example index 43de20f..b72e7f5 100644 --- a/bin/OpenSim.ini.example +++ b/bin/OpenSim.ini.example | |||
@@ -529,6 +529,7 @@ AllowosConsoleCommand=false | |||
529 | AllowGodFunctions = false | 529 | AllowGodFunctions = false |
530 | 530 | ||
531 | ScriptDelayFactor = 1.0 | 531 | ScriptDelayFactor = 1.0 |
532 | ScriptDistanceLimitFactor = 1.0 | ||
532 | 533 | ||
533 | ; Maximum number of llListen events we allow per script | 534 | ; Maximum number of llListen events we allow per script |
534 | ; Set this to 0 to have no limit imposed. | 535 | ; Set this to 0 to have no limit imposed. |