Exemplo n.º 1
0
        public override void Execute(SceneLogicInfo info, long deltaTime)
        {
            if (null == info || info.IsLogicFinished || info.IsLogicPaused)
            {
                return;
            }
            info.Time += deltaTime;
            if (info.Time > 1000)
            {
                TimeoutLogicInfo data = info.LogicDatas.GetData <TimeoutLogicInfo>();
                if (null == data)
                {
                    data = new TimeoutLogicInfo();
                    info.LogicDatas.AddData <TimeoutLogicInfo>(data);

                    SceneLogicConfig sc = info.SceneLogicConfig;
                    if (null != sc)
                    {
                        data.m_Timeout = long.Parse(sc.m_Params[0]);
                    }
                }
                data.m_CurTime += info.Time;
                info.Time       = 0;
                //执行逻辑
                if (null != data && !data.m_IsTriggered && data.m_CurTime >= data.m_Timeout)
                {
                    data.m_IsTriggered = true;
                    SceneLogicSendStoryMessage(info, "timeout:" + info.ConfigId, data.m_Timeout);
                }
            }
        }
        public SceneLogicConfig GetSceneLogicConfig(int resId, int id)
        {
            SceneLogicConfig cfg     = null;
            MapDataProvider  mapData = SceneConfigProvider.Instance.GetMapDataBySceneResId(resId);

            if (null != mapData)
            {
                cfg = mapData.m_SceneLogicMgr.GetDataById(id);
            }
            return(cfg);
        }