| Core/GameEngine/Model/Config/CollectNpcConfig.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| Core/GameEngine/Model/Config/CollectNpcConfig.cs.meta | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| Fight/Stage/Dungeon/DungeonStage.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/Activity/ActivityNotifyBehaviour.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/CrossServerOneVsOne/CrossServerOneVsOneModel.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/DailyQuest/DailyQuestWin.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/HazyRegion/HazyRegionIncidentPanel.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/HazyRegion/HazyRegionModel.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/MainInterfacePanel/HighSettingTip.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/MainInterfacePanel/MainCollectBehaviour.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/Vip/FairyJadeInvestmentModel.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| Utility/ConfigInitiator.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
Core/GameEngine/Model/Config/CollectNpcConfig.cs
New file @@ -0,0 +1,205 @@ //-------------------------------------------------------- // [Author]: Fish // [ Date ]: Saturday, April 20, 2019 //-------------------------------------------------------- using System.Collections.Generic; using System.IO; using System.Threading; using System; using UnityEngine; [XLua.LuaCallCSharp] public partial class CollectNpcConfig { public readonly int NPCID; public readonly string Icon; public readonly string tip; public CollectNpcConfig() { } public CollectNpcConfig(string input) { try { var tables = input.Split('\t'); int.TryParse(tables[0],out NPCID); Icon = tables[1]; tip = tables[2]; } catch (Exception ex) { DebugEx.Log(ex); } } static Dictionary<string, CollectNpcConfig> configs = new Dictionary<string, CollectNpcConfig>(); public static CollectNpcConfig Get(string id) { if (!inited) { Debug.Log("CollectNpcConfig 还未完成初始化。"); return null; } if (configs.ContainsKey(id)) { return configs[id]; } CollectNpcConfig config = null; if (rawDatas.ContainsKey(id)) { config = configs[id] = new CollectNpcConfig(rawDatas[id]); rawDatas.Remove(id); } return config; } public static CollectNpcConfig Get(int id) { return Get(id.ToString()); } public static List<string> GetKeys() { var keys = new List<string>(); keys.AddRange(configs.Keys); keys.AddRange(rawDatas.Keys); return keys; } public static List<CollectNpcConfig> GetValues() { var values = new List<CollectNpcConfig>(); values.AddRange(configs.Values); var keys = new List<string>(rawDatas.Keys); foreach (var key in keys) { values.Add(Get(key)); } return values; } public static bool Has(string id) { return configs.ContainsKey(id) || rawDatas.ContainsKey(id); } public static bool Has(int id) { return Has(id.ToString()); } public static bool inited { get; private set; } protected static Dictionary<string, string> rawDatas = new Dictionary<string, string>(); public static void Init(bool sync=false) { inited = false; var path = string.Empty; if (AssetSource.refdataFromEditor) { path = ResourcesPath.CONFIG_FODLER +"/CollectNpc.txt"; } else { path = AssetVersionUtility.GetAssetFilePath("config/CollectNpc.txt"); } var tempConfig = new CollectNpcConfig(); var preParse = tempConfig is IConfigPostProcess; if (sync) { var lines = File.ReadAllLines(path); if (!preParse) { rawDatas = new Dictionary<string, string>(lines.Length - 3); } for (int i = 3; i < lines.Length; i++) { try { var line = lines[i]; var index = line.IndexOf("\t"); if (index == -1) { continue; } var id = line.Substring(0, index); if (preParse) { var config = new CollectNpcConfig(line); configs[id] = config; (config as IConfigPostProcess).OnConfigParseCompleted(); } else { rawDatas[id] = line; } } catch (System.Exception ex) { Debug.LogError(ex); } } inited = true; } else { ThreadPool.QueueUserWorkItem((object _object) => { var lines = File.ReadAllLines(path); if (!preParse) { rawDatas = new Dictionary<string, string>(lines.Length - 3); } for (int i = 3; i < lines.Length; i++) { try { var line = lines[i]; var index = line.IndexOf("\t"); if (index == -1) { continue; } var id = line.Substring(0, index); if (preParse) { var config = new CollectNpcConfig(line); configs[id] = config; (config as IConfigPostProcess).OnConfigParseCompleted(); } else { rawDatas[id] = line; } } catch (System.Exception ex) { Debug.LogError(ex); } } inited = true; }); } } } Core/GameEngine/Model/Config/CollectNpcConfig.cs.meta
New file @@ -0,0 +1,12 @@ fileFormatVersion: 2 guid: d73c02667c444de47a239d9ddf34fba1 timeCreated: 1555746254 licenseType: Pro MonoImporter: serializedVersion: 2 defaultReferences: [] executionOrder: 0 icon: {instanceID: 0} userData: assetBundleName: assetBundleVariant: Fight/Stage/Dungeon/DungeonStage.cs
@@ -247,6 +247,7 @@ case RidingPetBossModel.RIDINGPETBOSS_MAP: WindowCenter.Instance.Open<RidingPetBossHintWin>(); break; case HazyGrassModel.Client_ReikiGrassMapID: case HazyGrassModel.FairyGrassMapId: case HazyGrassModel.ReikiGrassMapId: WindowCenter.Instance.Open<DungeonCollectItemSuccWin>(); System/Activity/ActivityNotifyBehaviour.cs
@@ -147,7 +147,7 @@ WindowCenter.Instance.Open<LootPreciousFrameWin>(false, 1); break; case DailyQuestType.CrossServerPk: WindowCenter.Instance.Open<CrossServerWin>(); WindowCenter.Instance.Open<CrossServerWin>(false, 1); break; case DailyQuestType.AllianceBoss: WindowCenter.Instance.Open<LootPreciousFrameWin>(false, 3); System/CrossServerOneVsOne/CrossServerOneVsOneModel.cs
@@ -140,7 +140,7 @@ var pkSeason = CrossServerOneVsOnePKSeason.Instance; if (pkSeason.IsEnterCrossServer()) { WindowCenter.Instance.Open<CrossServerWin>(); WindowCenter.Instance.Open<CrossServerWin>(false, 1); } } recordDataMapId = dataMapId; System/DailyQuest/DailyQuestWin.cs
@@ -314,7 +314,7 @@ break; case DailyQuestType.CrossServerPk: WindowCenter.Instance.Close<DailyQuestWin>(); WindowCenter.Instance.Open<CrossServerWin>(); WindowCenter.Instance.Open<CrossServerWin>(false, 1); break; case DailyQuestType.AllianceBoss: GotoAllianceBoss(_id, 0); @@ -325,7 +325,7 @@ break; case DailyQuestType.HazyRegion: WindowCenter.Instance.Close<DailyQuestWin>(); WindowCenter.Instance.Open<CrossServerWin>(false, 2); WindowCenter.Instance.Open<CrossServerWin>(false, 0); break; default: CSharpCallLua.GotoLuaDailyQuest(_id); System/HazyRegion/HazyRegionIncidentPanel.cs
@@ -158,33 +158,35 @@ } else { if (!model.InFakeHazyRegion) var config = HazyRegionConfig.Get(model.selectIncident); if (!model.InFakeHazyRegion && config.incidentType == (int)HazyRegionIncidentType.FairyGrass) { var config = HazyRegionConfig.Get(model.selectIncident); var item = dungeonModel.GetTicketCost(config.dungeonId, config.lineId); if (item.id != 0) HazyRegionModel.Incident incident; if (model.TryGetIncident(model.selectIncident, out incident)) { var itemConfig = ItemConfig.Get(item.id); switch ((HazyRegionIncidentType)config.incidentType) if (incident.state == HazyRegionModel.IncidentState.UnStart) { case HazyRegionIncidentType.FairyGrass: var item = dungeonModel.GetTicketCost(config.dungeonId, config.lineId); if (item.id != 0) { var itemConfig = ItemConfig.Get(item.id); ConfirmCancel.ShowItemConfirm(Language.Get("HazyRegionFairyGrassTicket", item.count, itemConfig.ItemName), item.id, item.count, () => { var count = packModel.GetItemCountByID(PackType.Item, item.id); if (count >= item.count) { model.SendGotoIncident(model.selectIncident); } else { ModelCenter.Instance.GetModel<GetItemPathModel>().SetChinItemModel(item.id); } }); break; item.count, itemConfig.ItemName), item.id, item.count, () => { var count = packModel.GetItemCountByID(PackType.Item, item.id); if (count >= item.count) { model.SendGotoIncident(model.selectIncident); } else { ModelCenter.Instance.GetModel<GetItemPathModel>().SetChinItemModel(item.id); } }); return; } } return; } } model.SendGotoIncident(model.selectIncident); System/HazyRegion/HazyRegionModel.cs
@@ -133,7 +133,7 @@ } if (WindowCenter.Instance.IsOpen<MainInterfaceWin>()) { WindowCenter.Instance.Open<CrossServerWin>(false, 2); WindowCenter.Instance.Open<CrossServerWin>(false, 0); } } System/MainInterfacePanel/HighSettingTip.cs
@@ -204,7 +204,7 @@ } else { WindowCenter.Instance.Open<CrossServerWin>(false, 2); WindowCenter.Instance.Open<CrossServerWin>(); //if (PlayerDatas.Instance.baseData.LV < limitlv) //{ // SysNotifyMgr.Instance.ShowTip("CrossMatching14", limitlv); System/MainInterfacePanel/MainCollectBehaviour.cs
@@ -19,8 +19,7 @@ int collectNpcId = 0; uint serverInstanceId = 0; DungeonModel dungeonModel { DungeonModel dungeonModel { get { return ModelCenter.Instance.GetModel<DungeonModel>(); } } @@ -64,18 +63,18 @@ void DisplayNormalCollect() { var mapId = dungeonModel.GetDataMapIdByMapId(PlayerDatas.Instance.baseData.MapID); switch (mapId) var config = CollectNpcConfig.Get(collectNpcId); if (config == null) { case 31230: m_NormalCollectIcon.SetSprite("TY_UI_8"); m_NormalCollectLabel.text = Language.Get("Collect_FairyFeast"); break; default: m_NormalCollectIcon.SetSprite("TY_UI_6"); m_NormalCollectLabel.text = Language.Get("Collect_Normal"); break; m_NormalCollectIcon.SetSprite("TY_UI_6"); m_NormalCollectLabel.text = Language.Get("Collect_Normal"); } else { m_NormalCollectIcon.SetSprite(config.Icon); m_NormalCollectLabel.text = config.tip; } m_NormalCollectIcon.SetNativeSize(); } System/Vip/FairyJadeInvestmentModel.cs
@@ -95,6 +95,10 @@ } } } if (!FuncOpen.Instance.IsFuncOpen(118)) { return false; } if (PlayerDatas.Instance.baseData.LV >= 500 && !isOpen) { return false; Utility/ConfigInitiator.cs
@@ -291,7 +291,8 @@ normalTasks.Add(new ConfigInitTask("AdventureDialogueConfig", () => { AdventureDialogueConfig.Init(); }, () => { return AdventureDialogueConfig.inited; })); normalTasks.Add(new ConfigInitTask("MapNpcRefreshConfig", () => { MapNpcRefreshConfig.Init(); }, () => { return MapNpcRefreshConfig.inited; })); normalTasks.Add(new ConfigInitTask("DungeonUseBuffConfig", () => { DungeonUseBuffConfig.Init(); }, () => { return DungeonUseBuffConfig.inited; })); normalTasks.Add(new ConfigInitTask("AlchemyCountConfig", () => { AlchemyCountConfig.Init(); }, () => { return AlchemyCountConfig.inited; })); normalTasks.Add(new ConfigInitTask("AlchemyCountConfig", () => { AlchemyCountConfig.Init(); }, () => { return AlchemyCountConfig.inited; })); normalTasks.Add(new ConfigInitTask("CollectNpcConfig", () => { CollectNpcConfig.Init(); }, () => { return CollectNpcConfig.inited; })); } static List<ConfigInitTask> doingTasks = new List<ConfigInitTask>();