using System.Collections.Generic;
|
using UnityEngine;
|
using vnxbqy.UI;
|
using UnityEngine.AI;
|
using System.Collections;
|
|
|
|
public class PreFightMission : Singleton<PreFightMission>
|
|
{
|
private Vector3 m_FirstTrransferStartPos = new Vector3(183.84f, 62.44f, 25.56f);
|
private Vector3 m_FirstTrransferEndPos = new Vector3(161.33f, 51.545f, 34.84f);
|
private Vector3 m_SecondTransferStartPos = new Vector3(122.3f, 51.7f, 33.23f);
|
private Vector3 m_SecondTransferEndPos = new Vector3(96.26f, 6.51f, 46.66f);
|
|
/////////////////////////////////////////////////////////////
|
public bool IsHandleMissionState = false;
|
private bool m_IsServerNewPlayerMissionFinished = true;
|
private GA_NpcClientFunc m_FuncNpc;
|
private GA_NpcClientFightBoss m_Boss;
|
private SFXController m_MoveToEffect;
|
private SFXController m_ObstacleEffect;
|
private SimpleMapTrasfer m_SimpleTransfer;
|
private NavMeshObstacle m_Obstacle;
|
private UIEffect m_UIEffect;
|
|
private int cacheMinAttack;
|
private int cacheMaxAttack;
|
|
public bool faBaoSkillShow = false;
|
|
private SFXController m_FabaoEffect;
|
public UIEffect m_HuaShouEffect;
|
private bool m_StartScaleBoss = false;
|
private bool m_StartCheckFabaoEffect1 = false;
|
private bool m_StartCheckFabaoEffect2 = false;
|
private float m_EffectAppearTime = 1.5f;
|
private Vector3 m_FabaoAccspeed;
|
public bool IsHeroCanCastSkill = true;
|
private bool m_Is_Step_2_KillRockFinished = false;
|
private HeadUpQuestSign m_QuestSign;
|
public bool updateAI = false;
|
|
private int npcDeadCount;
|
public bool needCreate1002 = false;
|
private NavMeshObstacle m_1_Obs;
|
private NavMeshObstacle m_2_Obs;
|
private NavMeshObstacle m_3_Obs;
|
private NavMeshObstacle m_4_Obs;
|
|
private int m_SpecialGuideId = -1;
|
public int SpecialGuideId
|
{
|
get
|
{
|
return m_SpecialGuideId;
|
}
|
}
|
|
private GameObject m_KC_Yun = null;
|
private bool m_CamAnimOver = false;
|
|
public class Mission
|
{
|
public uint id;
|
public byte status;
|
}
|
|
private enum E_AfterAttackType
|
{
|
None,
|
RefreshRock,
|
}
|
|
private E_AfterAttackType m_AfterAttackType;
|
|
public Dictionary<uint, Mission> s_MissionDict = new Dictionary<uint, Mission>();
|
public Dictionary<uint, List<int>> missionNpcDict = new Dictionary<uint, List<int>>();
|
|
public List<RefreshNpcHandler> refreshNpcHandlerList = new List<RefreshNpcHandler>();
|
|
public Dictionary<uint, List<NavMeshObstacle>> s_MissionImpasseDict = new Dictionary<uint, List<NavMeshObstacle>>();
|
|
SkillContainer m_SkillContainer;
|
SkillContainer skillContainer { get { return m_SkillContainer ?? (m_SkillContainer = GameObject.FindObjectOfType<SkillContainer>()); } }
|
|
public void PreLoad()
|
{
|
var _actorShowConfig = ActorShowConfig.Get(9);
|
|
GameObject _prefab = InstanceResourcesLoader.LoadEffect(_actorShowConfig.effect.Length > 0 ? _actorShowConfig.effect[0] : 0);
|
GameObjectPoolManager.Instance.CacheGameObject(_prefab, 1, false);
|
_prefab = InstanceResourcesLoader.LoadEffect(_actorShowConfig.uieffect);
|
GameObjectPoolManager.Instance.CacheGameObject(_prefab, 1, false);
|
UILoader.LoadBossShow(_actorShowConfig.cam);
|
|
_actorShowConfig = ActorShowConfig.Get(12);
|
|
_prefab = InstanceResourcesLoader.LoadEffect(_actorShowConfig.effect.Length > 0 ? _actorShowConfig.effect[0] : 0);
|
GameObjectPoolManager.Instance.CacheGameObject(_prefab, 1, false);
|
_prefab = InstanceResourcesLoader.LoadEffect(_actorShowConfig.uieffect);
|
GameObjectPoolManager.Instance.CacheGameObject(_prefab, 1, false);
|
UILoader.LoadBossShow(_actorShowConfig.cam);
|
}
|
|
public void HandleNewPlayerMission(H0820_tagMissionDict h0820)
|
{
|
if (h0820.MissionID == 1)
|
{
|
if ((h0820.DictKey.Equals("xinshou")))
|
{
|
if (h0820.DictValue == 1)
|
{
|
m_IsServerNewPlayerMissionFinished = false;
|
}
|
|
IsHandleMissionState = true;
|
}
|
}
|
}
|
|
public void HandleUpdatePackage(H0827_tagMissionDesc h0827)
|
{
|
if ((h0827.MissionID > 999 && h0827.MissionID < 1003) || h0827.MissionID == 1)
|
{
|
if (h0827.MissionID == 1001 && h0827.MissionState == 1)
|
{
|
if (s_MissionDict.ContainsKey(1002))
|
{
|
s_MissionDict.Remove(1002);
|
}
|
}
|
|
if (s_MissionDict.ContainsKey(h0827.MissionID))
|
{
|
s_MissionDict[h0827.MissionID].status = h0827.MissionState;
|
|
// 打完了石头人
|
if (h0827.MissionID == 1001 && h0827.MissionState == 2)
|
{
|
Step_2_KillRockFinished();
|
}
|
else if (h0827.MissionID == 1002 && h0827.MissionState == 2)
|
{
|
Step_4_BossKilled();
|
}
|
}
|
else
|
{
|
Mission _mission = new Mission
|
{
|
id = h0827.MissionID,
|
status = h0827.MissionState
|
};
|
|
if (h0827.MissionState == 1)
|
{
|
if (StageLoad.Instance.IsServerPrepareOk(ServerType.Main))
|
{
|
HandlerMission(h0827.MissionID);
|
}
|
}
|
|
s_MissionDict.Add(h0827.MissionID, _mission);
|
}
|
|
if (h0827.MissionID == 1002 && h0827.MissionState == 2)
|
{
|
WindowCenter.Instance.windowAfterCloseEvent -= OnWindowClose;
|
WindowCenter.Instance.Close<TreasureSelectWin>();
|
WindowCenter.Instance.Close<NewGuideWin>();
|
var _win = WindowCenter.Instance.Get<MainInterfaceWin>();
|
if (_win)
|
{
|
Transform _temp = _win.transform.Find("CopyOfThePanel/HighSettingTip/BoxContainer");
|
_temp.SetActive(false);
|
_temp = _win.transform.Find("CopyOfThePanel/HighSettingTip/Container_Treasure");
|
_temp.SetActive(false);
|
}
|
}
|
}
|
}
|
|
public void Start()
|
{
|
mDestroy = false;
|
NewGuideModel _model = ModelCenter.Instance.GetModel<NewGuideModel>();
|
_model.arrowScale = 1;
|
|
IsHeroCanCastSkill = false;
|
var _temp = WindowCenter.Instance.uiRoot.baseCanvas.Find("MainInterfaceWin/CopyOfThePanel/TopRightTip");
|
_temp.SetActive(false);
|
_temp = WindowCenter.Instance.uiRoot.baseCanvas.Find("MainInterfaceWin/CopyOfThePanel/HighSettingTip/HighSettingShow");
|
_temp.SetActive(false);
|
_temp = WindowCenter.Instance.uiRoot.baseCanvas.Find("MainInterfaceWin/CopyOfThePanel/HighSettingTip/BoxContainer");
|
_temp.SetActive(false);
|
|
_temp = WindowCenter.Instance.uiRoot.baseCanvas.Find("MainInterfaceWin/CopyOfThePanel/HighSettingTip/Container_Treasure");
|
_temp.SetActive(false);
|
|
_temp = WindowCenter.Instance.uiRoot.baseCanvas.Find("MainInterfaceWin/InGameDownLoadProgress");
|
_temp.localScale = Vector3.zero;
|
|
//_temp = WindowCenter.Instance.uiRoot.baseCanvas.Find("MainInterfaceWin/SkillButtonTip/Pivot/CastSkillTip/SwitchPan_a");
|
//_temp.localScale = Vector3.zero;
|
//_temp = WindowCenter.Instance.uiRoot.baseCanvas.Find("MainInterfaceWin/SkillButtonTip/Pivot/CastSkillTip/Btn_SkillXp");
|
//_temp.localScale = Vector3.zero;
|
|
_temp = WindowCenter.Instance.uiRoot.baseCanvas.Find("MainInterfaceWin/ChatTip");
|
_temp.localScale = Vector3.zero;
|
_temp = WindowCenter.Instance.uiRoot.baseCanvas.Find("MainInterfaceWin/LowSettingTip");
|
_temp.localScale = Vector3.zero;
|
_temp = WindowCenter.Instance.uiRoot.baseCanvas.Find("MainInterfaceWin/SwitchShowBtn");
|
_temp.localScale = Vector3.zero;
|
_temp = WindowCenter.Instance.uiRoot.baseCanvas.Find("MainInterfaceWin/HeadPortraitTip");
|
_temp.localScale = Vector3.zero;
|
_temp = WindowCenter.Instance.uiRoot.baseCanvas.Find("MainInterfaceWin/HeadPortraitTip/PatternBtn");
|
_temp.localScale = Vector3.zero;
|
_temp = WindowCenter.Instance.uiRoot.baseCanvas.Find("MainInterfaceWin/HeadPortraitTip/VIPBtn");
|
_temp.GetComponent<Animator>().enabled = false;
|
_temp.localScale = Vector3.zero;
|
_temp = WindowCenter.Instance.uiRoot.baseCanvas.Find("MainInterfaceWin/FunctionForecastTip");
|
_temp.localScale = Vector3.zero;
|
|
ButtonEx _button = WindowCenter.Instance.uiRoot.baseCanvas.Find("MainInterfaceWin/HeadPortraitTip/Head").GetComponent<ButtonEx>();
|
_button.enabled = false;
|
|
skillContainer.skill1.icon.SetActive(false);
|
skillContainer.skill1.locked.SetActive(true);
|
|
skillContainer.skill1.transform.localScale = Vector3.zero;
|
skillContainer.skill2.transform.localScale = Vector3.zero;
|
skillContainer.skill3.transform.localScale = Vector3.zero;
|
skillContainer.skill4.transform.localScale = Vector3.zero;
|
skillContainer.blinkSkill.transform.localScale = Vector3.zero;
|
skillContainer.switchButton.SetActive(false);
|
m_Is_Step_2_KillRockFinished = false;
|
skillContainer.transform.localScale = Vector3.zero;
|
|
m_SpecialGuideId = 35;
|
|
// 判断处于新手任务的哪一个阶段
|
if (s_MissionDict.ContainsKey(1000) && s_MissionDict[1000].status == 1)
|
{
|
GA_Hero.s_MapSwitching = true;
|
_temp = WindowCenter.Instance.uiRoot.baseCanvas.Find("MainInterfaceWin/TaskAndTeamTip/TaskListTip");
|
_temp.SetActive(false);
|
_temp = WindowCenter.Instance.uiRoot.baseCanvas.Find("MainInterfaceWin/TaskSwithButton");
|
_temp.localScale = Vector3.zero;
|
_temp = WindowCenter.Instance.uiRoot.baseCanvas.Find("MainInterfaceWin/JoyStick");
|
_temp.localScale = Vector3.zero;
|
|
DebugEx.Log("未开始第一个任务...");
|
// 根据任务设置主角坐标
|
PlayerDatas.Instance.hero.InitBornPos(378, 52);
|
PlayerDatas.Instance.hero.Pos = new Vector3(188.984f, 62.47324f, 26.092f);
|
CameraController.Instance.Apply();
|
CameraController.Instance.PlayAnimationClip("Map000_kaishir");
|
|
m_KC_Yun = Object.Instantiate(InstanceResourcesLoader.LoadEffect(1066));
|
m_KC_Yun.transform.position = PlayerDatas.Instance.hero.Pos;
|
|
m_CamAnimOver = true;
|
GA_Hero.s_MapSwitching = true;
|
|
if (m_FuncNpc == null)
|
{
|
m_FuncNpc = CreateFuncNpc(10104001, new Vector3(187.93f, 62.5625f, 27.5f), new Vector3(0, 168, 0));
|
SelectionManager.Request(SelectionManager.E_Type.Green, m_FuncNpc);
|
Vector3 _direction = MathUtility.ForwardXZ(m_FuncNpc.Pos, PlayerDatas.Instance.hero.Pos);
|
PlayerDatas.Instance.hero.Forward = _direction;
|
m_FuncNpc.Forward = -_direction;
|
}
|
}
|
else if (s_MissionDict.ContainsKey(1001))
|
{
|
if (s_MissionDict[1001].status == 1)
|
{
|
_temp = WindowCenter.Instance.uiRoot.baseCanvas.Find("MainInterfaceWin/TaskAndTeamTip/TaskListTip");
|
_temp.SetActive(false);
|
_temp = WindowCenter.Instance.uiRoot.baseCanvas.Find("MainInterfaceWin/TaskSwithButton");
|
_temp.localScale = Vector3.zero;
|
PlayerDatas.Instance.hero.InitBornPos(322, 70);
|
Step_2_TransferFinished();
|
}
|
else if (s_MissionDict[1001].status == 2)
|
{
|
PlayerDatas.Instance.hero.InitBornPos(300, 75);
|
|
_temp = WindowCenter.Instance.uiRoot.baseCanvas.Find("MainInterfaceWin/HeadPortraitTip");
|
_temp.localScale = Vector3.one;
|
|
skillContainer.transform.localScale = Vector3.one;
|
// 创建一个格挡区域
|
m_Obstacle = SoMap.CreateImpasse.General(new Vector3(144.03f, 0, 34.77f), new Vector3(0, 84.09f, 0), new Vector3(8.5f, 1, 3));
|
// 格挡特效
|
m_ObstacleEffect = SFXPlayUtility.Instance.PlayWithEulerAngle(1040, new Vector3(145.79f, 51.9f, 34.711f), new Vector3(0, 84, 0));
|
m_ObstacleEffect.duration = 0;
|
|
Step_2_KillRockFinished();
|
|
}
|
}
|
else if (s_MissionDict.ContainsKey(1002))
|
{
|
if (s_MissionDict[1002].status == 1)
|
{
|
_temp = WindowCenter.Instance.uiRoot.baseCanvas.Find("MainInterfaceWin/TaskAndTeamTip/TaskListTip");
|
_temp.SetActive(false);
|
_temp = WindowCenter.Instance.uiRoot.baseCanvas.Find("MainInterfaceWin/TaskSwithButton");
|
_temp.localScale = Vector3.zero;
|
_temp = WindowCenter.Instance.uiRoot.baseCanvas.Find("MainInterfaceWin/HeadPortraitTip");
|
_temp.localScale = Vector3.one;
|
skillContainer.transform.localScale = Vector3.one;
|
updateAI = false;
|
// 创建一个开启对话框的区域
|
if (m_SimpleTransfer == null)
|
{
|
m_SimpleTransfer = CreateTransfer();
|
}
|
|
Vector3 _pos = new Vector3(124.65f, 51.494f, 33.01f);
|
m_SimpleTransfer.transform.position = _pos;
|
m_SimpleTransfer.transform.localScale = new Vector3(20, 20, 20);
|
|
m_SimpleTransfer.Init(-1, _pos, false, null, () =>
|
{
|
Debug.Log("触发第三个对话内容...");
|
|
Step_3_TalkFinished();
|
|
SoundPlayer.Instance.PlayBackGroundMusic(47);
|
|
BossShowModel.Instance.SetMisstionShow(1002, false);
|
BossShowModel.Instance.OnNpcAppear(1007);
|
BossShowModel.Instance.bossShowCompletedEvent += OnAfterBossShow;
|
GA_Hero.s_MapSwitching = true;
|
|
if (PlayerDatas.Instance.hero.State == E_ActorState.AutoRun)
|
{
|
PlayerDatas.Instance.hero.StopPathFind();
|
}
|
PlayerDatas.Instance.hero.IdleImmediate();
|
HeroBehaviour.onCastSkill += OnCastSkill;
|
});
|
|
PlayerDatas.Instance.hero.InitBornPos(270, 66);
|
}
|
else
|
{
|
_temp = WindowCenter.Instance.uiRoot.baseCanvas.Find("MainInterfaceWin/TaskAndTeamTip/TaskListTip");
|
_temp.SetActive(true);
|
|
Step_4_BossKilled();
|
|
m_FuncNpc = CreateFuncNpc(1006, new Vector3(126, 0, 34), Vector3.zero);
|
SelectionManager.Request(SelectionManager.E_Type.Green, m_FuncNpc);
|
|
PlayerDatas.Instance.hero.InitBornPos(256, 68);
|
|
Vector3 _dir = MathUtility.ForwardXZ(m_FuncNpc.Pos, PlayerDatas.Instance.hero.Pos);
|
PlayerDatas.Instance.hero.Forward = _dir;
|
m_FuncNpc.Forward = -_dir;
|
}
|
}
|
}
|
|
private void Step_2_KillRockFinished()
|
{
|
if (m_Is_Step_2_KillRockFinished)
|
{
|
return;
|
}
|
|
WindowCenter.Instance.Close<NewGuideWin>();
|
WindowCenter.Instance.Close<GuideMessageWin>();
|
|
needCreate1002 = true;
|
m_Is_Step_2_KillRockFinished = true;
|
|
if (m_FuncNpc == null)
|
{
|
m_FuncNpc = CreateFuncNpc(10104002, new Vector3(147.044f, 51.51167f, 38.064f), new Vector3(0, 121, 0));
|
m_QuestSign = HeadUpQuestSign.RequireHeadUpQuestSign(HeadUpQuestSign.Pattern.Exclamation, m_FuncNpc.MP_Name, 0, CameraController.Instance.CameraObject);
|
m_QuestSign.SetActive(true);
|
}
|
|
if (m_SimpleTransfer == null)
|
{
|
m_SimpleTransfer = CreateTransfer();
|
}
|
|
Vector3 _pos = new Vector3(147.106f, 51.494f, 38.01f);
|
|
m_SimpleTransfer.transform.position = _pos;
|
m_SimpleTransfer.transform.localScale = Vector3.one * 3f;
|
m_SimpleTransfer.Init(-1, _pos, false, null, () =>
|
{
|
GuideDialogueModel _model1 = ModelCenter.Instance.GetModel<GuideDialogueModel>();
|
_model1.dialogID = 1001;
|
_model1.onClose = Step_2_TalkFinished;
|
|
WindowCenter.Instance.Open<GuideDialogueWin>();
|
|
if (m_MoveToEffect)
|
{
|
SFXPlayUtility.Instance.Release(m_MoveToEffect);
|
m_MoveToEffect = null;
|
}
|
|
if (PlayerDatas.Instance.hero.State == E_ActorState.AutoRun)
|
{
|
PlayerDatas.Instance.hero.StopPathFind();
|
}
|
WindowCenter.Instance.Close<NewGuideWin>();
|
});
|
|
NewGuideModel _model2 = ModelCenter.Instance.GetModel<NewGuideModel>();
|
_model2.showMask = false;
|
_model2.content = Language.Get("Operate1");
|
_model2.componentPath = "BaseCanvas/MainInterfaceWin/TaskAndTeamTip/TaskListTip/Parent/TaskScroll View/Content/Main_1001";
|
_model2.size = new Vector2(276, 72);
|
_model2.direction = 3;
|
_model2.clickClosed = true;
|
_model2.pressedClose = false;
|
_model2.onClose = null;
|
WindowCenter.Instance.Open<NewGuideWin>();
|
|
// 创建箭头特效
|
m_MoveToEffect = SFXPlayUtility.Instance.Play(1052, PlayerDatas.Instance.hero.Root);
|
FaceTargetXZ _f = m_MoveToEffect.gameObject.AddComponent<FaceTargetXZ>();
|
_f.target = m_FuncNpc.Root;
|
|
SnxxzGame.Instance.StartCoroutine(WaitForGoToNpc(_pos));
|
|
}
|
|
private IEnumerator WaitForGoToNpc(Vector3 pos)
|
{
|
GA_Hero _hero = PlayerDatas.Instance.hero;
|
while (true)
|
{
|
if (mDestroy)
|
{
|
yield break;
|
}
|
if (_hero.IsIdle())
|
{
|
break;
|
}
|
yield return null;
|
}
|
if (!mDestroy)
|
{
|
PlayerDatas.Instance.hero.MoveToPosition(pos);
|
}
|
}
|
|
private void HandlerMission(uint missionId)
|
{
|
if (missionNpcDict.ContainsKey(missionId) == false)
|
{
|
missionNpcDict.Add(missionId, new List<int>());
|
}
|
|
if (missionId == 1001)
|
{
|
return;
|
}
|
|
if (s_MissionDict.ContainsKey(missionId))
|
{
|
return;
|
}
|
|
SoMap _soMap = ScriptableObjectLoader.LoadSoMapObjectGenerate(PlayerDatas.Instance.baseData.MapID);
|
|
if (_soMap)
|
{
|
SoMap.MissionTrigger _missionTrigger = _soMap.missionTriggerList.Find((SoMap.MissionTrigger _m) => _m.id == missionId);
|
|
if (_missionTrigger != null)
|
{
|
for (int i = 0; i < _missionTrigger.refreshNPCList.Count; ++i)
|
{
|
RefreshNpcHandler _refreshNpcHandler = new RefreshNpcHandler(SoMap.E_TriggerType.Mission, missionId);
|
_refreshNpcHandler.Init(_missionTrigger.refreshNPCList[i]);
|
refreshNpcHandlerList.Add(_refreshNpcHandler);
|
}
|
|
for (int i = 0; i < _missionTrigger.createImpasseList.Count; ++i)
|
{
|
NavMeshObstacle _obstacle = SoMap.CreateImpasse.General(_missionTrigger.createImpasseList[i].position,
|
_missionTrigger.createImpasseList[i].eulerAngles,
|
_missionTrigger.createImpasseList[i].localScale);
|
|
#if UNITY_EDITOR
|
_obstacle.name = "Impasse:" + _missionTrigger.createImpasseList[i].id;
|
#endif
|
|
if (s_MissionImpasseDict.ContainsKey(missionId) == false)
|
{
|
s_MissionImpasseDict.Add(missionId, new List<NavMeshObstacle>());
|
}
|
|
s_MissionImpasseDict[missionId].Add(_obstacle);
|
}
|
}
|
}
|
}
|
|
public void GeneralRefreshNpc(SoMap.E_TriggerType type, int id, SoMap.RefreshNPC data)
|
{
|
RefreshNpcHandler _refreshNpcHandler = new RefreshNpcHandler(type, (uint)id);
|
_refreshNpcHandler.Init(data);
|
refreshNpcHandlerList.Add(_refreshNpcHandler);
|
}
|
|
public void GeneralCreateImpasse(SoMap.E_TriggerType type, int id, SoMap.CreateImpasse data)
|
{
|
NavMeshObstacle _obstacle = SoMap.CreateImpasse.General(data.position,
|
data.eulerAngles,
|
data.localScale);
|
|
#if UNITY_EDITOR
|
_obstacle.name = "Impasse:" + data.id;
|
#endif
|
|
if (s_MissionImpasseDict.ContainsKey((uint)data.id) == false)
|
{
|
s_MissionImpasseDict.Add((uint)data.id, new List<NavMeshObstacle>());
|
}
|
|
s_MissionImpasseDict[(uint)data.id].Add(_obstacle);
|
}
|
|
public bool IsFinished()
|
{
|
return m_IsServerNewPlayerMissionFinished;
|
}
|
|
private SFXController m_PlayerFaBaoEffect;
|
|
private bool m_CheckFaBaoWinOpen = false;
|
|
public void Update()
|
{
|
for (int i = 0; i < refreshNpcHandlerList.Count; ++i)
|
{
|
refreshNpcHandlerList[i].Update();
|
}
|
|
if (m_CamAnimOver)
|
{
|
if (!CameraController.Instance.IsPlayingAnim)
|
{
|
GuideDialogueModel _model = ModelCenter.Instance.GetModel<GuideDialogueModel>();
|
_model.dialogID = 1000;
|
_model.onClose = Step_1_TalkFinished;
|
|
WindowCenter.Instance.Open<GuideDialogueWin>();
|
m_CamAnimOver = false;
|
|
Object.Destroy(m_KC_Yun);
|
m_KC_Yun = null;
|
}
|
}
|
|
if (m_StartScaleBoss)
|
{
|
if (m_Boss != null)
|
{
|
if (m_Boss.IsIdle())
|
{
|
|
float _scale = m_Boss.Root.localScale.x;
|
_scale -= Time.deltaTime;
|
|
if (_scale <= 1)
|
{
|
_scale = 1;
|
|
CA225_tagCMClientTaskCount _a225 = new CA225_tagCMClientTaskCount();
|
_a225.CountID = 1007;
|
GameNetSystem.Instance.SendInfo(_a225);
|
//Step_4_BossKilled();
|
m_StartScaleBoss = false;
|
|
var dataMapId = MapUtility.GetDataMapId(PlayerDatas.Instance.baseData.MapID);
|
var mapResConfig = MapResourcesConfig.GetConfig(dataMapId, PlayerDatas.Instance.baseData.dungeonLineId);
|
SoundPlayer.Instance.PlayBackGroundMusic(mapResConfig.Music);
|
}
|
|
m_Boss.Root.localScale = new Vector3(_scale, _scale, _scale);
|
}
|
}
|
}
|
|
if (m_StartCheckFabaoEffect1)
|
{
|
m_EffectAppearTime -= Time.deltaTime;
|
if (m_EffectAppearTime <= 0)
|
{
|
m_StartCheckFabaoEffect1 = false;
|
|
m_PlayerFaBaoEffect = SFXPlayUtility.Instance.PlayBattleEffect(1043, PlayerDatas.Instance.hero);
|
|
// 打开法宝界面
|
TreasureModel treasureModel = ModelCenter.Instance.GetModel<TreasureModel>();
|
treasureModel.newGotTreasureId = 101;
|
WindowCenter.Instance.Open<TreasureNewGotWin>();
|
|
FunctionUnlockFlyObject.functionUnLockShowEndEvent += FabaoEnd;
|
|
SFXPlayUtility.Instance.Release(m_FabaoEffect);
|
m_FabaoEffect = null;
|
}
|
}
|
|
if (m_CheckFaBaoWinOpen)
|
{
|
if (WindowCenter.Instance.IsOpen<TreasureSelectWin>())
|
{
|
Transform _temp = WindowCenter.Instance.uiRoot.normalCanvas.Find("TreasureSelectWin/Container_Treasures");
|
_temp.localScale = Vector3.zero;
|
_temp = WindowCenter.Instance.uiRoot.normalCanvas.Find("TreasureSelectWin/Btn_Back");
|
_temp.localScale = Vector3.zero;
|
|
m_CheckFaBaoWinOpen = false;
|
}
|
}
|
|
if (GA_Hero.s_MapSwitching)
|
{
|
if (PlayerDatas.Instance.hero != null
|
&& PlayerDatas.Instance.hero.IsRun())
|
{
|
PlayerDatas.Instance.hero.IdleImmediate();
|
}
|
}
|
}
|
|
private IEnumerator WaitForBack()
|
{
|
yield return WaitingForSecondConst.WaitMS1000;
|
GA_Hero.s_MapSwitching = false;
|
Transform _temp = WindowCenter.Instance.uiRoot.normalCanvas.Find("TreasureSelectWin/Btn_Back");
|
_temp.localScale = Vector3.one;
|
NewGuideModel _model = ModelCenter.Instance.GetModel<NewGuideModel>();
|
_model.showMask = false;
|
_model.content = "";
|
_model.componentPath = "NormalCanvas/TreasureSelectWin/Btn_Back";
|
_model.size = new Vector2(92, 81);
|
_model.direction = 2;
|
_model.arrowScale = 2;
|
_model.pressedClose = false;
|
_model.clickClosed = false;
|
_model.onClose = null;
|
WindowCenter.Instance.Open<NewGuideWin>();
|
|
PlayerDatas.Instance.hero.LockTarget = null;
|
PlayerDatas.Instance.hero.SelectTarget = null;
|
PlayerDatas.Instance.hero.Behaviour.StopKillUntilDieAI();
|
|
UI3DTreasureSelectStage.Instance.showCamera.GetComponent<UnityEngine.EventSystems.PhysicsRaycaster>().enabled = true;
|
WindowCenter.Instance.windowAfterCloseEvent += OnWindowClose;
|
}
|
|
private void OnWindowClose(Window win)
|
{
|
if (win is TreasureSelectWin)
|
{
|
GuideDialogueModel _dmodel = ModelCenter.Instance.GetModel<GuideDialogueModel>();
|
_dmodel.dialogID = 1006;
|
_dmodel.onClose = Step_4_TalkFinished;
|
|
WindowCenter.Instance.Open<GuideDialogueWin>();
|
Transform _temp = null;
|
_temp = WindowCenter.Instance.Get<MainInterfaceWin>().transform.Find("CopyOfThePanel/HighSettingTip/Container_Treasure");
|
_temp.SetActive(false);
|
|
WindowCenter.Instance.windowAfterCloseEvent -= OnWindowClose;
|
|
WindowCenter.Instance.Close<NewGuideWin>();
|
}
|
}
|
|
private void OnWindowOpen(Window win)
|
{
|
if (win is TreasureSelectWin)
|
{
|
WindowCenter.Instance.Close<NewGuideWin>();
|
WindowCenter.Instance.windowAfterOpenEvent -= OnWindowOpen;
|
|
if (m_Boss != null)
|
{
|
m_FuncNpc = CreateFuncNpc(1006, m_Boss.Pos, m_Boss.Root.eulerAngles);
|
m_FuncNpc.Root.localScale = m_Boss.Root.localScale;
|
m_FuncNpc.Pos = m_Boss.Pos;
|
m_FuncNpc.ActorInfo.PlayerName = m_Boss.NpcConfig.charName;
|
m_FuncNpc.RequestName();
|
SelectionManager.Request(SelectionManager.E_Type.Green, m_FuncNpc);
|
|
GAMgr.Instance.ServerDie(m_Boss.ServerInstID);
|
GAMgr.Instance.Release(m_Boss);
|
m_Boss = null;
|
}
|
}
|
}
|
|
private void FabaoEnd(FunctionUnlockType type)
|
{
|
if (type == FunctionUnlockType.Treasure)
|
{
|
skillContainer.skill1.transform.localScale = Vector3.one;
|
|
FunctionUnlockFlyObject.functionUnLockShowEndEvent -= FabaoEnd;
|
|
cacheMinAttack = PlayerDatas.Instance.extersion.MINATK;
|
cacheMaxAttack = PlayerDatas.Instance.extersion.MAXATK;
|
|
FuncConfigConfig _funcConfig = FuncConfigConfig.Get("PreFight_Fabao");
|
int _atk = int.Parse(_funcConfig.Numerical1);
|
PlayerDatas.Instance.extersion.MINATK = _atk;
|
PlayerDatas.Instance.extersion.MAXATK = _atk;
|
|
NewGuideModel _model = ModelCenter.Instance.GetModel<NewGuideModel>();
|
_model.size = new Vector2(79, 79);
|
_model.content = Language.Get("Operate2");
|
_model.componentPath = "BaseCanvas/MainInterfaceWin/SkillButtonTip/Pivot/CastSkillTip/Skill_Panel/Skill_Group1/Btn_Skill1/Img_Icon";
|
_model.clickClosed = true;
|
_model.pressedClose = false;
|
_model.showMask = false;
|
_model.onClose = () =>
|
{
|
GA_Hero.s_MapSwitching = false;
|
CameraController.Instance.MaskCamera.enabled = false;
|
CameraController.Instance.MaskCamera.SetActive(false);
|
CameraController.Instance.Mask.SetActive(false);
|
|
if (m_HuaShouEffect)
|
{
|
Object.Destroy(m_HuaShouEffect.gameObject);
|
m_HuaShouEffect = null;
|
}
|
|
PlayerDatas.Instance.hero.RequestShadow();
|
PlayerDatas.Instance.hero.CastSkill(PlayerDatas.Instance.skill.GetQuickSkillByPos(0).id);
|
};
|
|
WindowCenter.Instance.Open<NewGuideWin>();
|
IsHeroCanCastSkill = true;
|
|
m_HuaShouEffect = EffectMgr.Instance.PlayUIEffect(1050, 4500, skillContainer.skill1.icon.transform, true);
|
|
PlayerDatas.Instance.hero.OnSkillCompelete += OnSkillCompelete;
|
}
|
}
|
|
private void OnSkillCompelete(int skillID)
|
{
|
PlayerDatas.Instance.hero.OnSkillCompelete -= OnSkillCompelete;
|
List<GActor> _allActor = GAMgr.Instance.GetAll();
|
for (int i = 0; i < _allActor.Count; ++i)
|
{
|
GActorNpcFight _npcFight = _allActor[i] as GActorNpcFight;
|
if (_npcFight != null && _npcFight.NpcConfig.NPCID == 1006)
|
{
|
GAMgr.Instance.ServerDie(_npcFight.ServerInstID);
|
_npcFight.ActorInfo.ResetHp(0, 0);
|
_npcFight.ActorInfo.serverDie = true;
|
_npcFight.Die(PlayerDatas.Instance.hero.ServerInstID, 0);
|
if (_npcFight.State == E_ActorState.AutoRun)
|
{
|
_npcFight.State = E_ActorState.Idle;
|
}
|
}
|
}
|
}
|
|
/// <summary>
|
/// 第一次对话结束
|
/// 创建云朵, 发送任务
|
/// </summary>
|
private void Step_1_TalkFinished()
|
{
|
GA_Hero.s_MapSwitching = false;
|
|
CA225_tagCMClientTaskCount _a225 = new CA225_tagCMClientTaskCount();
|
_a225.CountID = 1;
|
GameNetSystem.Instance.SendInfo(_a225);
|
|
m_SimpleTransfer = CreateTransfer();
|
|
// 光标指示
|
m_MoveToEffect = SFXPlayUtility.Instance.PlayWithEulerAngle(1041, new Vector3(183.921f, 62.44f, 25.684f), new Vector3(90, 0, 0));
|
m_MoveToEffect.duration = -1;
|
Transform _temp = WindowCenter.Instance.uiRoot.baseCanvas.Find("MainInterfaceWin/JoyStick");
|
_temp.localScale = Vector3.one;
|
|
// 打开小提示窗口
|
NewGuideModel _model2 = ModelCenter.Instance.GetModel<NewGuideModel>();
|
_model2.showMask = false;
|
_model2.content = Language.Get("Operate3");
|
_model2.componentPath = "BaseCanvas/MainInterfaceWin/JoyStick/JoystickBase";
|
_model2.size = new Vector2(144, 144);
|
_model2.direction = 0;
|
_model2.pressedClose = false;
|
_model2.clickClosed = true;
|
_model2.onClose = null;
|
|
WindowCenter.Instance.Open<NewGuideWin>();
|
|
m_SimpleTransfer.Init(1044, m_FirstTrransferEndPos, true, () =>
|
{
|
if (m_MoveToEffect)
|
{
|
SFXPlayUtility.Instance.Release(m_MoveToEffect);
|
m_MoveToEffect = null;
|
}
|
|
if (m_UIEffect)
|
{
|
EffectMgr.Instance.RecyleUIEffect(m_UIEffect.effect, m_UIEffect.gameObject);
|
m_UIEffect = null;
|
}
|
|
if (m_HuaShouEffect)
|
{
|
m_HuaShouEffect.transform.position = Constants.Special_Hide_Position;
|
EffectMgr.Instance.RecyleUIEffect(1049, m_HuaShouEffect.gameObject);
|
m_HuaShouEffect = null;
|
}
|
|
WindowCenter.Instance.Close<NewGuideWin>();
|
|
}, Step_2_TransferFinished);
|
|
|
_temp = WindowCenter.Instance.uiRoot.baseCanvas.Find("MainInterfaceWin/JoyStick/JoystickBase");
|
m_HuaShouEffect = EffectMgr.Instance.PlayUIEffect(1049, 4500, _temp, true);
|
m_UIEffect = EffectMgr.Instance.PlayUIEffect(1095, 4500, _temp, true);
|
|
DebugEx.Log("第一个任务已经结束...");
|
}
|
|
/// <summary>
|
/// 从高台到战斗区移动结束
|
/// </summary>
|
private void Step_2_TransferFinished()
|
{
|
// 移除高台处的NPC
|
if (m_FuncNpc != null)
|
{
|
GAMgr.Instance.ServerDie(m_FuncNpc.ServerInstID);
|
GAMgr.Instance.Release(m_FuncNpc);
|
m_FuncNpc = null;
|
GameObjectPoolManager.Instance.UnLoadNPC(10104001);
|
}
|
|
// 创建一个格挡区域
|
m_Obstacle = SoMap.CreateImpasse.General(new Vector3(144.03f, 0, 34.77f), new Vector3(0, 84.09f, 0), new Vector3(8.5f, 1, 3));
|
// 格挡特效
|
m_ObstacleEffect = SFXPlayUtility.Instance.PlayWithEulerAngle(1040, new Vector3(145.79f, 51.9f, 34.711f), new Vector3(0, 84, 0));
|
m_ObstacleEffect.duration = 0;
|
|
if (m_SimpleTransfer == null)
|
{
|
m_SimpleTransfer = CreateTransfer();
|
}
|
|
Vector3 _pos = new Vector3(151.55f, 51.46f, 36.21f);
|
|
m_SimpleTransfer.transform.position = _pos;
|
m_SimpleTransfer.transform.localScale = new Vector3(14, 10, 14);
|
|
m_SimpleTransfer.Init(-1, _pos, false, null, () =>
|
{
|
skillContainer.transform.localScale = Vector3.one;
|
|
// 普攻引导
|
if (WindowCenter.Instance.IsOpen<NewGuideWin>() == true)
|
{
|
WindowCenter.Instance.Close<NewGuideWin>();
|
}
|
|
if (m_UIEffect)
|
{
|
EffectMgr.Instance.RecyleUIEffect(m_UIEffect.effect, m_UIEffect.gameObject);
|
m_UIEffect = null;
|
}
|
|
// 播放普攻按钮出现特效
|
Transform _temp = WindowCenter.Instance.uiRoot.baseCanvas.Find("MainInterfaceWin/SkillButtonTip/Pivot/CastSkillTip/AttackBtn");
|
m_UIEffect = EffectMgr.Instance.PlayUIEffect(1096, 4500, _temp, true);
|
|
NewGuideModel _model2 = ModelCenter.Instance.GetModel<NewGuideModel>();
|
_model2.showMask = false;
|
_model2.content = Language.Get("Operate4");
|
_model2.componentPath = "BaseCanvas/MainInterfaceWin/SkillButtonTip/Pivot/CastSkillTip/AttackBtn";
|
_model2.size = new Vector2(178, 178);
|
_model2.direction = 0;
|
_model2.pressedClose = false;
|
_model2.clickClosed = false;
|
|
m_AfterAttackType = E_AfterAttackType.RefreshRock;
|
HeroBehaviour.onCastSkill += OnCastSkill;
|
|
_model2.onClose = null;
|
|
WindowCenter.Instance.Open<NewGuideWin>();
|
});
|
|
SnxxzGame.Instance.StartCoroutine(LookNpcBorn());
|
|
DebugEx.Log("移动到第二个平台已经结束...");
|
}
|
|
private IEnumerator LookNpcBorn()
|
{
|
GA_Hero.s_MapSwitching = true;
|
|
|
// 摄像机移动至石头人出现区域
|
CameraController.Instance.SetLookTarget(null);
|
CameraController.Instance.transform.position = PlayerDatas.Instance.hero.Pos;
|
yield return WaitingForSecondConst.WaitMS500;
|
Vector3 _destPos = new Vector3(152.8f, 51.511f, 35.95f);
|
float _distSqrt = MathUtility.DistanceSqrtXZ(CameraController.Instance.transform.position, _destPos);
|
while (_distSqrt > 0.01f)
|
{
|
CameraController.Instance.transform.position = Vector3.Lerp(CameraController.Instance.transform.position,
|
_destPos, Time.deltaTime * 4);
|
_distSqrt = MathUtility.DistanceSqrtXZ(CameraController.Instance.transform.position, _destPos);
|
yield return null;
|
}
|
|
// 石头人出现
|
RefreshRockNPC();
|
|
// 等待
|
yield return WaitingForSecondConst.WaitMS2000;
|
yield return WaitingForSecondConst.WaitMS700;
|
// 回到玩家身上
|
CameraController.Instance.SetLookTarget(PlayerDatas.Instance.hero.Root);
|
|
// 显示任务界面
|
Transform _temp = WindowCenter.Instance.uiRoot.baseCanvas.Find("MainInterfaceWin/TaskAndTeamTip/TaskListTip");
|
_temp.SetActive(true);
|
|
WindowCenter.Instance.Get<MainInterfaceWin>().ForceShowTaskPanel();
|
|
yield return WaitingForSecondConst.WaitMS500;
|
|
string _path = "BaseCanvas/MainInterfaceWin/TaskAndTeamTip/TaskListTip/Parent/TaskScroll View/Content/Main_1000";
|
if(!WindowCenter.Instance.uiRoot.transform.Find(_path))
|
{
|
_path = "BaseCanvas/MainInterfaceWin/TaskAndTeamTip/TaskListTip/Parent/TaskScroll View/Content/Main_1001";
|
}
|
|
// 打开引导界面
|
NewGuideModel _model2 = ModelCenter.Instance.GetModel<NewGuideModel>();
|
_model2.showMask = true;
|
_model2.content = Language.Get("Operate5");
|
_model2.componentPath = _path;
|
_model2.size = new Vector2(276, 72);
|
_model2.direction = 3;
|
_model2.clickClosed = true;
|
_model2.pressedClose = false;
|
_model2.onClose = () =>
|
{
|
GA_Hero.s_MapSwitching = false;
|
|
_temp = WindowCenter.Instance.uiRoot.transform.Find(_path);
|
var _btn = _temp.GetComponent<UnityEngine.UI.Button>();
|
if (_btn)
|
{
|
_btn.onClick.Invoke();
|
}
|
};
|
WindowCenter.Instance.Open<NewGuideWin>();
|
|
yield return WaitingForSecondConst.WaitMS500;
|
}
|
|
private void RefreshRockNPC()
|
{
|
var _data = BuiltInLoader.LoadScriptableObject<EarlyStageFirstWaveRock>("EarlyStageFirstWaveRock");
|
if (!_data)
|
{
|
return;
|
}
|
|
if (_data.data == null || _data.data.Length == 0)
|
{
|
return;
|
}
|
|
GA_NpcClientFightNorm _rock = null;
|
|
for (int i = 0; i < _data.data.Length; ++i)
|
{
|
_rock = CreateClntNorm((uint)_data.data[i].npcID,
|
_data.data[i].position,
|
_data.data[i].eularAngle);
|
_rock.Play(GAStaticDefine.State_Open);
|
if (!missionNpcDict.ContainsKey(1001))
|
{
|
missionNpcDict.Add(1001, new List<int>());
|
}
|
missionNpcDict[1001].Add((int)_rock.ServerInstID);
|
SFXPlayUtility.Instance.PlayBattleEffect(1099, _rock.Pos, Vector3.forward);
|
}
|
|
SoundPlayer.Instance.PlayUIAudio(251);
|
|
Resources.UnloadAsset(_data);
|
}
|
|
private void Refresh_1001()
|
{
|
SoMap _soMap = ScriptableObjectLoader.LoadSoMapObjectGenerate(PlayerDatas.Instance.baseData.MapID);
|
|
if (_soMap)
|
{
|
SoMap.MissionTrigger _missionTrigger = _soMap.missionTriggerList.Find((SoMap.MissionTrigger _m) => _m.id == 1001);
|
|
if (_missionTrigger != null)
|
{
|
for (int i = 0; i < _missionTrigger.refreshNPCList.Count; ++i)
|
{
|
RefreshNpcHandler _refreshNpcHandler = new RefreshNpcHandler(SoMap.E_TriggerType.Mission, 1001);
|
_refreshNpcHandler.Init(_missionTrigger.refreshNPCList[i]);
|
refreshNpcHandlerList.Add(_refreshNpcHandler);
|
}
|
}
|
}
|
}
|
|
// 与道尘师叔对话完毕
|
private void Step_2_TalkFinished()
|
{
|
if (m_QuestSign)
|
{
|
HeadUpQuestSign.Recycle(m_QuestSign);
|
m_QuestSign = null;
|
}
|
|
npcDeadCount = 0;
|
updateAI = false;
|
|
if (m_Obstacle)
|
{
|
Object.Destroy(m_Obstacle.gameObject);
|
}
|
|
if (m_ObstacleEffect)
|
{
|
SFXPlayUtility.Instance.Release(m_ObstacleEffect);
|
m_ObstacleEffect.transform.localScale = Vector3.one;
|
m_ObstacleEffect = null;
|
}
|
|
// 播放2个指引方向的箭头
|
m_MoveToEffect = SFXPlayUtility.Instance.PlayWithEulerAngle(1051, new Vector3(147.3f, 51.6f, 34.68f), new Vector3(0, -94.42f, 0));
|
m_ObstacleEffect = SFXPlayUtility.Instance.PlayWithEulerAngle(1051, new Vector3(136.17f, 51.6f, 33.72f), new Vector3(0, -94.42f, 0));
|
|
// 创建一个开启对话框的区域
|
if (m_SimpleTransfer == null)
|
{
|
m_SimpleTransfer = CreateTransfer();
|
}
|
|
NewGuideModel _model2 = ModelCenter.Instance.GetModel<NewGuideModel>();
|
_model2.showMask = false;
|
_model2.content = Language.Get("Operate6");
|
_model2.componentPath = "BaseCanvas/MainInterfaceWin/SkillButtonTip/Pivot/CastSkillTip/AttackBtn";
|
_model2.size = new Vector2(178, 178);
|
_model2.direction = 0;
|
_model2.pressedClose = false;
|
_model2.clickClosed = false;
|
_model2.onClose = null;
|
WindowCenter.Instance.Open<NewGuideWin>();
|
SnxxzGame.Instance.StartCoroutine(DelayCloseNewGuideWin(3f));
|
|
Transform _temp = WindowCenter.Instance.uiRoot.baseCanvas.Find("MainInterfaceWin/TaskAndTeamTip/TaskListTip");
|
_temp.SetActive(false);
|
_temp = WindowCenter.Instance.uiRoot.baseCanvas.Find("MainInterfaceWin/TaskSwithButton");
|
_temp.localScale = Vector3.zero;
|
|
Vector3 _pos = new Vector3(143.98f, 51.494f, 34.54f);
|
m_SimpleTransfer.transform.position = _pos;
|
m_SimpleTransfer.transform.localScale = new Vector3(5, 3, 5);
|
|
m_SimpleTransfer.Init(-1, _pos, false, null, () =>
|
{
|
HeroBehaviour.onCastSkill += OnCastSkill;
|
|
_pos = new Vector3(124.65f, 51.494f, 33.01f);
|
m_SimpleTransfer.transform.position = _pos;
|
m_SimpleTransfer.transform.localScale = new Vector3(20, 20, 20);
|
|
m_SimpleTransfer.Init(-1, _pos, false, null, () =>
|
{
|
DebugEx.Log("触发第三个对话内容...");
|
|
Step_3_TalkFinished();
|
|
SoundPlayer.Instance.PlayBackGroundMusic(47);
|
|
_temp = WindowCenter.Instance.uiRoot.baseCanvas.Find("MainInterfaceWin/JoyStick");
|
_temp.localScale = Vector3.zero;
|
|
BossShowModel.Instance.SetMisstionShow(1002, false);
|
BossShowModel.Instance.OnNpcAppear(1007);
|
BossShowModel.Instance.bossShowCompletedEvent += OnAfterBossShow;
|
|
List<GActor> _list = GAMgr.Instance.GetTypeList(E_ActorClassType.NpcClientFightNorm);
|
for (int i = _list.Count - 1; i >= 0; --i)
|
{
|
GAMgr.Instance.ServerDie(_list[i].ServerInstID);
|
GAMgr.Instance.Release(_list[i]);
|
}
|
|
GameObjectPoolManager.Instance.UnLoadNPC(1002);
|
|
if (PlayerDatas.Instance.hero.State == E_ActorState.AutoRun)
|
{
|
PlayerDatas.Instance.hero.StopPathFind();
|
}
|
PlayerDatas.Instance.hero.IdleImmediate();
|
GA_Hero.s_MapSwitching = true;
|
|
HeroBehaviour.onCastSkill += OnCastSkill;
|
});
|
});
|
|
CA225_tagCMClientTaskCount _a225 = new CA225_tagCMClientTaskCount();
|
_a225.CountID = 2;
|
GameNetSystem.Instance.SendInfo(_a225);
|
|
GameObjectPoolManager.Instance.UnLoadNPC(1000);
|
}
|
|
private IEnumerator DelayCloseNewGuideWin(float time)
|
{
|
float _time = Time.realtimeSinceStartup;
|
while (Time.realtimeSinceStartup - _time < time)
|
{
|
yield return null;
|
}
|
WindowCenter.Instance.Close<NewGuideWin>();
|
}
|
|
private void OnCastSkill(int skillID)
|
{
|
HeroBehaviour.onCastSkill -= OnCastSkill;
|
|
if (m_AfterAttackType == E_AfterAttackType.RefreshRock)
|
{
|
// 打开小提示窗口
|
GuideMessageModel _model = ModelCenter.Instance.GetModel<GuideMessageModel>();
|
_model.content = Language.Get("Operate7");
|
_model.duration = -1;
|
|
WindowCenter.Instance.Open<GuideMessageWin>();
|
|
if (m_UIEffect)
|
{
|
EffectMgr.Instance.RecyleUIEffect(m_UIEffect.effect, m_UIEffect.gameObject);
|
m_UIEffect = null;
|
}
|
|
Refresh_1001();
|
|
// 显示头像区域
|
Transform _temp = WindowCenter.Instance.uiRoot.baseCanvas.Find("MainInterfaceWin/HeadPortraitTip");
|
_temp.localScale = Vector3.one;
|
|
updateAI = true;
|
|
m_AfterAttackType = E_AfterAttackType.None;
|
|
return;
|
}
|
|
if (WindowCenter.Instance.IsOpen<NewGuideWin>())
|
{
|
WindowCenter.Instance.Close<NewGuideWin>();
|
}
|
}
|
|
public void Step_Boss_SkillShow()
|
{
|
BossShowModel.Instance.SetMisstionShow(1002, false);
|
BossShowModel.Instance.OnNpcAppear(1008);
|
BossShowModel.Instance.bossShowCompletedEvent += OnAfterBossSkillShow;
|
|
PlayerDatas.Instance.hero.Behaviour.StopKillUntilDieAI();
|
}
|
|
public UnityEngine.Events.UnityAction OnFinishedBossSkillShow;
|
|
private void OnAfterBossSkillShow()
|
{
|
BossShowModel.Instance.bossShowCompletedEvent -= OnAfterBossSkillShow;
|
if (OnFinishedBossSkillShow != null)
|
{
|
OnFinishedBossSkillShow();
|
}
|
}
|
|
private void OnAfterBossShow()
|
{
|
if (m_FuncNpc != null)
|
{
|
GAMgr.Instance.ServerDie(m_FuncNpc.ServerInstID);
|
GAMgr.Instance.Release(m_FuncNpc);
|
m_FuncNpc = null;
|
}
|
|
m_Boss = CreateClntBoss(1007, new Vector3(130f, 51.536263f, 33.4f), new Vector3(0, 84, 0));
|
updateAI = true;
|
|
Transform _temp = WindowCenter.Instance.uiRoot.baseCanvas.Find("MainInterfaceWin/JoyStick");
|
_temp.localScale = Vector3.one;
|
|
NewGuideModel _model2 = ModelCenter.Instance.GetModel<NewGuideModel>();
|
_model2.showMask = false;
|
_model2.content = Language.Get("Operate8");
|
_model2.componentPath = "BaseCanvas/MainInterfaceWin/SkillButtonTip/Pivot/CastSkillTip/AttackBtn";
|
_model2.size = new Vector2(178, 178);
|
_model2.direction = 0;
|
_model2.clickClosed = true;
|
_model2.pressedClose = true;
|
_model2.onClose = null;
|
|
WindowCenter.Instance.Open<NewGuideWin>();
|
|
BossShowModel.Instance.bossShowCompletedEvent -= OnAfterBossShow;
|
GA_Hero.s_MapSwitching = false;
|
}
|
|
private void Step_3_TalkFinished()
|
{
|
GA_Hero _hero = PlayerDatas.Instance.hero;
|
if (_hero != null)
|
{
|
if (_hero.State == E_ActorState.AutoRun)
|
{
|
_hero.StopPathFind();
|
_hero.IdleImmediate();
|
}
|
}
|
|
if (m_MoveToEffect)
|
{
|
SFXPlayUtility.Instance.Release(m_MoveToEffect);
|
m_MoveToEffect = null;
|
}
|
|
if (m_ObstacleEffect)
|
{
|
SFXPlayUtility.Instance.Release(m_ObstacleEffect);
|
m_ObstacleEffect.transform.localScale = Vector3.one;
|
m_ObstacleEffect = null;
|
}
|
|
if (m_Obstacle)
|
{
|
Object.Destroy(m_Obstacle.gameObject);
|
}
|
|
// 创建障碍
|
m_Obstacle = SoMap.CreateImpasse.General(new Vector3(136.8f, 0, 34.12f), new Vector3(0, 84.09f, 0), new Vector3(10f, 1, 3));
|
|
// 创建特效
|
m_ObstacleEffect = SFXPlayUtility.Instance.PlayWithEulerAngle(1040, new Vector3(135.56f, 51.9f, 33.68f), new Vector3(0, 84, 0f));
|
m_ObstacleEffect.duration = 0;
|
|
GA_Hero.s_MapSwitching = false;
|
|
DebugEx.Log("第三个对话结束...");
|
}
|
|
public void Step_FabaoEffect()
|
{
|
m_FabaoEffect = SFXPlayUtility.Instance.PlayBattleEffect(1042, CameraController.Instance.transform);
|
m_FabaoEffect.gameObject.SetLayer(LayerUtility.Hero, true);
|
m_StartCheckFabaoEffect1 = true;
|
m_EffectAppearTime = 7.2f;
|
}
|
|
public void Step_StartScale()
|
{
|
m_StartScaleBoss = true;
|
|
if (m_PlayerFaBaoEffect)
|
{
|
Animator _animator = m_PlayerFaBaoEffect.transform.GetChild(0).GetComponent<Animator>();
|
_animator.Play("Yindao3_02");
|
m_PlayerFaBaoEffect.startTime = 0;
|
m_PlayerFaBaoEffect.duration = 1;
|
m_PlayerFaBaoEffect = null;
|
}
|
}
|
|
public void Step_4_BossKilled()
|
{
|
m_SpecialGuideId = -1;
|
GA_Hero.s_MapSwitching = true;
|
GuideDialogueModel _model = ModelCenter.Instance.GetModel<GuideDialogueModel>();
|
_model.dialogID = 1003;
|
_model.onClose = () =>
|
{
|
ModelCenter.Instance.GetModel<TreasureModel>().SetUnlockAnim(TreasureCategory.Human, 101);
|
};
|
|
WindowCenter.Instance.Open<GuideDialogueWin>();
|
|
PlayerDatas.Instance.hero.StopRush();
|
if (PlayerDatas.Instance.hero.State == E_ActorState.AutoRun)
|
{
|
PlayerDatas.Instance.hero.StopPathFind();
|
}
|
PlayerDatas.Instance.hero.Behaviour.StopKillUntilDieAI();
|
PlayerDatas.Instance.hero.IdleImmediate();
|
|
updateAI = false;
|
|
if (cacheMinAttack != 0)
|
{
|
PlayerDatas.Instance.extersion.MINATK = cacheMinAttack;
|
}
|
if (cacheMaxAttack != 0)
|
{
|
PlayerDatas.Instance.extersion.MAXATK = cacheMaxAttack;
|
}
|
}
|
|
private void FabaoFlyFinished(int obj)
|
{
|
WindowCenter.Instance.Close<NewGuideWin>();
|
Transform _temp = null;
|
_temp = WindowCenter.Instance.uiRoot.baseCanvas.Find("MainInterfaceWin/CopyOfThePanel/HighSettingTip/Container_Treasure");
|
_temp.SetActive(true);
|
|
NewGuideModel _model2 = ModelCenter.Instance.GetModel<NewGuideModel>();
|
_model2.showMask = true;
|
_model2.content = Language.Get("Operate9");
|
_model2.componentPath = "BaseCanvas/MainInterfaceWin/CopyOfThePanel/HighSettingTip/Container_Treasure";
|
_model2.size = new Vector2(148, 148);
|
_model2.direction = 1;
|
_model2.pressedClose = true;
|
_model2.clickClosed = true;
|
_model2.onClose = null;
|
WindowCenter.Instance.Open<NewGuideWin>();
|
|
m_CheckFaBaoWinOpen = true;
|
|
UI3DTreasureSelectStage.Instance.OnUnlockComplete += FaBaoAnimationFinished;
|
WindowCenter.Instance.windowAfterOpenEvent += OnWindowOpen;
|
}
|
|
private void FaBaoAnimationFinished()
|
{
|
UI3DTreasureSelectStage.Instance.OnUnlockComplete -= FaBaoAnimationFinished;
|
UI3DTreasureSelectStage.Instance.showCamera.GetComponent<UnityEngine.EventSystems.PhysicsRaycaster>().enabled = false;
|
SnxxzGame.Instance.StartCoroutine(WaitForBack());
|
}
|
|
private void Step_4_TalkFinished()
|
{
|
// 显示任务界面
|
Transform _temp = WindowCenter.Instance.Get<MainInterfaceWin>().transform.Find("TaskAndTeamTip/TaskListTip");
|
_temp.SetActive(true);
|
|
GA_Hero.s_MapSwitching = false;
|
|
// 创建传送区域
|
if (m_SimpleTransfer == null)
|
{
|
m_SimpleTransfer = CreateTransfer();
|
}
|
|
m_SimpleTransfer.transform.position = m_SecondTransferStartPos;
|
m_SimpleTransfer.transform.localScale = new Vector3(1.3f, 50, 1.3f);
|
m_SimpleTransfer.Init(1044, m_SecondTransferEndPos, true, () =>
|
{
|
SFXPlayUtility.Instance.Release(m_MoveToEffect);
|
m_MoveToEffect = null;
|
m_FuncNpc.ReleaseName();
|
|
}, Step_4_TransferFinished);
|
m_SimpleTransfer.curveType = 2;
|
// 光标指示
|
m_MoveToEffect = SFXPlayUtility.Instance.PlayWithEulerAngle(1041, new Vector3(122.457f, 51.7f, 33.328f), new Vector3(90, 0, 0));
|
m_MoveToEffect.duration = -1;
|
|
m_FabaoEffect = SFXPlayUtility.Instance.PlayWithEulerAngle(1051, new Vector3(129.98f, 51.548f, 33.13f), new Vector3(0, -90.81f, 0));
|
|
if (PlayerDatas.Instance.hero!=null)
|
{
|
PlayerDatas.Instance.hero.MoveToPosition(m_SecondTransferStartPos);
|
}
|
|
DebugEx.Log("第四个对话结束...");
|
}
|
|
// 前期战斗流程结束
|
public void Step_4_TransferFinished()
|
{
|
m_SpecialGuideId = -1;
|
m_IsServerNewPlayerMissionFinished = true;
|
|
if (m_FuncNpc != null)
|
{
|
GAMgr.Instance.ServerDie(m_FuncNpc.ServerInstID);
|
GAMgr.Instance.Release(m_FuncNpc);
|
m_FuncNpc = null;
|
}
|
|
missionNpcDict.Clear();
|
s_MissionDict.Clear();
|
s_MissionImpasseDict.Clear();
|
refreshNpcHandlerList.Clear();
|
|
if (m_SimpleTransfer)
|
{
|
Object.Destroy(m_SimpleTransfer.gameObject);
|
m_SimpleTransfer = null;
|
}
|
|
if (m_ObstacleEffect)
|
{
|
Object.Destroy(m_ObstacleEffect.gameObject);
|
m_ObstacleEffect = null;
|
}
|
|
if (m_HuaShouEffect)
|
{
|
Object.Destroy(m_HuaShouEffect.gameObject);
|
m_HuaShouEffect = null;
|
}
|
|
if (m_FabaoEffect)
|
{
|
SFXPlayUtility.Instance.Release(m_FabaoEffect);
|
m_FabaoEffect = null;
|
}
|
|
Transform _temp = WindowCenter.Instance.uiRoot.baseCanvas.Find("MainInterfaceWin/CopyOfThePanel/TopRightTip");
|
_temp.SetActive(true);
|
_temp = WindowCenter.Instance.uiRoot.baseCanvas.Find("MainInterfaceWin/CopyOfThePanel/HighSettingTip/HighSettingShow");
|
_temp.SetActive(true);
|
_temp = WindowCenter.Instance.uiRoot.baseCanvas.Find("MainInterfaceWin/CopyOfThePanel/HighSettingTip/BoxContainer");
|
_temp.SetActive(true);
|
|
_temp = WindowCenter.Instance.uiRoot.baseCanvas.Find("MainInterfaceWin/CopyOfThePanel/HighSettingTip/Container_Treasure");
|
_temp.SetActive(true);
|
|
_temp = WindowCenter.Instance.uiRoot.baseCanvas.Find("MainInterfaceWin/InGameDownLoadProgress");
|
_temp.localScale = Vector3.one;
|
|
//_temp = WindowCenter.Instance.uiRoot.baseCanvas.Find("MainInterfaceWin/SkillButtonTip/Pivot/CastSkillTip/SwitchPan_a");
|
//_temp.localScale = Vector3.one;
|
//_temp = WindowCenter.Instance.uiRoot.baseCanvas.Find("MainInterfaceWin/SkillButtonTip/Pivot/CastSkillTip/Btn_SkillXp");
|
//_temp.localScale = Vector3.one;
|
_temp = WindowCenter.Instance.uiRoot.baseCanvas.Find("MainInterfaceWin/ChatTip");
|
_temp.localScale = Vector3.one;
|
_temp = WindowCenter.Instance.uiRoot.baseCanvas.Find("MainInterfaceWin/LowSettingTip");
|
_temp.localScale = Vector3.one;
|
_temp = WindowCenter.Instance.uiRoot.baseCanvas.Find("MainInterfaceWin/SwitchShowBtn");
|
_temp.localScale = Vector3.one;
|
_temp = WindowCenter.Instance.uiRoot.baseCanvas.Find("MainInterfaceWin/HeadPortraitTip");
|
_temp.localScale = Vector3.one;
|
_temp = WindowCenter.Instance.uiRoot.baseCanvas.Find("MainInterfaceWin/HeadPortraitTip/PatternBtn");
|
_temp.localScale = Vector3.one;
|
_temp = WindowCenter.Instance.uiRoot.baseCanvas.Find("MainInterfaceWin/HeadPortraitTip/VIPBtn");
|
_temp.GetComponent<Animator>().enabled = true;
|
_temp.localScale = Vector3.one;
|
_temp = WindowCenter.Instance.uiRoot.baseCanvas.Find("MainInterfaceWin/FunctionForecastTip");
|
_temp.localScale = Vector3.one;
|
_temp = WindowCenter.Instance.uiRoot.baseCanvas.Find("MainInterfaceWin/TaskAndTeamTip/TaskListTip");
|
_temp.SetActive(true);
|
_temp = WindowCenter.Instance.uiRoot.baseCanvas.Find("MainInterfaceWin/TaskSwithButton");
|
_temp.localScale = Vector3.one;
|
|
ButtonEx _button = WindowCenter.Instance.uiRoot.baseCanvas.Find("MainInterfaceWin/HeadPortraitTip/Head").GetComponent<ButtonEx>();
|
_button.enabled = true;
|
|
skillContainer.skill1.transform.localScale = Vector3.one;
|
skillContainer.skill2.transform.localScale = Vector3.one;
|
skillContainer.skill3.transform.localScale = Vector3.one;
|
skillContainer.skill4.transform.localScale = Vector3.one;
|
skillContainer.blinkSkill.transform.localScale = Vector3.one;
|
skillContainer.switchButton.SetActive(true);
|
skillContainer.transform.localScale = Vector3.one;
|
|
WindowCenter.Instance.Close<NewGuideWin>();
|
|
CA225_tagCMClientTaskCount _a225 = new CA225_tagCMClientTaskCount();
|
_a225.CountID = 3;
|
GameNetSystem.Instance.SendInfo(_a225);
|
|
// 资源卸载
|
if (!AssetSource.sceneFromEditor)
|
{
|
UnityEngine.SceneManagement.SceneManager.UnloadSceneAsync("Map000_Xsdt");
|
AssetBundleUtility.Instance.UnloadAssetBundle("maps/map000_xsdt", true, false);
|
}
|
|
List<GActor> _list = GAMgr.Instance.GetTypeList(E_ActorClassType.NpcClientFightNorm);
|
if (_list != null)
|
{
|
for (int i = _list.Count - 1; i >= 0; --i)
|
{
|
GAMgr.Instance.ServerDie(_list[i].ServerInstID);
|
GAMgr.Instance.Release(_list[i]);
|
}
|
}
|
|
_list = GAMgr.Instance.GetTypeList(E_ActorClassType.NpcClientFightBoss);
|
if (_list != null)
|
{
|
for (int i = _list.Count - 1; i >= 0; --i)
|
{
|
GAMgr.Instance.ServerDie(_list[i].ServerInstID);
|
GAMgr.Instance.Release(_list[i]);
|
}
|
}
|
|
_list = GAMgr.Instance.GetTypeList(E_ActorClassType.NpcClientFunc);
|
if (_list != null)
|
{
|
for (int i = _list.Count - 1; i >= 0; --i)
|
{
|
GAMgr.Instance.ServerDie(_list[i].ServerInstID);
|
GAMgr.Instance.Release(_list[i]);
|
}
|
}
|
|
GameObjectPoolManager.Instance.UnLoadNPC(1000);
|
GameObjectPoolManager.Instance.UnLoadNPC(1003);
|
GameObjectPoolManager.Instance.UnLoadNPC(1006);
|
GameObjectPoolManager.Instance.UnLoadNPC(1007);
|
GameObjectPoolManager.Instance.UnLoadNPC(1008);
|
GameObjectPoolManager.Instance.UnLoadNPC(1009);
|
|
if (!AssetSource.mobFromEditor)
|
{
|
AssetBundleUtility.Instance.UnloadAssetBundle("gmodels/prefab_race_n017a", true, true);
|
}
|
|
DebugEx.Log("前期结束...");
|
}
|
|
|
private IEnumerator Co_Destroy()
|
{
|
if (IsFinished())
|
{
|
yield break;
|
}
|
|
WindowCenter.Instance.Close<MainInterfaceWin>();
|
|
CameraController.Instance.MaskCamera.SetActive(false);
|
|
if (m_MoveToEffect)
|
{
|
SFXPlayUtility.Instance.Release(m_MoveToEffect);
|
m_MoveToEffect = null;
|
}
|
|
mDestroy = true;
|
|
m_SpecialGuideId = -1;
|
m_IsServerNewPlayerMissionFinished = true;
|
|
if (m_FuncNpc != null)
|
{
|
GAMgr.Instance.ServerDie(m_FuncNpc.ServerInstID);
|
GAMgr.Instance.Release(m_FuncNpc);
|
m_FuncNpc = null;
|
}
|
|
missionNpcDict.Clear();
|
s_MissionDict.Clear();
|
s_MissionImpasseDict.Clear();
|
refreshNpcHandlerList.Clear();
|
|
if (m_SimpleTransfer)
|
{
|
Object.Destroy(m_SimpleTransfer.gameObject);
|
m_SimpleTransfer = null;
|
}
|
|
if (m_ObstacleEffect)
|
{
|
Object.Destroy(m_ObstacleEffect.gameObject);
|
m_ObstacleEffect = null;
|
}
|
|
if (m_HuaShouEffect)
|
{
|
Object.Destroy(m_HuaShouEffect.gameObject);
|
m_HuaShouEffect = null;
|
}
|
|
if (m_FabaoEffect)
|
{
|
SFXPlayUtility.Instance.Release(m_FabaoEffect);
|
m_FabaoEffect = null;
|
}
|
|
var _temp = WindowCenter.Instance.Get<MainInterfaceWin>().transform.Find("CopyOfThePanel/TopRightTip");
|
_temp.SetActive(true);
|
_temp = WindowCenter.Instance.Get<MainInterfaceWin>().transform.Find("CopyOfThePanel/HighSettingTip/HighSettingShow");
|
_temp.SetActive(true);
|
_temp = WindowCenter.Instance.Get<MainInterfaceWin>().transform.Find("CopyOfThePanel/HighSettingTip/BoxContainer");
|
_temp.SetActive(true);
|
|
_temp = WindowCenter.Instance.Get<MainInterfaceWin>().transform.Find("CopyOfThePanel/HighSettingTip/Container_Treasure");
|
_temp.SetActive(true);
|
|
_temp = WindowCenter.Instance.Get<MainInterfaceWin>().transform.Find("InGameDownLoadProgress");
|
_temp.localScale = Vector3.one;
|
|
//_temp = WindowCenter.Instance.Get<MainInterfaceWin>().transform.Find("SkillButtonTip/Pivot/CastSkillTip/SwitchPan_a");
|
//_temp.localScale = Vector3.one;
|
//_temp = WindowCenter.Instance.Get<MainInterfaceWin>().transform.Find("SkillButtonTip/Pivot/CastSkillTip/Btn_SkillXp");
|
//_temp.localScale = Vector3.one;
|
_temp = WindowCenter.Instance.Get<MainInterfaceWin>().transform.Find("ChatTip");
|
_temp.localScale = Vector3.one;
|
_temp = WindowCenter.Instance.Get<MainInterfaceWin>().transform.Find("LowSettingTip");
|
_temp.localScale = Vector3.one;
|
_temp = WindowCenter.Instance.Get<MainInterfaceWin>().transform.Find("SwitchShowBtn");
|
_temp.localScale = Vector3.one;
|
_temp = WindowCenter.Instance.Get<MainInterfaceWin>().transform.Find("HeadPortraitTip");
|
_temp.localScale = Vector3.one;
|
_temp = WindowCenter.Instance.Get<MainInterfaceWin>().transform.Find("HeadPortraitTip/PatternBtn");
|
_temp.localScale = Vector3.one;
|
_temp = WindowCenter.Instance.Get<MainInterfaceWin>().transform.Find("HeadPortraitTip/VIPBtn");
|
_temp.GetComponent<Animator>().enabled = true;
|
_temp.localScale = Vector3.one;
|
_temp = WindowCenter.Instance.Get<MainInterfaceWin>().transform.Find("FunctionForecastTip");
|
_temp.localScale = Vector3.one;
|
_temp = WindowCenter.Instance.Get<MainInterfaceWin>().transform.Find("TaskAndTeamTip/TaskListTip");
|
_temp.SetActive(true);
|
_temp = WindowCenter.Instance.Get<MainInterfaceWin>().transform.Find("TaskSwithButton");
|
_temp.localScale = Vector3.one;
|
|
ButtonEx _button = WindowCenter.Instance.Get<MainInterfaceWin>().transform.Find("HeadPortraitTip/Head").GetComponent<ButtonEx>();
|
_button.enabled = true;
|
|
skillContainer.skill1.transform.localScale = Vector3.one;
|
skillContainer.skill2.transform.localScale = Vector3.one;
|
skillContainer.skill3.transform.localScale = Vector3.one;
|
skillContainer.skill4.transform.localScale = Vector3.one;
|
skillContainer.blinkSkill.transform.localScale = Vector3.one;
|
skillContainer.switchButton.SetActive(true);
|
skillContainer.transform.localScale = Vector3.one;
|
|
WindowCenter.Instance.Close<NewGuideWin>();
|
|
if (m_FuncNpc != null)
|
{
|
GAMgr.Instance.ServerDie(m_FuncNpc.ServerInstID);
|
GAMgr.Instance.Release(m_FuncNpc);
|
m_FuncNpc = null;
|
}
|
|
missionNpcDict.Clear();
|
s_MissionDict.Clear();
|
s_MissionImpasseDict.Clear();
|
refreshNpcHandlerList.Clear();
|
|
if (m_SimpleTransfer)
|
{
|
Object.Destroy(m_SimpleTransfer.gameObject);
|
m_SimpleTransfer = null;
|
}
|
|
if (m_ObstacleEffect)
|
{
|
Object.Destroy(m_ObstacleEffect.gameObject);
|
m_ObstacleEffect = null;
|
}
|
|
if (m_HuaShouEffect)
|
{
|
Object.Destroy(m_HuaShouEffect.gameObject);
|
m_HuaShouEffect = null;
|
}
|
|
if (m_FabaoEffect)
|
{
|
SFXPlayUtility.Instance.Release(m_FabaoEffect);
|
m_FabaoEffect = null;
|
}
|
|
List<GActor> _list = GAMgr.Instance.GetTypeList(E_ActorClassType.NpcClientFightNorm);
|
if (_list != null)
|
{
|
for (int i = _list.Count - 1; i >= 0; --i)
|
{
|
GAMgr.Instance.ServerDie(_list[i].ServerInstID);
|
GAMgr.Instance.Release(_list[i]);
|
}
|
}
|
|
_list = GAMgr.Instance.GetTypeList(E_ActorClassType.NpcClientFightBoss);
|
if (_list != null)
|
{
|
for (int i = _list.Count - 1; i >= 0; --i)
|
{
|
GAMgr.Instance.ServerDie(_list[i].ServerInstID);
|
GAMgr.Instance.Release(_list[i]);
|
}
|
}
|
|
_list = GAMgr.Instance.GetTypeList(E_ActorClassType.NpcClientFunc);
|
if (_list != null)
|
{
|
for (int i = _list.Count - 1; i >= 0; --i)
|
{
|
GAMgr.Instance.ServerDie(_list[i].ServerInstID);
|
GAMgr.Instance.Release(_list[i]);
|
}
|
}
|
|
GameObjectPoolManager.Instance.UnLoadNPC(1000);
|
GameObjectPoolManager.Instance.UnLoadNPC(1003);
|
GameObjectPoolManager.Instance.UnLoadNPC(1006);
|
GameObjectPoolManager.Instance.UnLoadNPC(1007);
|
GameObjectPoolManager.Instance.UnLoadNPC(1008);
|
GameObjectPoolManager.Instance.UnLoadNPC(1009);
|
|
if (!AssetSource.mobFromEditor)
|
{
|
AssetBundleUtility.Instance.UnloadAssetBundle("gmodels/prefab_race_n017a", true, true);
|
}
|
|
// 资源卸载
|
if (!AssetSource.sceneFromEditor)
|
{
|
// var _operation = UnityEngine.SceneManagement.SceneManager.UnloadSceneAsync("Map000_Xsdt");
|
// while (_operation.isDone)
|
// {
|
// yield return null;
|
// }
|
AssetBundleUtility.Instance.UnloadAssetBundle("maps/map000_xsdt", true, false);
|
}
|
|
}
|
|
private bool mDestroy = false;
|
|
public void Destroy()
|
{
|
SnxxzGame.Instance.StartCoroutine(Co_Destroy());
|
}
|
|
private SimpleMapTrasfer CreateTransfer()
|
{
|
// 创建传送对象, 传送对象里会创建云
|
GameObject _transport = new GameObject();
|
CapsuleCollider _collider = _transport.AddMissingComponent<CapsuleCollider>();
|
_collider.height = 10;
|
_collider.isTrigger = true;
|
#if UNITY_EDITOR
|
_transport.name = "Temp_Trigger_1";
|
#endif
|
_transport.transform.position = m_FirstTrransferStartPos;
|
|
SimpleMapTrasfer _transfer = _transport.AddMissingComponent<SimpleMapTrasfer>();
|
|
return _transfer;
|
}
|
|
private GA_NpcClientFunc CreateFuncNpc(uint npcID, Vector3 position, Vector3 eulerAngle)
|
{
|
GA_NpcClientFunc _func = GAMgr.Instance.ReqClntNoFightNpc<GA_NpcClientFunc>(npcID, E_ActorGroup.FuncNpc) as GA_NpcClientFunc;
|
|
_func.AdjustPos((ushort)(position.x * 2), (ushort)(position.z * 2));
|
_func.Root.eulerAngles = eulerAngle;
|
_func.Forward = _func.Root.forward;
|
|
return _func;
|
}
|
|
private GA_NpcClientFightNorm CreateClntNorm(uint npcID, Vector3 position, Vector3 eulerAngle)
|
{
|
GA_NpcClientFightNorm _fight = GAMgr.Instance.ReqClntFightNpc<GA_NpcClientFightNorm>(npcID, E_ActorGroup.Enemy) as GA_NpcClientFightNorm;
|
|
_fight.AdjustPos((ushort)(position.x * 2), (ushort)(position.z * 2));
|
_fight.BornPos = _fight.Pos;
|
_fight.Root.eulerAngles = eulerAngle;
|
_fight.Forward = _fight.Root.forward;
|
|
return _fight;
|
}
|
|
private GA_NpcClientFightBoss CreateClntBoss(uint npcID, Vector3 position, Vector3 eulerAngle)
|
{
|
GA_NpcClientFightBoss _fight = GAMgr.Instance.ReqClntFightNpc<GA_NpcClientFightBoss>(npcID, E_ActorGroup.Enemy) as GA_NpcClientFightBoss;
|
|
_fight.AdjustPos((ushort)(position.x * 2), (ushort)(position.z * 2));
|
_fight.BornPos = _fight.Pos;
|
_fight.Root.eulerAngles = eulerAngle;
|
_fight.Forward = _fight.Root.forward;
|
|
return _fight;
|
}
|
|
public void Create8SmallBoss(Vector3 postion)
|
{
|
for (int i = 0; i < 8; ++i)
|
{
|
GA_NpcClientFightNorm _boss = CreateClntNorm(1006, postion, new Vector3(0, i * 45, 0));
|
Skill _skill = _boss.SkillMgr.Get(10028);
|
_skill.targetPosition = _boss.Pos + _boss.Forward * 3;
|
_boss.SkillMgr.CastSkill(_boss.ServerInstID, 10028);
|
_boss.NextAction = 21;
|
}
|
|
}
|
}
|