| Fight/Stage/StageLoadProcessor.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/Dungeon/DungeonFightWin.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/Dungeon/DungeonGetTreasureVictoryWin.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/Dungeon/DungeonModel.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/Treasure/ClientTreasureDungeon.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/Treasure/ClientTreasureDungeon.cs.meta | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/Treasure/ClientTreasureDungeonStage.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/Treasure/ClientTreasureDungeonStage.cs.meta | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/Treasure/HumanTreasureWin.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/Treasure/NormalDialogueWin.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/Treasure/NormalDialogueWin.cs.meta | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/Treasure/TreasureDungeonVictoryWin.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/WindowBase/WindowCenter.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
Fight/Stage/StageLoadProcessor.cs
@@ -408,6 +408,9 @@ case HazyGrassModel.Client_FairyGrassMapID: case HazyGrassModel.Client_ReikiGrassMapID: stage = stageGameObject.AddComponent<ClientHazyGrassStage>(); break; case ClientTreasureDungeon.Client_DataMap: stage = stageGameObject.AddComponent<ClientTreasureDungeonStage>(); break; default: stage = stageGameObject.AddComponent<DungeonStage>(); System/Dungeon/DungeonFightWin.cs
@@ -302,6 +302,9 @@ case HazyGrassModel.Client_ReikiGrassMapID: ModelCenter.Instance.GetModel<HazyGrassModel>().RequestExitClientDungeon(); break; case ClientTreasureDungeon.Client_DataMap: ClientTreasureDungeon.RequestExit(); break; default: model.ExitCurrentDungeon(); break; @@ -378,6 +381,12 @@ { if (ClientDungeonStageUtility.isClientDungeon) { switch (ClientDungeonStageUtility.clientMapId) { case ClientTreasureDungeon.Client_DataMap: ClientTreasureDungeon.RequestExit(); break; } return; } @@ -407,7 +416,7 @@ ConfirmCancel.ShowRuneTowerPopConfirm( Language.Get("Mail101"), Language.Get("RuneTower25", config.Fightpower), (Action<bool>)((bool ok) => (Action<bool>)((bool ok) => { if (ok) { System/Dungeon/DungeonGetTreasureVictoryWin.cs
@@ -1,18 +1,35 @@ using System; using System.Collections; using System.Collections.Generic; using UnityEngine; namespace Snxxz.UI { public class DungeonGetTreasureVictoryWin : DungeonVictoryWin { protected override void Display() { base.RequireDungeonExit(); m_ContainerPoivt.gameObject.SetActive(true); base.DrawGetExp(); base.DrawPassTime(); } } } using System; using System.Collections; using System.Collections.Generic; using UnityEngine; namespace Snxxz.UI { public class DungeonGetTreasureVictoryWin : DungeonVictoryWin { protected override void AddListeners() { m_Exit.SetListener(OnExit); } private void OnExit() { if (ClientDungeonStageUtility.isClientDungeon) { ClientTreasureDungeon.RequestExit(); } else { dungeonModel.ExitCurrentDungeon(); } } protected override void Display() { base.RequireDungeonExit(); m_ContainerPoivt.gameObject.SetActive(true); base.DrawGetExp(); base.DrawPassTime(); } } } System/Dungeon/DungeonModel.cs
@@ -1089,6 +1089,10 @@ break; } } if (ClientDungeonStageUtility.isClientDungeon) { UpdateCoolDown(DungeonCoolDownType.LeaveMap, 7 * 1000); } WindowCenter.Instance.Open<DungeonGetTreasureVictoryWin>(); WindowCenter.Instance.Open<TreasureDungeonVictoryWin>(); break; System/Treasure/ClientTreasureDungeon.cs
New file @@ -0,0 +1,58 @@ using Snxxz.UI; using System.Collections; using System.Collections.Generic; using UnityEngine; public class ClientTreasureDungeon { public const int Client_DataMap = 4000; public static int challengeTreasureId = 0; public static void RequestEnter(int treasureId) { challengeTreasureId = treasureId; var hero = PlayerDatas.Instance.hero; if (hero != null) { hero.StopAll(); } MapTransferUtility.Instance.Clear(); ClientDungeonStageUtility.SetClientDungeon(true, (ushort)Client_DataMap); ClientDungeonStageUtility.RequestStartClientDungeon(0, 0); StageLoad.Instance.PushSceneLoadCommand(new StageLoad.StageLoadCommand() { toMapId = Client_DataMap, toLineId = 0, needEmpty = true, needLoadResource = true, serverType = ServerType.Main, isClientLoadMap = true }); PlayerDatas.Instance.baseData.mainServerMapIdRecord = PlayerDatas.Instance.baseData.MapID; PlayerDatas.Instance.baseData.MapID = (ushort)Client_DataMap; } public static void RequestExit() { ClientDungeonStageUtility.SetClientDungeon(false, 0); ClientDungeonStageUtility.RequestExitClientDungeon(); PlayerDatas.Instance.extersion.pkState = 0; ModelCenter.Instance.GetModel<DungeonModel>().ResetBufData(); PlayerDatas.Instance.baseData.MapID = PlayerDatas.Instance.baseData.mainServerMapIdRecord; StageLoad.Instance.PushSceneLoadCommand(new StageLoad.StageLoadCommand() { toMapId = PlayerDatas.Instance.baseData.MapID, toLineId = 0, needEmpty = true, needLoadResource = true, serverType = ServerType.Main, isClientLoadMap = true, refreshPlayerDatas = true }); } } System/Treasure/ClientTreasureDungeon.cs.meta
New file @@ -0,0 +1,12 @@ fileFormatVersion: 2 guid: 189ce34976654c34da06b3239c45076d timeCreated: 1556000158 licenseType: Pro MonoImporter: serializedVersion: 2 defaultReferences: [] executionOrder: 0 icon: {instanceID: 0} userData: assetBundleName: assetBundleVariant: System/Treasure/ClientTreasureDungeonStage.cs
New file @@ -0,0 +1,96 @@ using Snxxz.UI; using System; using System.Collections; using System.Collections.Generic; using UnityEngine; public class ClientTreasureDungeonStage : DungeonStage { static readonly Vector3 PlayerBornPosition = new Vector3(24.496f, 0.048f, 8.258f); static readonly Vector3 NpcBornPosition = new Vector3(9.45f, 0.04f, 8.258f); bool initialized = false; int dialogueNpcId = 0; int[] speakTypes = null; string[] dialogues = null; static GA_NpcClientFunc m_Npc; public override void Initialize() { base.Initialize(); if (!initialized) { var funcConfig = FuncConfigConfig.Get("ClientTreasureDungeon"); dialogueNpcId = int.Parse(funcConfig.Numerical1); speakTypes = ConfigParse.GetMultipleStr<int>(funcConfig.Numerical2); dialogues = ConfigParse.GetMultipleStr(funcConfig.Numerical3); } UnInitializedNpc(); NormalDialogueWin.onDialogueComplete -= OnDialogueComplete; NormalDialogueWin.onDialogueComplete += OnDialogueComplete; } protected override void OnStageLoadFinish() { base.OnStageLoadFinish(); InitializePlayer(); InitializeNpc(); } void InitializePlayer() { var hero = PlayerDatas.Instance.hero; hero.Pos = PlayerBornPosition; CameraController.Instance.Apply(); } void InitializeNpc() { m_Npc = GAMgr.Instance.ReqClntNoFightNpc<GA_NpcClientFunc>((uint)dialogueNpcId, E_ActorGroup.FuncNpc); m_Npc.Pos = NpcBornPosition; NPCInteractProcessor.s_NpcInteractEvent -= OnNpcTalkEvent; NPCInteractProcessor.s_NpcInteractEvent += OnNpcTalkEvent; } private void OnNpcTalkEvent(E_NpcType arg1, int arg2, uint arg3) { WindowCenter.Instance.Close<MainInterfaceWin>(); NormalDialogueWin.dialogues = dialogues; NormalDialogueWin.speakTypes = speakTypes; NormalDialogueWin.npcId = dialogueNpcId; WindowCenter.Instance.Open<NormalDialogueWin>(); } private void OnDialogueComplete() { var pak = new CA50E_tagCMOpenMagicWeapon(); pak.MWID = (uint)ClientTreasureDungeon.challengeTreasureId; GameNetSystem.Instance.SendInfo(pak); } void UnInitializedNpc() { if (m_Npc != null) { GAMgr.Instance.ServerDie(m_Npc.ServerInstID); GAMgr.Instance.Release(m_Npc); m_Npc = null; } } public override void UnInitialize() { base.UnInitialize(); UnInitializedNpc(); NPCInteractProcessor.s_NpcInteractEvent -= OnNpcTalkEvent; NormalDialogueWin.onDialogueComplete -= OnDialogueComplete; } } System/Treasure/ClientTreasureDungeonStage.cs.meta
New file @@ -0,0 +1,12 @@ fileFormatVersion: 2 guid: 9f12818a53b6cb74f8cf93b6748ea869 timeCreated: 1556000059 licenseType: Pro MonoImporter: serializedVersion: 2 defaultReferences: [] executionOrder: 0 icon: {instanceID: 0} userData: assetBundleName: assetBundleVariant: System/Treasure/HumanTreasureWin.cs
@@ -250,6 +250,11 @@ var config = TreasureConfig.Get(model.selectedTreasure); if (config != null) { if (model.selectedTreasure == 101) { ClientTreasureDungeon.RequestEnter(101); return; } if (PlayerDatas.Instance.baseData.LV >= config.ChallengeLevel) { model.collectingHuman = model.selectedTreasure; System/Treasure/NormalDialogueWin.cs
New file @@ -0,0 +1,162 @@ //-------------------------------------------------------- // [Author]: 第二世界 // [ Date ]: Tuesday, April 23, 2019 //-------------------------------------------------------- using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; namespace Snxxz.UI { public class NormalDialogueWin : Window { [SerializeField] Button m_Skip; [SerializeField] Button m_EmptyAccepter; [SerializeField] Transform m_ContainerNpc; [SerializeField] RawImage m_RawNpc; [SerializeField] Text m_NpcName; [SerializeField] Text m_NpcDialogue; [SerializeField] Transform m_ContainerPlayer; [SerializeField] RawImage m_RawPlayer; [SerializeField] Text m_PlayerName; [SerializeField] Text m_PlayerDialogue; int dialogueIndex = 0; public static int npcId = 0; public static int[] speakTypes = null; public static string[] dialogues = null; public static event Action onDialogueComplete; #region Built-in protected override void BindController() { } protected override void AddListeners() { m_EmptyAccepter.AddListener(OnClickEmpty); m_Skip.AddListener(OnSkip); } protected override void OnPreOpen() { dialogueIndex = 0; DisplayDialogue(); } protected override void OnAfterOpen() { } protected override void OnPreClose() { UI3DModelExhibition.Instance.StopShow(); } protected override void OnAfterClose() { if (!WindowCenter.Instance.IsOpen<MainInterfaceWin>()) { WindowCenter.Instance.Open<MainInterfaceWin>(); } } protected override void LateUpdate() { GA_Hero _hero = PlayerDatas.Instance.hero; if (_hero == null) { return; } if (_hero.LockTarget == null) { return; } float _chkDistSqrt = MathUtility.DistanceSqrtXZ(_hero.Pos, _hero.LockTarget.Pos); if (_chkDistSqrt > Mathf.Pow(GeneralDefine.FarawayNpcDist, 2)) { _hero.LockTarget = null; Close(); } } #endregion private void DisplayDialogue() { if (speakTypes == null || dialogues == null) { return; } var speakType = speakTypes[dialogueIndex]; m_ContainerNpc.gameObject.SetActive(speakType == 0); m_ContainerPlayer.gameObject.SetActive(speakType == 1); switch (speakType) { case 1: var job = PlayerDatas.Instance.baseData.Job; UI3DModelExhibition.Instance.ShowPlayer(m_RawPlayer, job, true); m_PlayerName.text = PlayerDatas.Instance.baseData.PlayerName; m_PlayerDialogue.text = Language.Get(dialogues[dialogueIndex]); break; case 0: var npcConfig = NPCConfig.Get(npcId); m_NpcName.text = npcConfig.charName; m_NpcDialogue.text = Language.Get(dialogues[dialogueIndex]); var data = new UI3DNPCExhibitionData() { npcId = npcId, isDialogue = true, }; UI3DModelExhibition.Instance.ShowNPC(m_RawNpc, data); break; } } private void OnSkip() { Close(); if (onDialogueComplete != null) { onDialogueComplete(); } } private void OnClickEmpty() { if (dialogues != null && dialogueIndex < dialogues.Length - 1) { dialogueIndex += 1; DisplayDialogue(); } else { Close(); if (onDialogueComplete != null) { onDialogueComplete(); } } } } } System/Treasure/NormalDialogueWin.cs.meta
New file @@ -0,0 +1,12 @@ fileFormatVersion: 2 guid: b3d826a302403c34eb13d555a51f733e timeCreated: 1556002605 licenseType: Pro MonoImporter: serializedVersion: 2 defaultReferences: [] executionOrder: 0 icon: {instanceID: 0} userData: assetBundleName: assetBundleVariant: System/Treasure/TreasureDungeonVictoryWin.cs
@@ -55,10 +55,16 @@ { base.OnActived(); var dataMapId = dungeonModel.GetDataMapIdByMapId(PlayerDatas.Instance.baseData.MapID); var config = DungeonOpenTimeConfig.Get(dataMapId); StartCoroutine(Co_DelayDisplay(config.DelayTime * 0.001f)); if (ClientDungeonStageUtility.isClientDungeon) { StartCoroutine(Co_DelayDisplay(1f)); } else { var dataMapId = dungeonModel.GetDataMapIdByMapId(PlayerDatas.Instance.baseData.MapID); var config = DungeonOpenTimeConfig.Get(dataMapId); StartCoroutine(Co_DelayDisplay(config.DelayTime * 0.001f)); } } #endregion @@ -70,9 +76,19 @@ m_TreasureName.gameObject.SetActive(true); m_TreasureIcon.gameObject.SetActive(true); m_ContainerCommon.gameObject.SetActive(true); var mapId = PlayerDatas.Instance.baseData.MapID; var lineId = dungeonModel.dungeonResult.lineID; var treasureId = ModelCenter.Instance.GetModel<TreasureModel>().GetTreasureIdByMapIdAndLineId(mapId, lineId); var treasureId = 0; if (!ClientDungeonStageUtility.isClientDungeon) { var mapId = PlayerDatas.Instance.baseData.MapID; var lineId = dungeonModel.dungeonResult.lineID; treasureId = ModelCenter.Instance.GetModel<TreasureModel>().GetTreasureIdByMapIdAndLineId(mapId, lineId); } else { treasureId = ClientTreasureDungeon.challengeTreasureId; } var config = TreasureConfig.Get(treasureId); m_TreasureName.text = config.Name; m_TreasureIcon.SetSprite(config.Icon); System/WindowBase/WindowCenter.cs
@@ -606,7 +606,8 @@ && !IsOpen("DialogueDuidanceWin") && !IsOpen("TaskBoxBGMWin") && !IsOpen("WelcomeWin") && !IsOpen("HazyRegionDialogueWin"); && !IsOpen("HazyRegionDialogueWin") && !IsOpen("NormalDialogueWin"); if (exceptOpen != IsOpen("MainInterfaceWin")) {