it is a good idea to actually change the respective source file...

master
UbitUmarov 2020-02-26 03:28:23 +00:00
parent 828a3bb7f8
commit 6dd5ea0c96
1 changed files with 8 additions and 5 deletions

View File

@ -3011,13 +3011,14 @@ namespace OpenSim.Region.Framework.Scenes
public void RemoveScriptEvents(UUID scriptid) public void RemoveScriptEvents(UUID scriptid)
{ {
if (ParentGroup != null)
ParentGroup.RemoveScriptTargets(scriptid);
lock (m_scriptEvents) lock (m_scriptEvents)
{ {
if (m_scriptEvents.TryGetValue(scriptid, out scriptEvents ev)) if (m_scriptEvents.TryGetValue(scriptid, out scriptEvents ev))
{ {
if (((ev & (scriptEvents.at_target | scriptEvents.at_rot_target)) != 0) && ParentGroup != null)
ParentGroup.RemoveScriptTargets(scriptid);
m_scriptEvents.Remove(scriptid); m_scriptEvents.Remove(scriptid);
aggregateScriptEvents(); aggregateScriptEvents();
} }
@ -4000,12 +4001,14 @@ namespace OpenSim.Region.Framework.Scenes
// "[SCENE OBJECT PART]: Set script events for script with id {0} on {1}/{2} to {3} in {4}", // "[SCENE OBJECT PART]: Set script events for script with id {0} on {1}/{2} to {3} in {4}",
// scriptid, Name, ParentGroup.Name, events, ParentGroup.Scene.Name); // scriptid, Name, ParentGroup.Name, events, ParentGroup.Scene.Name);
// scriptEvents oldparts; // scriptEvents oldparts;
if (ParentGroup != null)
ParentGroup.RemoveScriptTargets(scriptid);
lock (m_scriptEvents) lock (m_scriptEvents)
{ {
if (m_scriptEvents.TryGetValue(scriptid, out scriptEvents ev)) if (m_scriptEvents.TryGetValue(scriptid, out scriptEvents ev))
{ {
if (((ev & (scriptEvents.at_target | scriptEvents.at_rot_target)) != 0) && ParentGroup != null)
ParentGroup.RemoveScriptTargets(scriptid);
if (ev == (scriptEvents)events) if (ev == (scriptEvents)events)
return; return;
} }