Esempio n. 1
0
        /// <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);
            }
        }
Esempio n. 2
0
        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);
                    }
                }
            }
        }
Esempio n. 3
0
        /// <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);
            }
        }
Esempio n. 4
0
 /// <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);
     }
 }
Esempio n. 5
0
        /// <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);
            }
        }