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()); } } }
/// <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(""); } }
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)); }
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); }