60 lines
1.5 KiB
C#
60 lines
1.5 KiB
C#
using System.IO;
|
|
using Module.Log;
|
|
using XLua;
|
|
|
|
public class LuaMessageManager
|
|
{
|
|
private static LuaTable scriptEnv;
|
|
public static LuaFunction _FunMsgHandle;
|
|
|
|
public void InitMessageManager()
|
|
{
|
|
scriptEnv = LuaMain.luaEnv.NewTable();
|
|
|
|
var meta = LuaMain.luaEnv.NewTable();
|
|
meta.Set("__index", LuaMain.luaEnv.Global);
|
|
scriptEnv.SetMetaTable(meta);
|
|
meta.Dispose();
|
|
|
|
LuaMain.luaEnv.DoString("require 'LuaMessageManager'", "LuaMessageManager", scriptEnv);
|
|
|
|
_FunMsgHandle = scriptEnv.Get<LuaFunction>("ProcessPacket");
|
|
LogModule.DebugLog("msg lua fun:" + _FunMsgHandle);
|
|
}
|
|
|
|
public void LuaProcessPacket(int sysID, int cmdID, MemoryStream memStream)
|
|
{
|
|
if (scriptEnv != null)
|
|
{
|
|
_FunMsgHandle = scriptEnv.Get<LuaFunction>("ProcessPacket");
|
|
if (_FunMsgHandle != null)
|
|
_FunMsgHandle.Call(sysID, cmdID, memStream);
|
|
else
|
|
LogModule.ErrorLog("_FunMsgHandle is null, can't fine lua function : ProcessPacket !");
|
|
}
|
|
else
|
|
{
|
|
LogModule.ErrorLog("scriptEnv is null !!!");
|
|
}
|
|
}
|
|
|
|
#region
|
|
|
|
private static LuaMessageManager _Instance;
|
|
|
|
public static LuaMessageManager Instance
|
|
{
|
|
get
|
|
{
|
|
if (_Instance == null)
|
|
{
|
|
_Instance = new LuaMessageManager();
|
|
_Instance.InitMessageManager();
|
|
}
|
|
|
|
return _Instance;
|
|
}
|
|
}
|
|
|
|
#endregion
|
|
} |