/// <summary> /// 调用操作接收器 /// </summary> /// <param name="pararms">参数</param> /// <returns>返回是否中断剩余事件分发/返回Action是否成功</returns> public GameActionCallResult CallActionHandler(params object[] pararms) { GameActionCallResult result = null; object rso = null; if (Type == GameHandlerType.CSKernel) { result = DelegateActionHandler(pararms); } else if (Type == GameHandlerType.LuaModul) { result = LuaModulHandlerFunc.RunActionHandler(pararms); } else if (Type == GameHandlerType.LuaFun) { if (LuaSelf != null) { rso = LuaFunction.call(LuaSelf, pararms); } else { rso = LuaFunction.call(pararms); } if (rso != null && rso is GameActionCallResult) { result = rso as GameActionCallResult; } } if (result == null) { return(GameActionCallResult.CreateActionCallResult(false)); } return(result); }
/// <summary> /// 调用接收器 /// </summary> /// <param name="evtName">事件名称</param> /// <param name="pararms">参数</param> /// <returns>返回是否中断剩余事件分发/返回Action是否成功</returns> public bool CallEventHandler(string evtName, params object[] pararms) { bool result = false; if (Type == GameHandlerType.CSKernel) { result = DelegateEventHandler(evtName, pararms); } else if (Type == GameHandlerType.LuaModul) { result = LuaModulHandlerFunc.RunEventHandler(evtName, pararms); } else if (Type == GameHandlerType.LuaFun) { object rs = null; object[] pararms2 = new object[pararms.Length + 1]; pararms2[0] = evtName; for (int i = 0; i < pararms.Length; i++) { pararms2[i + 1] = pararms[i]; } if (LuaSelf != null) { rs = LuaFunction.call(LuaSelf, pararms2); } else { rs = LuaFunction.call(pararms2); } if (rs is bool) { result = (bool)rs; } } return(result); }