diff --git a/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/LSL/Compiler.cs b/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/LSL/Compiler.cs index 9dd274ee3f..14ee1ecc26 100644 --- a/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/LSL/Compiler.cs +++ b/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/LSL/Compiler.cs @@ -13,7 +13,7 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler.LSL { private LSL2CSConverter LSL_Converter = new LSL2CSConverter(); private CSharpCodeProvider codeProvider = new CSharpCodeProvider(); - private int ScriptCompileCounter = 0; + private static UInt64 ScriptCompileCounter = 0; //private ICodeCompiler icc = codeProvider.CreateCompiler(); public string CompileFromFile(string LSOFileName) { diff --git a/OpenSim/Region/ScriptEngine/DotNetEngine/EventManager.cs b/OpenSim/Region/ScriptEngine/DotNetEngine/EventManager.cs index 92afcf3d36..4343ea1a95 100644 --- a/OpenSim/Region/ScriptEngine/DotNetEngine/EventManager.cs +++ b/OpenSim/Region/ScriptEngine/DotNetEngine/EventManager.cs @@ -54,6 +54,7 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine //myScriptEngine.Log.Verbose("ScriptEngine", "EventManager Hooking up to server events"); myScriptEngine.World.EventManager.OnObjectGrab += new OpenSim.Region.Environment.Scenes.EventManager.ObjectGrabDelegate(touch_start); myScriptEngine.World.EventManager.OnRezScript += new OpenSim.Region.Environment.Scenes.EventManager.NewRezScript(OnRezScript); + myScriptEngine.World.EventManager.OnRemoveScript += new OpenSim.Region.Environment.Scenes.EventManager.RemoveScript(OnRemoveScript); } @@ -73,6 +74,7 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine // Path.Combine("ScriptEngines", "Default.lsl"), // new OpenSim.Region.Environment.Scenes.Scripting.NullScriptHost() //); + Console.WriteLine("OnRezScript localID: " + localID + " LLUID: " + itemID.ToString() + " Size: " + script.Length); myScriptEngine.myScriptManager.StartScript( localID, itemID, @@ -80,7 +82,7 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine ); } - public void OnDeRezScript(uint localID, LLUUID itemID) + public void OnRemoveScript(uint localID, LLUUID itemID) { //myScriptEngine.myScriptManager.StartScript( // Path.Combine("ScriptEngines", "Default.lsl"), diff --git a/OpenSim/Region/ScriptEngine/DotNetEngine/EventQueueManager.cs b/OpenSim/Region/ScriptEngine/DotNetEngine/EventQueueManager.cs index 3ef21db838..23cd4e8f57 100644 --- a/OpenSim/Region/ScriptEngine/DotNetEngine/EventQueueManager.cs +++ b/OpenSim/Region/ScriptEngine/DotNetEngine/EventQueueManager.cs @@ -239,6 +239,10 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine lock (QueueLock) { + // Do we have any scripts in this object at all? If not, return + if (myScriptEngine.myScriptManager.Scripts.ContainsKey(localID) == false) + return; + foreach (LLUUID itemID in myScriptEngine.myScriptManager.GetScriptKeys(localID)) { // Add to each script in that object