mirror of
https://github.com/opensim/opensim.git
synced 2026-08-01 06:06:06 +08:00
more on scripts *target* events
This commit is contained in:
@@ -594,7 +594,8 @@ namespace OpenSim.Region.ScriptEngine.Yengine
|
||||
AsyncCommandManager.RemoveScript(m_Engine, m_LocalID, m_ItemID);
|
||||
m_XMRLSLApi.acm.TimerPlugin.CreateFromData(m_LocalID, m_ItemID, UUID.Zero, timers);
|
||||
|
||||
// Tell whoever cares which event handlers the new state has.
|
||||
// Tell whoever cares which event handlers the new state has.
|
||||
m_Part.RemoveScriptTargets(m_ItemID);
|
||||
m_Part.SetScriptEvents(m_ItemID, GetStateEventFlags(stateCode));
|
||||
|
||||
// keep link messages
|
||||
|
||||
@@ -66,8 +66,7 @@ namespace OpenSim.Region.ScriptEngine.Yengine
|
||||
// up. This makes sure we decrement m_CompiledScriptRefCount.
|
||||
~XMRInstance()
|
||||
{
|
||||
if(!m_disposed)
|
||||
Dispose();
|
||||
Dispose(false);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -76,11 +75,20 @@ namespace OpenSim.Region.ScriptEngine.Yengine
|
||||
*/
|
||||
public void Dispose()
|
||||
{
|
||||
// Tell script stop executing next time it calls CheckRun().
|
||||
Dispose(true);
|
||||
//GC.SuppressFinalize(this);
|
||||
}
|
||||
|
||||
public void Dispose(bool fromdispose)
|
||||
{
|
||||
if (m_disposed)
|
||||
return;
|
||||
|
||||
// Tell script stop executing next time it calls CheckRun().
|
||||
suspendOnCheckRunHold = true;
|
||||
|
||||
// Don't send us any more events.
|
||||
lock(m_RunLock)
|
||||
// Don't send us any more events.
|
||||
lock (m_RunLock)
|
||||
{
|
||||
if(m_Part != null)
|
||||
{
|
||||
|
||||
@@ -904,6 +904,7 @@ namespace OpenSim.Region.ScriptEngine.Yengine
|
||||
// 'state_entry()' event handler.
|
||||
m_RunOnePhase = "ResetLocked: posting default:state_entry() event";
|
||||
stateCode = 0;
|
||||
m_Part.RemoveScriptTargets(m_ItemID);
|
||||
m_Part.SetScriptEvents(m_ItemID, GetStateEventFlags(0));
|
||||
PostEvent(new EventParams("state_entry",
|
||||
zeroObjectArray,
|
||||
|
||||
Reference in New Issue
Block a user