// 寻路找怪处理 void FindEnamyTick() { if (m_bNotEnamyNpcFlag != 0) { return; } //如果有目标名字则寻找该目标,进行交互 if (m_Path.AutoSearchTargetName != "") { Obj_Character obj = Singleton <ObjManager> .GetInstance().FindObjCharacterInSceneByName(m_Path.AutoSearchTargetName); if (obj && obj.ObjType == Games.GlobeDefine.GameDefine_Globe.OBJ_TYPE.OBJ_NPC) { Obj_NPC objNpc = obj as Obj_NPC; //根据目标NPC的势力确认是对话还是攻击 if (Reputation.IsEnemy(objNpc) || Reputation.IsNeutral(objNpc)) { Singleton <ObjManager> .GetInstance().MainPlayer.StopMove(); m_Path.AutoSearchPosCache.Clear(); m_Path.ResetPath(); IsAutoSearching = false; m_EndPointCache.Clean(); //如果是地方NPC,则开始攻击 Singleton <ObjManager> .GetInstance().MainPlayer.OnSelectTarget(objNpc.gameObject); Singleton <ObjManager> .GetInstance().MainPlayer.OnEnterCombat(objNpc.GetComponent <Obj_Character>()); m_bNotEnamyNpcFlag = 1; // 杀怪任务寻路结束,如果没在自动战斗状态,则进入自动战斗 Obj_MainPlayer mainPlayer = Singleton <ObjManager> .GetInstance().MainPlayer; if (null != mainPlayer && !mainPlayer.GetAutoCombatState() && Singleton <ObjManager> .Instance.MainPlayer.IsOpenCabalAuto) { mainPlayer.EnterAutoCombat(); GameManager.gameManager.MissionManager.MissionAutoCombat = true; } } else { m_bNotEnamyNpcFlag = 2; return; } } } }
//自动寻路结束 void Finish() { //如果有结束后的回调事件则回调 if (null != m_Path.FinishCallBackEvent && Games.GlobeDefine.GameDefine_Globe.EVENT_DEFINE.EVENT_INVALID != m_Path.FinishCallBackEvent.EventID) { Singleton <EventSystem> .GetInstance().PushEvent(m_Path.FinishCallBackEvent); } //如果有目标名字则寻找该目标,进行交互 if (m_Path.AutoSearchTargetName != "") { Obj_Character obj = Singleton <ObjManager> .GetInstance().FindObjCharacterInSceneByName(m_Path.AutoSearchTargetName); if (obj && obj.ObjType == Games.GlobeDefine.GameDefine_Globe.OBJ_TYPE.OBJ_NPC) { Obj_NPC objNpc = obj as Obj_NPC; //根据目标NPC的势力确认是对话还是攻击 Singleton <ObjManager> .GetInstance().MainPlayer.OnSelectTarget(objNpc.gameObject); if (Reputation.IsEnemy(objNpc) || Reputation.IsNeutral(objNpc)) { //如果是地方NPC,则开始攻击 Singleton <ObjManager> .GetInstance().MainPlayer.OnEnterCombat(objNpc.GetComponent <Obj_Character>()); } else { //如果是友方NPC,则开始对话 Singleton <DialogCore> .GetInstance().Show(objNpc); objNpc.FaceTo(Singleton <ObjManager> .GetInstance().MainPlayer.ObjTransform.position); } } } m_EndPointCache.Clean(); m_Path.ResetPath(); IsAutoSearching = false; if (SceneMapLogic.Instance() != null) { SceneMapLogic.Instance().StopPlayClickEffect(); } }