diff options
author | UbitUmarov | 2016-11-13 19:25:32 +0000 |
---|---|---|
committer | UbitUmarov | 2016-11-13 19:25:32 +0000 |
commit | 4ebb4e371f44e8e8e9612d8e5eaab274263a2f89 (patch) | |
tree | c75bff69455874986336abc26c9cbaf4a5339f6f /OpenSim/Region/ScriptEngine/XEngine | |
parent | mantis 8055: fix default value of npc options (diff) | |
download | opensim-SC-4ebb4e371f44e8e8e9612d8e5eaab274263a2f89.zip opensim-SC-4ebb4e371f44e8e8e9612d8e5eaab274263a2f89.tar.gz opensim-SC-4ebb4e371f44e8e8e9612d8e5eaab274263a2f89.tar.bz2 opensim-SC-4ebb4e371f44e8e8e9612d8e5eaab274263a2f89.tar.xz |
prevent self call to llSetScriptState(ownname,FALSE) from blocking entire engine
Diffstat (limited to '')
-rwxr-xr-x | OpenSim/Region/ScriptEngine/XEngine/XEngine.cs | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/OpenSim/Region/ScriptEngine/XEngine/XEngine.cs b/OpenSim/Region/ScriptEngine/XEngine/XEngine.cs index e12f850..7822df9 100755 --- a/OpenSim/Region/ScriptEngine/XEngine/XEngine.cs +++ b/OpenSim/Region/ScriptEngine/XEngine/XEngine.cs | |||
@@ -1854,15 +1854,23 @@ namespace OpenSim.Region.ScriptEngine.XEngine | |||
1854 | return instance; | 1854 | return instance; |
1855 | } | 1855 | } |
1856 | 1856 | ||
1857 | public void SetScriptState(UUID itemID, bool running) | 1857 | public void SetScriptState(UUID itemID, bool running, bool self) |
1858 | { | 1858 | { |
1859 | IScriptInstance instance = GetInstance(itemID); | 1859 | IScriptInstance instance = GetInstance(itemID); |
1860 | if (instance != null) | 1860 | if (instance != null) |
1861 | { | 1861 | { |
1862 | if (running) | 1862 | if (running) |
1863 | instance.Start(); | 1863 | instance.Start(); |
1864 | else | 1864 | else |
1865 | instance.Stop(100); | 1865 | { |
1866 | if(self) | ||
1867 | { | ||
1868 | instance.Running = false; | ||
1869 | throw new EventAbortException(); | ||
1870 | } | ||
1871 | else | ||
1872 | instance.Stop(100); | ||
1873 | } | ||
1866 | } | 1874 | } |
1867 | } | 1875 | } |
1868 | 1876 | ||