more on scripts *target* events

This commit is contained in:
UbitUmarov
2020-02-26 19:18:07 +00:00
parent 94f88e330b
commit ad5aff2d17
5 changed files with 37 additions and 21 deletions

View File

@@ -876,6 +876,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Instance
// and processing other non-timer events
m_StateChangeInProgress = false;
Part.RemoveScriptTargets(ItemID);
Part.SetScriptEvents(ItemID, (int)m_Script.GetStateEventFlags(State));
}
else
@@ -1072,8 +1073,6 @@ namespace OpenSim.Region.ScriptEngine.Shared.Instance
ReleaseControlsorPermissions(true);
Stop(timeout);
SceneObjectPart part = Engine.World.GetSceneObjectPart(LocalID);
part.CollisionSound = UUID.Zero;
AsyncCommandManager.RemoveScript(Engine, LocalID, ItemID);
m_TimerQueued = false;
@@ -1084,7 +1083,12 @@ namespace OpenSim.Region.ScriptEngine.Shared.Instance
StartParam = 0;
State = "default";
SceneObjectPart part = Engine.World.GetSceneObjectPart(LocalID);
if (part == null)
return;
part.CollisionSound = UUID.Zero;
part.RemoveScriptTargets(ItemID);
part.SetScriptEvents(ItemID, m_Script.GetStateEventFlags(State));
if (running)
Start();
@@ -1103,9 +1107,6 @@ namespace OpenSim.Region.ScriptEngine.Shared.Instance
RemoveState();
ReleaseControlsorPermissions(true);
m_Script.ResetVars();
SceneObjectPart part = Engine.World.GetSceneObjectPart(LocalID);
part.CollisionSound = UUID.Zero;
AsyncCommandManager.RemoveScript(Engine, LocalID, ItemID);
m_TimerQueued = false;
@@ -1116,8 +1117,13 @@ namespace OpenSim.Region.ScriptEngine.Shared.Instance
StartParam = 0;
State = "default";
part.SetScriptEvents(ItemID, m_Script.GetStateEventFlags(State));
SceneObjectPart part = Engine.World.GetSceneObjectPart(LocalID);
if(part != null)
{
part.CollisionSound = UUID.Zero;
part.RemoveScriptTargets(ItemID);
part.SetScriptEvents(ItemID, m_Script.GetStateEventFlags(State));
}
if (m_CurrentEvent != "state_entry" || oldState != "default")
{
m_SaveState = StatePersistedHere;