mirror of
https://github.com/opensim/opensim.git
synced 2026-08-06 09:16:28 +08:00
a few more changes on script running flag
This commit is contained in:
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
@@ -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)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user