Example #1
0
        /// <summary>
        /// 初始化坐骑数据(被驯服后数据)
        /// </summary>
        private bool InitMountData()
        {
            if (!Entity)
            {
                return(false);
            }

            m_Move = Entity.motionMove as Motion_Move_Motor;
            m_Move.Stop();

            SetctrlType(ECtrlType.Mount);
            Pathea.FastTravelMgr.Instance.OnFastTravel += OnFastTravel;

            m_PlayerForceDb = new ForceData((int)m_Master.GetAttribute(AttribType.CampID), (int)m_Master.GetAttribute(AttribType.DamageID), (int)m_Master.GetAttribute(AttribType.DefaultPlayerID));

            if (m_MountsForceDb == null)
            {
                m_MountsForceDb = new ForceData((int)Entity.GetAttribute(AttribType.CampID), (int)Entity.GetAttribute(AttribType.DamageID), (int)Entity.GetAttribute(AttribType.DefaultPlayerID));
            }

            if (!m_SkillData.canUse())
            {
                m_SkillData.Reset(MountsSkillDb.GetRandomSkill(Entity.ProtoID, MountsSkillKey.Mskill_L),
                                  MountsSkillDb.GetRandomSkill(Entity.ProtoID, MountsSkillKey.Mskill_Space),
                                  MountsSkillDb.GetRandomSkill(Entity.ProtoID, MountsSkillKey.Mskill_pounce)
                                  );
            }

            StartMountsForceDb();
            DispatchEvent(Entity);

            //lw:2017.3.13:读档后如果在晚上,怪物不能结束睡觉动作
            if (Entity.animCmpt != null)
            {
                Entity.animCmpt.SetBool("Sleep", false);
            }

            m_Init = true;
            return(true);
        }
Example #2
0
        /// <summary>
        /// 驯服过程中的摆动
        /// </summary>
        void UpdataTamingMove()
        {
            if (ctrlType != ECtrlType.Taming)
            {
                return;
            }

            if (m_AutoTime1 != -1)
            {
                //按照需求方向移动一段时间
                if (Time.time - m_AutoTime0 < m_AutoTime1)
                {
                    //移动
                    m_Move.Move(m_AutoMoveDir.normalized, m_AutoSpeed);
                }

                if (Time.time - m_AutoTime0 >= m_AutoTime1)
                {
                    m_Move.Stop();
                    m_AutoTime1 = -1;
                    if (m_CallBack != null)
                    {
                        m_CallBack();
                    }
                }
            }

            //按照需求到达指定地点

            //jump行为回调
            if (m_TameSkill != 0)
            {
                if (!Entity.skEntity.IsSkillRunning(m_TameSkill, true))
                {
                    m_TameSkill = 0;
                    if (m_CallBack != null)
                    {
                        m_CallBack();
                    }
                }
            }
        }