Exemple #1
0
        static IEnumerator TaskChangedCoroutine()
        {
            yield return(new SafeCoroutine.SafeWaitForSeconds(mTaskChangedCoroutineDelayTime));

            ClientEventMgr.Instance.FireEvent((int)ClientEvent.TASK_CHANGED, null);

            mTaskChangedCoroutine = null;
        }
Exemple #2
0
 public void StopLocalPlayerWalkCoroutine()
 {
     if (mLocalPlayerWalkCoroutine != null)
     {
         mLocalPlayerWalkCoroutine.Stop();
         mLocalPlayerWalkCoroutine = null;
     }
 }
Exemple #3
0
        //--------------------------------------------------------
        //  网络消息
        //--------------------------------------------------------


        //--------------------------------------------------------
        //  外部调用
        //--------------------------------------------------------
        public void Reset()
        {
            mNpcs.Clear();
            mEscortNpcs.Clear();
            mCreatings.Clear();

            if (mRefreshTaskNpcCoroutine != null)
            {
                mRefreshTaskNpcCoroutine.Stop();
                mRefreshTaskNpcCoroutine = null;
            }
        }
Exemple #4
0
 public override void DestroyBehaviour()
 {
     if (mUpdateTeamPosCd != null)
     {
         mUpdateTeamPosCd.Destroy();
         mUpdateTeamPosCd = null;
     }
     if (mPlayOpenSysRoutine != null)
     {
         mPlayOpenSysRoutine.Stop();
         mPlayOpenSysRoutine = null;
     }
     mNotEnterTipsTrigger.onPointerDown -= LostNotEnterTips;
     ClientEventMgr.Instance.UnsubscribeClientEvent((int)ClientEvent.CE_TEAM_INFO_CHANGED, TeamChange);
     base.DestroyBehaviour();
 }
Exemple #5
0
        public void CreateAllNpcs()
        {
            mEscortNpcIndex = 0;

            mNpcs.Clear();
            mEscortNpcs.Clear();
            mCreatings.Clear();

            mDoNotGuideNpcIds.Clear();

            BuildNpcCache();

            // 等到收到首次任务信息之后才刷新任务npc
            if (mRefreshTaskNpcCoroutine != null)
            {
                mRefreshTaskNpcCoroutine.Stop();
                mRefreshTaskNpcCoroutine = null;
            }
            mRefreshTaskNpcCoroutine = SafeCoroutine.CoroutineManager.StartCoroutine(RefreshTaskNpc());
        }
Exemple #6
0
        public override void EnableBehaviour(bool isEnable)
        {
            m_lastUnlockMapId = 0;

            mOpenRoot.SetActive(false);
            mEffectUnLock.SetActive(false);

            base.EnableBehaviour(isEnable);
            if (isEnable)
            {
                if (mUpdateTeamPosCd != null)
                {
                    mUpdateTeamPosCd.Destroy();
                    mUpdateTeamPosCd = null;
                }

                mNotEnterTipsTrigger.gameObject.SetActive(false);
                mNotEnterTips.SetActive(false);

                UpdatePlayerPos();
                TeamChange(null);
                //SetMapIconState(true);
                if (mPlayOpenSysRoutine != null)
                {
                    mPlayOpenSysRoutine.Stop();
                    mPlayOpenSysRoutine = null;
                }

                //CheckOpenInstance();
            }
            else
            {
                if (mPlayOpenSysRoutine != null)
                {
                    mPlayOpenSysRoutine.Stop();
                    mPlayOpenSysRoutine = null;
                }
            }
        }
Exemple #7
0
        /// <summary>
        /// 任务更新事件协程,避免短时间内多次刷新任务,造成卡顿
        /// </summary>
        static void StartTaskChangedCoroutine()
        {
            if (mTaskChangedCoroutine != null)
            {
                mTaskChangedCoroutine.Stop();
                mTaskChangedCoroutine = null;
            }

            if (mTaskChangedCoroutineDelayTime < 0f)
            {
                mTaskChangedCoroutineDelayTime = GameConstHelper.GetFloat("GAME_TASK_CHANGED_EVENT_DELAY");
            }

            // 如果配置成0,则立刻刷新
            if (mTaskChangedCoroutineDelayTime == 0f)
            {
                ClientEventMgr.Instance.FireEvent((int)ClientEvent.TASK_CHANGED, null);
            }
            else
            {
                mTaskChangedCoroutine = SafeCoroutine.CoroutineManager.StartCoroutine(TaskChangedCoroutine());
            }
        }
Exemple #8
0
        /// <summary>
        /// 响应点击地面的消息
        /// </summary>
        /// <param name="ent"></param>
        void OnClickCollision(CEventBaseArgs ent)
        {
            Actor local_player = Game.Instance.GetLocalPlayer();

            if (local_player == null)
            {
                return;
            }

            if (GameInput.Instance.GetEnableInput() == false || UIInputEvent.TouchedUI()) /* || InstanceManager.Instance.IsAutoFighting == true*/
            {
                return;
            }

            Vector3 hitPos = (Vector3)ent.arg;

            XNavMeshHit nesrestHit;

            if (XNavMesh.SamplePosition(hitPos, out nesrestHit, 5.0f, LevelManager.GetInstance().AreaExclude))
            {
                hitPos = nesrestHit.position;
            }

            StopLocalPlayerWalkCoroutine();
            mLocalPlayerWalkCoroutine = SafeCoroutine.CoroutineManager.StartCoroutine(LocalPlayerWalkCoroutine(hitPos));

            if (m_ArrowEffectTemp == null)
            {
                MainGame.HeartBehavior.StartCoroutine(LoadEffect(m_ClickEffectPath, hitPos));
            }
            //EffectManager.GetInstance().GetEffectEmitter(effect_path).CreateInstance(x => OnEffectResLoad(x, ));
            else
            {
                OnEffectResLoad(m_ArrowEffectTemp, hitPos);
            }
        }