Exemple #1
0
        IEnumerator EmutiWait(PeEvent.EventArg arg)
        {
            if (PeGameMgr.IsMulti && NetworkInterface.IsClient && arg is Pathea.PeLauncher.LoadFinishedArg)
            {
                while (Entity == null || PeCreature.Instance == null ||
                       null == Entity.biologyViewCmpt || null == Entity.biologyViewCmpt.biologyViewRoot ||
                       null == Entity.biologyViewCmpt.biologyViewRoot.modelController)
                {
                    yield return(null);
                }

                // PlayerNetwork.RequestReqMonsterCtrl(Entity.Id);
                Entity.BehaveCmpt.Stop();

                //lz-2017.03.14 传送太远怪物会被重刷,需要重新骑上去
                if (null != m_Master && m_Master.Id == PeCreature.Instance.mainPlayerId)
                {
                    MousePickRides rides = Entity.biologyViewCmpt.biologyViewRoot.modelController.GetComponent <MousePickRides>();
                    if (rides)
                    {
                        rides.RecoverExecRide(m_Master);
                    }
                }
            }

            yield return(null);
        }
Exemple #2
0
 private void RideMount()
 {
     if (Mount && Mount.hasView && Mount.biologyViewCmpt && Mount.biologyViewCmpt.biologyViewRoot && Mount.biologyViewCmpt.biologyViewRoot.modelController &&
         Entity && Entity.operateCmpt)
     {
         MousePickRides rides = Mount.biologyViewCmpt.biologyViewRoot.modelController.GetComponent <MousePickRides>();
         if (rides)
         {
             rides.ExecRide(Entity);
         }
     }
 }
Exemple #3
0
        public override void OnDestroy()
        {
            base.OnDestroy();

            if (PeGameMgr.IsMulti && m_Master != null && PeCreature.Instance != null &&
                Entity.biologyViewCmpt != null && Entity.biologyViewCmpt.biologyViewRoot != null && Entity.biologyViewCmpt.biologyViewRoot.modelController != null
                )
            {
                if (m_Master.Id == PeCreature.Instance.mainPlayerId)
                {
                    MousePickRides rides = Entity.biologyViewCmpt.biologyViewRoot.modelController.GetComponent <MousePickRides>();
                    if (rides != null)
                    {
                        rides.ExecUnRide(m_Master);
                    }
                }
            }
        }
Exemple #4
0
        IEnumerator EloadMount(MousePickRides rides)
        {
            //lz-2017.02.23 保证有视图和有Ragdoll
            if (Entity == null || !Entity.hasView || null == Entity.biologyViewCmpt || null == Entity.biologyViewCmpt.monoRagdollCtrlr)
            {
                yield return(null);
            }

            //lz-2017.02.23 保证在其他事件执行之后
            yield return(null);

            if (rides && rides.ExecRide(m_Master))
            {
                StartPlayerCtrl(m_Master);
                if (m_Master.mountCmpt)
                {
                    m_Master.mountCmpt.SetMount(Entity);
                }
            }
        }
    public bool RecoverRelationship()
    {
        Pathea.PeEntity player = Pathea.EntityMgr.Instance.Get(_playerId);
        if (player == null)
        {
            return(false);
        }

        for (int i = 0; i < mMountsDataList.Count; i++)
        {
            if (mMountsDataList[i] != null && mMountsDataList[i]._monster != null &&
                mMountsDataList[i]._monster.biologyViewCmpt != null && mMountsDataList[i]._monster.biologyViewCmpt.biologyViewRoot != null &&
                mMountsDataList[i]._monster.biologyViewCmpt.biologyViewRoot.modelController != null)
            {
                MousePickRides rides = mMountsDataList[i]._monster.biologyViewCmpt.biologyViewRoot.modelController.GetComponent <MousePickRides>();
                if (rides)
                {
                    mMountsDataList[i]._monster.monstermountCtrl.LoadCtrl(player, rides);
                    return(true);
                }
            }
        }
        return(false);
    }
Exemple #6
0
 public void LoadCtrl(PeEntity master, MousePickRides peride)
 {
     m_Master = master;
     StartCoroutine(EloadMount(peride));
 }