Beispiel #1
0
        /// <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);
        }
Beispiel #2
0
        /// <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);
        }