/// <summary> /// Fetches, loads and hooks up a script to an objects events /// </summary> /// <param name="itemID"></param> /// <param name="localID"></param> public void StartScript(uint localID, UUID itemID, string Script, int startParam, bool postOnRez) { lock (LUQueue) { if ((LUQueue.Count >= LoadUnloadMaxQueueSize) && m_started) { m_log.Error("[" + m_scriptEngine.ScriptEngineName + "]: ERROR: Load/unload queue item count is at " + LUQueue.Count + ". Config variable \"LoadUnloadMaxQueueSize\" " + "is set to " + LoadUnloadMaxQueueSize + ", so ignoring new script."); return; } LUStruct ls = new LUStruct(); ls.localID = localID; ls.itemID = itemID; ls.script = Script; ls.Action = LUType.Load; ls.startParam = startParam; ls.postOnRez = postOnRez; LUQueue.Enqueue(ls); } }
public void DoScriptLoadUnload() { if (!m_started) { return; } lock (LUQueue) { if (LUQueue.Count > 0) { LUStruct item = LUQueue.Dequeue(); if (item.Action == LUType.Unload) { _StopScript(item.localID, item.itemID); RemoveScript(item.localID, item.itemID); } else if (item.Action == LUType.Load) { m_log.DebugFormat("[{0}]: Loading script", m_scriptEngine.ScriptEngineName); _StartScript(item.localID, item.itemID, item.script, item.startParam, item.postOnRez); } } } }
/// <summary> /// Disables and unloads a script /// </summary> /// <param name="localID"></param> /// <param name="itemID"></param> public void StopScript(uint localID, UUID itemID) { LUStruct ls = new LUStruct(); ls.localID = localID; ls.itemID = itemID; ls.Action = LUType.Unload; ls.startParam = 0; ls.postOnRez = false; lock (LUQueue) { LUQueue.Enqueue(ls); } }
/// <summary> /// Fetches, loads and hooks up a script to an objects events /// </summary> /// <param name="itemID"></param> /// <param name="localID"></param> public void StartScript(uint localID, UUID itemID, string Script, int startParam, bool postOnRez) { lock (LUQueue) { if ((LUQueue.Count >= LoadUnloadMaxQueueSize) && m_started) { m_log.Error("[" + m_scriptEngine.ScriptEngineName + "]: ERROR: Load/unload queue item count is at " + LUQueue.Count + ". Config variable \"LoadUnloadMaxQueueSize\" "+ "is set to " + LoadUnloadMaxQueueSize + ", so ignoring new script."); return; } LUStruct ls = new LUStruct(); ls.localID = localID; ls.itemID = itemID; ls.script = Script; ls.Action = LUType.Load; ls.startParam = startParam; ls.postOnRez = postOnRez; LUQueue.Enqueue(ls); } }