Пример #1
0
        /// <summary>
        /// 判断技能是否使用完毕,有连招的会继续使用连招。
        /// </summary>
        /// <param name="actor">角色对象。</param>
        /// <param name="skillid">技能编号。</param>
        /// <returns>是否使用完毕。</returns>
        public static bool IsCastSkillOver(ActorObj actor, int skillid)
        {
            if (actor.curActorState != ACTOR_STATE.AS_ATTACK)
            {
                return(true);
            }

            //如果在攻击状态没有动作,则视为技能施放完毕
            if (actor.GetComponent <Animation>().isPlaying == false && actor.m_bIsTower == false)
            {
                return(true);
            }

            //判断连招,是否组合技能
            ComposeSkillDesc desc = CoreEntry.gGameDBMgr.GetComposeSkillDesc(actor.curCastSkillID, skillid);

            if (desc != null)
            {
                StateParameter param = new StateParameter();
                param.state            = ACTOR_STATE.AS_ATTACK;
                param.skillID          = skillid;
                param.isComposeSkill   = true;
                param.composeSkillDesc = desc;

                //请求连招切换,能连招则认为此技能结束了
                bool bRet = actor.ComposeSkillCanCastSkill(param.composeSkillDesc.changeTime);
                return(bRet);
            }

            return(false);
        }
Пример #2
0
        public bool IsCastSkillOver(int nSkillID)
        {
            if (m_actor.curActorState == ACTOR_STATE.AS_ATTACK)
            {
                if (m_actor.GetComponent <Animation>().isPlaying == false && m_actor.m_bIsTower == false)
                {
                    LogMgr.UnityWarning("IsCastSkillOver.m_actor.animation.isPlaying == false :" + m_actor);
                    //如果在攻击状态没有动作,则视为技能施放完毕
                    return(true);
                }
            }
            else
            {
                return(true);
            }

            m_bNeedRandom = true;

            //判断连招
            StateParameter param = new StateParameter();

            param.state          = ACTOR_STATE.AS_ATTACK;
            param.skillID        = nSkillID;
            param.isComposeSkill = false;

            //是否组合技能
            ComposeSkillDesc composeSkillDesc = m_actor.m_gameDBMgr.GetComposeSkillDesc(m_actor.curCastSkillID, nSkillID);

            if (composeSkillDesc != null)
            {
                param.isComposeSkill   = true;
                param.composeSkillDesc = composeSkillDesc;
            }

            if (param.isComposeSkill)
            {
                bool bRet = m_actor.ComposeSkillCanCastSkill(param.composeSkillDesc.changeTime);
                return(bRet);
            }

            return(m_actor.curActorState != ACTOR_STATE.AS_ATTACK);
        }