When the user stops a script, have it remain stopped

Previously the script state was never saved for a !Running script, so upon region restart the script would be Running again.

The use of the 'StayStopped' flag is needed because all scripts are automatically stopped when the region shuts down, but in that case we shouldn't save in their state that they're !Running.
This commit is contained in:
Oren Hurvitz
2015-08-07 16:35:32 +03:00
parent a568f06b7f
commit 59da146e9d
3 changed files with 28 additions and 3 deletions

View File

@@ -699,6 +699,8 @@ namespace OpenSim.Region.ScriptEngine.XEngine
{
if (instance.Running)
{
instance.StayStopped = true; // the script was stopped explicitly
instance.Stop(0);
SceneObjectPart sop = m_Scene.GetSceneObjectPart(instance.ObjectID);
@@ -1914,6 +1916,9 @@ namespace OpenSim.Region.ScriptEngine.XEngine
if (instance != null)
{
lock (instance.EventQueue)
instance.StayStopped = true; // the script was stopped explicitly
instance.Stop(m_WaitForEventCompletionOnScriptStop);
}
else