Esempio n. 1
0
        private void bTest0_Click(object sender, EventArgs e)
        {
            string s = "function A() Test.MyTables.PrintPlusA('one', 'two') end " +
                       "function B() " +
                       "print(1)" +
                       "coroutine.yield()" +
                       "print(2)" +
                       "coroutine.yield()" +
                       "print(3)" +
                       "end " +
                       "RegisterCoroutine(A, 'A', true) " +
                       //"RegisterCoroutine(b, 'B', true) " +
                       "";

            bool         isCoroutine        = true;
            bool         autoResetCoroutine = true;
            HookStandard standard           = new HookStandard(
                new FuncStandard("A", FuncType.AutoCoroutine | FuncType.AllowAny),
                new FuncStandard("B", FuncType.AutoCoroutine | FuncType.AllowAnyCoroutine)
                );

            HookedScriptRunner hsr = new HookedScriptRunner(standard);


            ScriptBindings b = new ScriptBindings(this);

            b.HookDelegate("Test.YieldPls", (Func <int, string, WaitUntil>)AutoCoroutineTest, "", "");
            hsr.AddBindings(b);
            hsr["text"] = "test";
            hsr.LoadScript(s);
            hsr.LoadScript(s);
            hsr.LoadScript(s);
            hsr.LoadScript(s);
            hsr.LoadScript(s);
            hsr.LoadScript(s);
            hsr.RefreshLua();

            hsr.Execute("A");

            for (int j = 0; j < 30; j++)
            {
                Console.WriteLine($"==========C# {j + 1}");
                hsr.Execute("B");
            }



            //Script s = new Script();
            //s.Globals["PrintPlusA"]
            //var a = CallbackFunction.FromDelegate(s, (Action<string>)PrintPlusA);

            //a.
            //var b = CallbackFunction.FromDelegate(s, (Action<string, string>)PrintPlusA);
            //s.DoString(@"PrintPlusA(")

            //DynValue.NewCallbackFu(CallbackFunction)
            //DynValue.NewYieldReq()
            //Closure c = new Closure();
            //DynValue.FromObject(s.Globals["test"]).Function.GetUpvalue
        }
Esempio n. 2
0
 private void bExecute_Click(object sender, EventArgs e)
 {
     try
     {
         Console.WriteLine($"LOOP ============================");
         Console.WriteLine($"(C#) PreExecute");
         testScriptRunner.Execute("PreExecute");
         Console.WriteLine($"\r\n(C#) Execute");
         testScriptRunner.Execute("Execute");
         Console.WriteLine($"\r\n(C#) PostExecute");
         testScriptRunner.Execute("PostExecute");
     }
     catch
     {
         Console.WriteLine("ERROR: Script was aborted!");
         bDispose_Click(null, null);
     }
 }
Esempio n. 3
0
 private void bCallHook_Click(object sender, EventArgs e)
 {
     Console.WriteLine($"Executing {tbHook.Text}");
     testScriptRunner?.Execute(tbHook.Text);
 }