/// <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); }
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); }