From d763d68cc83e50f6e44c6caa14626e2501b70a13 Mon Sep 17 00:00:00 2001
From: client_Wu Xijin <364452445@qq.com>
Date: 星期二, 30 十月 2018 21:03:56 +0800
Subject: [PATCH] 4340 【前端】支持xlua方便IOS提审

---
 Lua/CSharpCallLua.cs |  160 +++++++++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 147 insertions(+), 13 deletions(-)

diff --git a/Lua/CSharpCallLua.cs b/Lua/CSharpCallLua.cs
index ab944d9..d97a36c 100644
--- a/Lua/CSharpCallLua.cs
+++ b/Lua/CSharpCallLua.cs
@@ -9,29 +9,163 @@
 public class CSharpCallLua
 {
     [CSharpCallLua]
-    public delegate void ByteArrayDelegate(ushort cmd, byte[] bytes);
+    public delegate void LuaNetPackage(ushort cmd, byte[] bytes);
+    static LuaNetPackage onRecieveLuaNetPackage;
 
-    static ByteArrayDelegate onRecieveNetPackage;
+    [CSharpCallLua]
+    public delegate void CSharpNetPackage(ushort cmd);
+    static CSharpNetPackage onCSharpNetPackage;
+
+    [CSharpCallLua]
+    public delegate void GeneralDelegate();
+    static GeneralDelegate configInit;
+
+    static GeneralDelegate beforePlayerDataInitialize;
+    static GeneralDelegate afterPlayerDataInitialize;
+    static GeneralDelegate switchAccount;
+    static GeneralDelegate playerLoginOk;
+    static GeneralDelegate mapInitOk;
+
+    [CSharpCallLua]
+    public delegate bool boolReturnedValueDelegate(int integer);
+    static boolReturnedValueDelegate isLuaDungeonVictoryWin;
+    static boolReturnedValueDelegate isLuaDungeonDefeatWin;
+
+    static boolReturnedValueDelegate isLuaDailyQuest;
+    static boolReturnedValueDelegate gotoLuaDailyQuest;
 
     public static void Init()
     {
-        LuaUtility.DoString("protocol.ProtocalRegister");
-        onRecieveNetPackage = LuaUtility.Global.Get<ByteArrayDelegate>("OnRecieveNetPackage");
-    }
+        LuaUtility.DoString("protocol.LuaProtocalRegister");
+        onRecieveLuaNetPackage = LuaUtility.Global.Get<LuaNetPackage>("OnRecieveNetPackage");
 
-    public static void CallLua(ushort cmd, byte[] bytes)
-    {
-        if (onRecieveNetPackage != null)
+        LuaUtility.DoString("protocol.CSharpProtocalEvent");
+        onCSharpNetPackage = LuaUtility.Global.Get<CSharpNetPackage>("OnCSharpNetEvent");
+
+        LuaUtility.DoString("event.AfterPlayerDataInitialize");
+        afterPlayerDataInitialize = LuaUtility.Global.Get<GeneralDelegate>("OnAfterPlayerDataInitialize");
+
+        LuaUtility.DoString("event.BeforePlayerDataInitialize");
+        beforePlayerDataInitialize = LuaUtility.Global.Get<GeneralDelegate>("OnBeforePlayerDataInitialize");
+
+        LuaUtility.DoString("event.MapInitOk");
+        mapInitOk = LuaUtility.Global.Get<GeneralDelegate>("OnMapInitOk");
+
+        LuaUtility.DoString("event.SwitchAccount");
+        switchAccount = LuaUtility.Global.Get<GeneralDelegate>("OnSwitchAccount");
+
+        LuaUtility.DoString("event.PlayerLoginOk");
+        playerLoginOk = LuaUtility.Global.Get<GeneralDelegate>("OnPlayerLoginOk");
+
+        LuaUtility.DoString("interface.DungeonInterface");
+        isLuaDungeonVictoryWin = LuaUtility.Global.Get<boolReturnedValueDelegate>("IsLuaDungeonVictoryWin");
+        isLuaDungeonDefeatWin = LuaUtility.Global.Get<boolReturnedValueDelegate>("IsLuaDungeonDefeatWin");
+
+        LuaUtility.DoString("interface.DailyQuestInterface");
+        isLuaDailyQuest = LuaUtility.Global.Get<boolReturnedValueDelegate>("IsLuaDailyQuest");
+        gotoLuaDailyQuest = LuaUtility.Global.Get<boolReturnedValueDelegate>("GotoDailyQuest");
+
+        LuaUtility.DoString("config.ConfigInit");
+        configInit = LuaUtility.Global.Get<GeneralDelegate>("ConfigInit");
+
+        if (configInit != null)
         {
-            onRecieveNetPackage(cmd, bytes);
+            configInit();
         }
     }
 
-    public class Test
+    public static void OnRecieveLuaNetPackage(ushort cmd, byte[] bytes)
     {
-        public int a = 0;
-        public int b = 2;
-        public int c = 3;
+        if (onRecieveLuaNetPackage != null)
+        {
+            onRecieveLuaNetPackage(cmd, bytes);
+        }
+    }
+
+    public static void OnRecieveCSharpNetPackage(ushort cmd)
+    {
+        if (onCSharpNetPackage != null)
+        {
+            onCSharpNetPackage(cmd);
+        }
+    }
+
+    public static void OnBeforePlayerDataInitialize()
+    {
+        if (beforePlayerDataInitialize != null)
+        {
+            beforePlayerDataInitialize();
+        }
+    }
+
+    public static void OnAfterPlayerDataInitialize()
+    {
+        if (afterPlayerDataInitialize != null)
+        {
+            afterPlayerDataInitialize();
+        }
+    }
+
+    public static void OnSwitchAccount()
+    {
+        if (switchAccount != null)
+        {
+            switchAccount();
+        }
+    }
+
+    public static void OnPlayerLoginOk()
+    {
+        if (playerLoginOk != null)
+        {
+            playerLoginOk();
+        }
+    }
+
+    public static void OnMapInitOk()
+    {
+        if (mapInitOk != null)
+        {
+            mapInitOk();
+        }
+    }
+
+    public static bool IsLuaDungeonVictoryWin(int dataMapId)
+    {
+        if (isLuaDungeonVictoryWin != null)
+        {
+            return isLuaDungeonVictoryWin(dataMapId);
+        }
+
+        return false;
+    }
+
+    public static bool IsLuaDungeonDefeatWin(int dataMapId)
+    {
+        if (isLuaDungeonDefeatWin != null)
+        {
+            return isLuaDungeonDefeatWin(dataMapId);
+        }
+
+        return false;
+    }
+
+    public static bool IsLuaDailyQuest(int dailyQuest)
+    {
+        if (isLuaDailyQuest != null)
+        {
+            return isLuaDailyQuest(dailyQuest);
+        }
+
+        return false;
+    }
+
+    public static void GotoLuaDailyQuest(int dailyquest)
+    {
+        if (gotoLuaDailyQuest != null)
+        {
+            gotoLuaDailyQuest(dailyquest);
+        }
     }
 
 }

--
Gitblit v1.8.0