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