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