mirror of
https://github.com/opensim/opensim.git
synced 2026-07-07 21:25:47 +08:00
more on scripts *target* events
This commit is contained in:
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user