Example #1
0
        public behaviac.EBTStatus CanAttack(ActorType aimActorType)
        {
            //   return behaviac.EBTStatus.BT_SUCCESS;

            if (!m_actor.CanChangeAttack() || m_actor.curActorState == ACTOR_STATE.AS_RUN)
            {
                return(behaviac.EBTStatus.BT_FAILURE);
            }

            //当前是否硬直状态
            if (m_actor.IsNonControl || m_actor.IsActorEndure())
            {
                return(behaviac.EBTStatus.BT_FAILURE);
            }


            //增加攻击对象
            m_AttackObj = m_actor.GetSelTarget();
            if (m_AttackObj)
            {
                return(behaviac.EBTStatus.BT_SUCCESS);
            }
            else
            {
                m_AttackObj = m_actor.AutoSelTarget(10);
                if (m_AttackObj)
                {
                    m_actor.SelectTarget(m_AttackObj);
                    return(behaviac.EBTStatus.BT_SUCCESS);
                }
            }
            return(behaviac.EBTStatus.BT_FAILURE);
        }
Example #2
0
        /// <summary>
        /// 判断角色是否可进行攻击。
        /// </summary>
        /// <param name="actor">角色对象。</param>
        /// <returns>是否可进行攻击。</returns>
        public static bool CanAttack(ActorObj actor)
        {
            if (!actor.CanChangeAttack() || actor.curActorState == ACTOR_STATE.AS_RUN)
            {
                return(false);
            }

            //当前是否硬直状态
            if (actor.IsNonControl || actor.IsActorEndure())
            {
                return(false);
            }
            return(true);
        }