a few more changes on script running flag

This commit is contained in:
UbitUmarov
2021-11-20 04:39:29 +00:00
parent ed22f6ab10
commit 852245d81c
4 changed files with 22 additions and 7 deletions

View File

@@ -1937,7 +1937,11 @@ namespace OpenSim.Region.ScriptEngine.XEngine
{
IScriptInstance instance = GetInstance(itemID);
if (instance != null)
{
instance.Start();
if (instance.ScriptTask != null)
instance.ScriptTask.ScriptRunning = true;
}
else
m_runFlags.AddOrUpdate(itemID, true, 240);
@@ -1958,10 +1962,12 @@ namespace OpenSim.Region.ScriptEngine.XEngine
instance.StayStopped = true; // the script was stopped explicitly
instance.Stop(m_WaitForEventCompletionOnScriptStop);
if (instance.ScriptTask != null)
instance.ScriptTask.ScriptRunning = false;
}
else
{
// m_log.DebugFormat("[XENGINE]: Could not find script with ID {0} to stop in {1}", itemID, World.Name);
//m_log.DebugFormat("[XENGINE]: Could not find script with ID {0} to stop in {1}", itemID, World.Name);
m_runFlags.AddOrUpdate(itemID, false, 240);
}

View File

@@ -1504,14 +1504,22 @@ namespace OpenSim.Region.ScriptEngine.Yengine
{
XMRInstance instance = GetInstance(itemID);
if(instance != null)
{
instance.Running = true;
if (instance.m_Item != null)
instance.m_Item.ScriptRunning = true;
}
}
public void OnStopScript(uint localID, UUID itemID)
{
XMRInstance instance = GetInstance(itemID);
if(instance != null)
{
instance.Running = false;
if (instance.m_Item != null)
instance.m_Item.ScriptRunning = false;
}
}
public void OnGetScriptRunning(IClientAPI controllingClient,
@@ -1522,7 +1530,8 @@ namespace OpenSim.Region.ScriptEngine.Yengine
{
TraceCalls("[YEngine]: YEngine.OnGetScriptRunning({0},{1})", objectID.ToString(), itemID.ToString());
bool curRunnning = instance.Running & instance.m_Item.ScriptRunning;
bool curRunnning = instance.Running;
instance.m_Item.ScriptRunning = curRunnning;
IEventQueue eq = World.RequestModuleInterface<IEventQueue>();
if(eq == null)
{