예제 #1
0
        public static bool Event(eScripting eScripting)
        {
            if (Scripting._hLua_X64 != null || Scripting._hLua_X86 != null || Scripting._hCompiled != null)
            {
                if (!Scripting._bLoaded && (eScripting == eScripting.OnRun || eScripting == eScripting.OnFrame))
                {
                    Scripting._bLoaded = true;
                    Scripting.Event(eScripting.OnLoad);
                }
                try
                {
                    if (Scripting._hCompiled != null)
                    {
                        switch (eScripting)
                        {
                        case eScripting.OnClose:
                            Scripting._hCompiled.hInterface.OnClose();
                            break;

                        case eScripting.OnLoad:
                            Scripting._hCompiled.hInterface.OnLoad();
                            break;

                        case eScripting.OnRun:
                            Scripting._hCompiled.hInterface.OnRun();
                            break;
                        }
                    }
                    else if (Scripting._hLua_X64 != null)
                    {
                        LuaInterface_X64.LuaFunction function = Scripting._hLua_X64.LuaEngine.GetFunction(eScripting.ToString());
                        if (function == null)
                        {
                            return(false);
                        }
                        function.Call();
                    }
                    else
                    {
                        LuaInterface_X86.LuaFunction function = Scripting._hLua_X86.LuaEngine.GetFunction(eScripting.ToString());
                        if (function == null)
                        {
                            return(false);
                        }
                        function.Call();
                    }
                    return(true);
                }
                catch (Exception ex)
                {
                    int num = 1;
                    Program.Exception(ex, num != 0);
                    Scripting.Close();
                }
            }
            return(false);
        }
예제 #2
0
 public static void Frame()
 {
     if (Program.Manager.InvokeRequired)
     {
         Program.Manager.Invoke((Delegate) new Action(Event.Frame));
     }
     else
     {
         Scripting.Event(eScripting.OnFrame);
     }
 }
예제 #3
0
 public static void Player()
 {
     if (Program.Manager.InvokeRequired)
     {
         Program.Manager.Invoke((Delegate) new Action(Event.Player));
     }
     else
     {
         Scripting.Event(eScripting.OnRun);
     }
 }
예제 #4
0
 public static bool Close()
 {
     if (Scripting._hLua_X64 == null && Scripting._hLua_X86 == null && Scripting._hCompiled == null)
     {
         return(false);
     }
     foreach (KeyValuePair <string, ArrayList> keyValuePair in Scripting._hHotKey)
     {
         Game.PlayerInput.Unregister((Keys)keyValuePair.Value[0], (KeysModifier)keyValuePair.Value[1]);
     }
     foreach (KeyValuePair <AionEventKeyHandler, ArrayList> keyValuePair in Scripting._hHotKeyCompiled)
     {
         Game.PlayerInput.Unregister((Keys)keyValuePair.Value[0], (KeysModifier)keyValuePair.Value[1]);
     }
     Scripting._hHotKey.Clear();
     Scripting._hHotKeyCompiled.Clear();
     Scripting.Event(eScripting.OnClose);
     Scripting._hLua_X86  = (LuaDotNet_X86)null;
     Scripting._hLua_X64  = (LuaDotNet_X64)null;
     Scripting._hCompiled = (CompileResult)null;
     return(true);
 }