Beispiel #1
0
        private void RunLua()
        {
            string cmd = "";

            object[] result;

            //MethodInfo info = methods.GetType().GetMethod("WriteEnum", BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.DeclaredOnly | BindingFlags.Instance, null, new Type[] { typeof(int) }, null);
            //lua.RegisterFunction("WriteEnum", methods, info);
            bool a = false;
            int  b = 5;

            while (cmd != "quit")
            {
                Console.Write(">");
                cmd = Console.ReadLine();
                try
                {
                    result = lua.DoString(cmd);
                    //lua.GetFunction("Out").Call(new object[] { a, b });
                    result = lua.GetFunction("Info").Call(new object[] {});
                    if (result != null)
                    {
                        foreach (object obj in result)
                        {
                            Logger.AddImportant("-" + obj.ToString());
                        }
                    }
                }
                catch (Exception ex)
                {
                    Logger.AddError(ex.ToString());
                }
            }
        }
Beispiel #2
0
 /// <summary>
 /// Invokes an user function
 /// </summary>
 /// <param name="func"></param>              L
 /// <param name="args"></param>
 /// <returns></returns>
 public object Invoke(string func, params object[] args)
 {
     try
     {
         return(scriptEngine.GetFunction(func).Call(args));
     }
     catch
     {
         return("");
     }
 }
Beispiel #3
0
 public Test()
 {
     //dynamic = new DynamicProgramming();
     //mikelChar = new CharacterNPC("Settings/Mikel.xml");
     //Init();
     //Go();
     lua = new LuaInterface.Lua();
     AI.Scripting.ScriptFunctions methods = new WiccanRede.AI.Scripting.ScriptFunctions(new NPC(mikelChar, new Microsoft.DirectX.Vector3(), null, null));
     RegisterNewMethod(methods);
     lua.DoFile(skript1);
     lua.GetFunction("Update").Call();
     //RunLua();
     //ai = new AICore(grid);
     string str = Console.ReadLine();
 }
 public object RunFunction(string name, object[] par)
 {
     return(lua.GetFunction(name).Call(par));
 }
Beispiel #5
0
        public void Triggerinterpreter(LuaInterface.LuaTable t)
        {
            CTrigger cTrigger = new CTrigger(mapData, IsTrigger);

            if (t["players"] != null)
            {
                LuaInterface.LuaTable players = (LuaInterface.LuaTable)t["players"];
                for (int i = 1; i <= players.Values.Count; i++)
                {
                    double v    = (double)Lua.GetFunction("ParsePlayer").Call(players[i])[0];
                    int    pnum = (int)v;

                    cTrigger.playerlist[pnum] = 1;
                }
            }
            if (t["flag"] != null)
            {
                LuaInterface.LuaTable flags = (LuaInterface.LuaTable)t["flag"];

                ushort flag = 0;
                for (int i = 1; i <= flags.Values.Count; i++)
                {
                    double v     = (double)Lua.GetFunction("ParseTrigFlag").Call(flags[i])[0];
                    int    flagv = (int)v;

                    flag += (ushort)(0b1 << flagv);
                }

                cTrigger.exeflag = flag;
            }
            if (t["conditions"] != null)
            {
                LuaInterface.LuaTable conds = (LuaInterface.LuaTable)t["conditions"];
                for (int i = 1; i <= conds.Values.Count; i++)
                {
                    LuaInterface.LuaTable con = (LuaInterface.LuaTable)conds[i];

                    bool tEnable = true;
                    if (con["Disable"] != null)
                    {
                        con     = (LuaInterface.LuaTable)con["item"];
                        tEnable = false;
                    }

                    TrigItem trigItem = GetTrigItem(con);
                    if (trigItem == null)
                    {
                        continue;
                    }


                    trigItem.IsEnable = tEnable;

                    cTrigger.conditions.Add(trigItem);
                }
            }
            if (t["actions"] != null)
            {
                LuaInterface.LuaTable acts = (LuaInterface.LuaTable)t["actions"];
                for (int i = 1; i <= acts.Values.Count; i++)
                {
                    LuaInterface.LuaTable act = (LuaInterface.LuaTable)acts[i];

                    bool tEnable = true;
                    if (act["Disable"] != null)
                    {
                        act     = (LuaInterface.LuaTable)act["item"];
                        tEnable = false;
                    }

                    TrigItem trigItem = GetTrigItem(act);
                    if (trigItem == null)
                    {
                        continue;
                    }

                    trigItem.IsEnable = tEnable;

                    cTrigger.actions.Add(trigItem);
                }
            }

            Triggers.Add(cTrigger);
        }