using System.Collections; using System.Collections.Generic; using UnityEngine; using XLua; using System; [CSharpCallLua] public class CSharpCallLua { [CSharpCallLua] public delegate void LuaNetPackage(ushort cmd, byte[] bytes); static LuaNetPackage onRecieveLuaNetPackage; [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.LuaProtocalRegister"); onRecieveLuaNetPackage = LuaUtility.Global.Get("OnRecieveNetPackage"); LuaUtility.DoString("protocol.CSharpProtocalEvent"); onCSharpNetPackage = LuaUtility.Global.Get("OnCSharpNetEvent"); LuaUtility.DoString("event.AfterPlayerDataInitialize"); afterPlayerDataInitialize = LuaUtility.Global.Get("OnAfterPlayerDataInitialize"); LuaUtility.DoString("event.BeforePlayerDataInitialize"); beforePlayerDataInitialize = LuaUtility.Global.Get("OnBeforePlayerDataInitialize"); LuaUtility.DoString("event.MapInitOk"); mapInitOk = LuaUtility.Global.Get("OnMapInitOk"); LuaUtility.DoString("event.SwitchAccount"); switchAccount = LuaUtility.Global.Get("OnSwitchAccount"); LuaUtility.DoString("event.PlayerLoginOk"); playerLoginOk = LuaUtility.Global.Get("OnPlayerLoginOk"); LuaUtility.DoString("interface.DungeonInterface"); isLuaDungeonVictoryWin = LuaUtility.Global.Get("IsLuaDungeonVictoryWin"); isLuaDungeonDefeatWin = LuaUtility.Global.Get("IsLuaDungeonDefeatWin"); LuaUtility.DoString("interface.DailyQuestInterface"); isLuaDailyQuest = LuaUtility.Global.Get("IsLuaDailyQuest"); gotoLuaDailyQuest = LuaUtility.Global.Get("GotoDailyQuest"); LuaUtility.DoString("config.ConfigInit"); configInit = LuaUtility.Global.Get("ConfigInit"); if (configInit != null) { configInit(); } } static object lockojb1 = new object(); public static void OnRecieveLuaNetPackage(ushort cmd, byte[] bytes) { lock (lockojb1) { if (onRecieveLuaNetPackage != null) { onRecieveLuaNetPackage(cmd, bytes); } } } static object lockojb2 = new object(); public static void OnRecieveCSharpNetPackage(ushort cmd) { lock (lockojb2) { 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); } } }