From bb2d2bae05da9eed93e13071b0f3bb9f5e058aa8 Mon Sep 17 00:00:00 2001
From: client_Wu Xijin <364452445@qq.com>
Date: 星期二, 16 四月 2019 19:52:14 +0800
Subject: [PATCH] Merge branch 'master' of http://192.168.0.87:10010/r/snxxz_scripts
---
Core/NetworkPackage/DTCFile/ServerPack/HA7_Interaction/DTCA714_tagMCNPCCntList.cs | 1
System/HazyRegion/DungeonCollectItemSuccWin.cs | 113 +++++++
Utility/EnumHelper.cs | 2
Core/GameEngine/Model/Config/MapNpcRefreshConfig.cs | 216 ++++++++++++++
System/HazyRegion/DungeonCollectItemSuccWin.cs.meta | 12
System/Login/LoginModel.cs | 2
Utility/ConfigInitiator.cs | 1
System/HazyRegion/HazyGrassDungeonWin.cs | 121 +++++++
Core/GameEngine/Model/Config/MapNpcRefreshConfig.cs.meta | 12
System/Dungeon/DungeonModel.cs | 21 +
Core/NetworkPackage/DTCFile/ServerPack/HA3_Function/DTCA326_tagMCNPCIDCollectionCntInfo.cs | 2
Core/NetworkPackage/DTCFile/ServerPack/HA7_Interaction/DTCA718_tagMCCollectAwardItemInfo.cs | 27 +
Core/NetworkPackage/DTCFile/ServerPack/HA7_Interaction/DTCA718_tagMCCollectAwardItemInfo.cs.meta | 12
Core/NetworkPackage/ClientPack/ClientToMapServer/CA2_Interaction/CA234_tagCMGetCustomSceneCollectAward.cs | 18 +
Fight/Stage/Dungeon/DungeonStage.cs | 4
Core/NetworkPackage/ServerPack/HA7_Interaction/HA718_tagMCCollectAwardItemInfo.cs | 33 ++
System/HazyRegion/HazyGrassModel.cs | 116 +++++++
System/HazyRegion/HazyRegionModel.cs | 6
Core/NetworkPackage/ClientPack/ClientToMapServer/CA2_Interaction/CA234_tagCMGetCustomSceneCollectAward.cs.meta | 12
Core/GameEngine/DataToCtl/PackageRegedit.cs | 1
System/Dungeon/DungeonTargetBehaviour.cs | 25 +
System/HazyRegion/ClientHazyGrassStage.cs | 113 +++++--
Core/NetworkPackage/ServerPack/HA7_Interaction/HA718_tagMCCollectAwardItemInfo.cs.meta | 12
23 files changed, 819 insertions(+), 63 deletions(-)
diff --git a/Core/GameEngine/DataToCtl/PackageRegedit.cs b/Core/GameEngine/DataToCtl/PackageRegedit.cs
index 0064894..d8f1c3b 100644
--- a/Core/GameEngine/DataToCtl/PackageRegedit.cs
+++ b/Core/GameEngine/DataToCtl/PackageRegedit.cs
@@ -25,6 +25,7 @@
public static void Init()
{
// 鐧昏鐩稿簲鐨勬暟鎹綋鍙婂搴旂殑鏁版嵁杞�昏緫绫�
+ Register(typeof(HA718_tagMCCollectAwardItemInfo), typeof(DTCA718_tagMCCollectAwardItemInfo));
Register(typeof(HB214_tagMCCuntomFBPrizeInfo), typeof(DTCB214_tagMCCuntomFBPrizeInfo));
Register(typeof(HA307_tagMCFairyAdventuresInfo), typeof(DTCA307_tagMCFairyAdventuresInfo));
Register(typeof(HA306_tagMCFairyDomainInfo), typeof(DTCA306_tagMCFairyDomainInfo));
diff --git a/Core/GameEngine/Model/Config/MapNpcRefreshConfig.cs b/Core/GameEngine/Model/Config/MapNpcRefreshConfig.cs
new file mode 100644
index 0000000..b96cd7a
--- /dev/null
+++ b/Core/GameEngine/Model/Config/MapNpcRefreshConfig.cs
@@ -0,0 +1,216 @@
+锘�//--------------------------------------------------------
+// [Author]: Fish
+// [ Date ]: Tuesday, April 16, 2019
+//--------------------------------------------------------
+
+using System.Collections.Generic;
+using System.IO;
+using System.Threading;
+using System;
+using UnityEngine;
+
+[XLua.LuaCallCSharp]
+public partial class MapNpcRefreshConfig
+{
+
+ public readonly int id;
+ public readonly int MapID;
+ public readonly int[] NPCIDList;
+ public readonly int RefreshSeconds;
+ public readonly int RefreshPerMinutes;
+
+ public MapNpcRefreshConfig()
+ {
+ }
+
+ public MapNpcRefreshConfig(string input)
+ {
+ try
+ {
+ var tables = input.Split('\t');
+
+ int.TryParse(tables[0],out id);
+
+ int.TryParse(tables[1],out MapID);
+
+ string[] NPCIDListStringArray = tables[2].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries);
+ NPCIDList = new int[NPCIDListStringArray.Length];
+ for (int i=0;i<NPCIDListStringArray.Length;i++)
+ {
+ int.TryParse(NPCIDListStringArray[i],out NPCIDList[i]);
+ }
+
+ int.TryParse(tables[3],out RefreshSeconds);
+
+ int.TryParse(tables[4],out RefreshPerMinutes);
+ }
+ catch (Exception ex)
+ {
+ DebugEx.Log(ex);
+ }
+ }
+
+ static Dictionary<string, MapNpcRefreshConfig> configs = new Dictionary<string, MapNpcRefreshConfig>();
+ public static MapNpcRefreshConfig Get(string id)
+ {
+ if (!inited)
+ {
+ Debug.Log("MapNpcRefreshConfig 杩樻湭瀹屾垚鍒濆鍖栥��");
+ return null;
+ }
+
+ if (configs.ContainsKey(id))
+ {
+ return configs[id];
+ }
+
+ MapNpcRefreshConfig config = null;
+ if (rawDatas.ContainsKey(id))
+ {
+ config = configs[id] = new MapNpcRefreshConfig(rawDatas[id]);
+ rawDatas.Remove(id);
+ }
+
+ return config;
+ }
+
+ public static MapNpcRefreshConfig 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<MapNpcRefreshConfig> GetValues()
+ {
+ var values = new List<MapNpcRefreshConfig>();
+ 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 +"/MapNpcRefresh.txt";
+ }
+ else
+ {
+ path = AssetVersionUtility.GetAssetFilePath("config/MapNpcRefresh.txt");
+ }
+
+ var tempConfig = new MapNpcRefreshConfig();
+ 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 MapNpcRefreshConfig(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 MapNpcRefreshConfig(line);
+ configs[id] = config;
+ (config as IConfigPostProcess).OnConfigParseCompleted();
+ }
+ else
+ {
+ rawDatas[id] = line;
+ }
+ }
+ catch (System.Exception ex)
+ {
+ Debug.LogError(ex);
+ }
+ }
+
+ inited = true;
+ });
+ }
+ }
+
+}
+
+
+
+
diff --git a/Core/GameEngine/Model/Config/MapNpcRefreshConfig.cs.meta b/Core/GameEngine/Model/Config/MapNpcRefreshConfig.cs.meta
new file mode 100644
index 0000000..578b545
--- /dev/null
+++ b/Core/GameEngine/Model/Config/MapNpcRefreshConfig.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: a541b078663e0ee43999b0532249d30d
+timeCreated: 1555404500
+licenseType: Pro
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Core/NetworkPackage/ClientPack/ClientToMapServer/CA2_Interaction/CA234_tagCMGetCustomSceneCollectAward.cs b/Core/NetworkPackage/ClientPack/ClientToMapServer/CA2_Interaction/CA234_tagCMGetCustomSceneCollectAward.cs
new file mode 100644
index 0000000..422d3bf
--- /dev/null
+++ b/Core/NetworkPackage/ClientPack/ClientToMapServer/CA2_Interaction/CA234_tagCMGetCustomSceneCollectAward.cs
@@ -0,0 +1,18 @@
+using UnityEngine;
+using System.Collections;
+
+// A2 34 自定义场景中获取采集奖励 #tagCMGetCustomSceneCollectAward
+
+public class CA234_tagCMGetCustomSceneCollectAward : GameNetPackBasic {
+ public uint NPCID; //采集的NPCID
+
+ public CA234_tagCMGetCustomSceneCollectAward () {
+ combineCmd = (ushort)0x03FE;
+ _cmd = (ushort)0xA234;
+ }
+
+ public override void WriteToBytes () {
+ WriteBytes (NPCID, NetDataType.DWORD);
+ }
+
+}
diff --git a/Core/NetworkPackage/ClientPack/ClientToMapServer/CA2_Interaction/CA234_tagCMGetCustomSceneCollectAward.cs.meta b/Core/NetworkPackage/ClientPack/ClientToMapServer/CA2_Interaction/CA234_tagCMGetCustomSceneCollectAward.cs.meta
new file mode 100644
index 0000000..b1ee448
--- /dev/null
+++ b/Core/NetworkPackage/ClientPack/ClientToMapServer/CA2_Interaction/CA234_tagCMGetCustomSceneCollectAward.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: f0d0635cf0a0bd64f8f4742fb964f93f
+timeCreated: 1555412785
+licenseType: Pro
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Core/NetworkPackage/DTCFile/ServerPack/HA3_Function/DTCA326_tagMCNPCIDCollectionCntInfo.cs b/Core/NetworkPackage/DTCFile/ServerPack/HA3_Function/DTCA326_tagMCNPCIDCollectionCntInfo.cs
index 8f530b5..8563d63 100644
--- a/Core/NetworkPackage/DTCFile/ServerPack/HA3_Function/DTCA326_tagMCNPCIDCollectionCntInfo.cs
+++ b/Core/NetworkPackage/DTCFile/ServerPack/HA3_Function/DTCA326_tagMCNPCIDCollectionCntInfo.cs
@@ -34,6 +34,8 @@
{
smallBoxCollectCount += collect.CollectionCnt;
}
+
+ ModelCenter.Instance.GetModel<DungeonModel>().UpdateDungeonCollectNpcInfo((int)collect.NPCID, collect.CollectionCnt);
}
model.bigBoxCollectCount = bigBoxCollectCount;
diff --git a/Core/NetworkPackage/DTCFile/ServerPack/HA7_Interaction/DTCA714_tagMCNPCCntList.cs b/Core/NetworkPackage/DTCFile/ServerPack/HA7_Interaction/DTCA714_tagMCNPCCntList.cs
index 0e43729..a75b017 100644
--- a/Core/NetworkPackage/DTCFile/ServerPack/HA7_Interaction/DTCA714_tagMCNPCCntList.cs
+++ b/Core/NetworkPackage/DTCFile/ServerPack/HA7_Interaction/DTCA714_tagMCNPCCntList.cs
@@ -20,6 +20,7 @@
model.UpdateMonsterSurplusInfo(package);
crossServerBossModel.UpdateMonsterSurplusInfo(package);
+ ModelCenter.Instance.GetModel<HazyGrassModel>().ReceivePackage(package);
}
}
diff --git a/Core/NetworkPackage/DTCFile/ServerPack/HA7_Interaction/DTCA718_tagMCCollectAwardItemInfo.cs b/Core/NetworkPackage/DTCFile/ServerPack/HA7_Interaction/DTCA718_tagMCCollectAwardItemInfo.cs
new file mode 100644
index 0000000..25e7cb9
--- /dev/null
+++ b/Core/NetworkPackage/DTCFile/ServerPack/HA7_Interaction/DTCA718_tagMCCollectAwardItemInfo.cs
@@ -0,0 +1,27 @@
+锘�//--------------------------------------------------------
+// [Author]: 绗簩涓栫晫
+// [ Date ]: Tuesday, April 16, 2019
+//--------------------------------------------------------
+
+using System;
+using System.Collections;
+using System.Collections.Generic;
+
+public class DTCA718_tagMCCollectAwardItemInfo : DtcBasic
+{
+ public static event Action<HA718_tagMCCollectAwardItemInfo> onCollectSucc;
+ public override void Done(GameNetPackBasic vNetPack)
+ {
+ base.Done(vNetPack);
+ var package = vNetPack as HA718_tagMCCollectAwardItemInfo;
+
+ if (onCollectSucc != null)
+ {
+ onCollectSucc(package);
+ }
+ }
+}
+
+
+
+
diff --git a/Core/NetworkPackage/DTCFile/ServerPack/HA7_Interaction/DTCA718_tagMCCollectAwardItemInfo.cs.meta b/Core/NetworkPackage/DTCFile/ServerPack/HA7_Interaction/DTCA718_tagMCCollectAwardItemInfo.cs.meta
new file mode 100644
index 0000000..bfe5a1f
--- /dev/null
+++ b/Core/NetworkPackage/DTCFile/ServerPack/HA7_Interaction/DTCA718_tagMCCollectAwardItemInfo.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: 9d49d1b23f9edd0479798e49db5669c5
+timeCreated: 1555400708
+licenseType: Pro
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Core/NetworkPackage/ServerPack/HA7_Interaction/HA718_tagMCCollectAwardItemInfo.cs b/Core/NetworkPackage/ServerPack/HA7_Interaction/HA718_tagMCCollectAwardItemInfo.cs
new file mode 100644
index 0000000..47106ad
--- /dev/null
+++ b/Core/NetworkPackage/ServerPack/HA7_Interaction/HA718_tagMCCollectAwardItemInfo.cs
@@ -0,0 +1,33 @@
+using UnityEngine;
+using System.Collections;
+
+// A7 18 采集奖励物品通知 #tagMCCollectAwardItemInfo
+
+public class HA718_tagMCCollectAwardItemInfo : GameNetPackBasic {
+ public uint CollectNPCID; //采集的NPCID
+ public byte Count;
+ public tagMCCollectAwardItem[] AwardItemList; //奖励物品信息列表
+
+ public HA718_tagMCCollectAwardItemInfo () {
+ _cmd = (ushort)0xA718;
+ }
+
+ public override void ReadFromBytes (byte[] vBytes) {
+ TransBytes (out CollectNPCID, vBytes, NetDataType.DWORD);
+ TransBytes (out Count, vBytes, NetDataType.BYTE);
+ AwardItemList = new tagMCCollectAwardItem[Count];
+ for (int i = 0; i < Count; i ++) {
+ AwardItemList[i] = new tagMCCollectAwardItem();
+ TransBytes (out AwardItemList[i].ItemID, vBytes, NetDataType.DWORD);
+ TransBytes (out AwardItemList[i].Count, vBytes, NetDataType.BYTE);
+ TransBytes (out AwardItemList[i].IsAuctionItem, vBytes, NetDataType.BYTE);
+ }
+ }
+
+ public struct tagMCCollectAwardItem {
+ public uint ItemID;
+ public byte Count;
+ public byte IsAuctionItem; //是否拍品
+ }
+
+}
diff --git a/Core/NetworkPackage/ServerPack/HA7_Interaction/HA718_tagMCCollectAwardItemInfo.cs.meta b/Core/NetworkPackage/ServerPack/HA7_Interaction/HA718_tagMCCollectAwardItemInfo.cs.meta
new file mode 100644
index 0000000..bc7621b
--- /dev/null
+++ b/Core/NetworkPackage/ServerPack/HA7_Interaction/HA718_tagMCCollectAwardItemInfo.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: 5a0d77854a2576049a2d56c552b58843
+timeCreated: 1555400676
+licenseType: Pro
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Fight/Stage/Dungeon/DungeonStage.cs b/Fight/Stage/Dungeon/DungeonStage.cs
index ff4a707..2f67ed5 100644
--- a/Fight/Stage/Dungeon/DungeonStage.cs
+++ b/Fight/Stage/Dungeon/DungeonStage.cs
@@ -247,6 +247,10 @@
case RidingPetBossModel.RIDINGPETBOSS_MAP:
WindowCenter.Instance.Open<RidingPetBossHintWin>();
break;
+ case HazyGrassModel.FairyGrassMapId:
+ case HazyGrassModel.ReikiGrassMapId:
+ WindowCenter.Instance.Open<DungeonCollectItemSuccWin>();
+ break;
default:
WindowCenter.Instance.Open<DungeonStageTimeWin>();
break;
diff --git a/System/Dungeon/DungeonModel.cs b/System/Dungeon/DungeonModel.cs
index d61cf99..4fb9423 100644
--- a/System/Dungeon/DungeonModel.cs
+++ b/System/Dungeon/DungeonModel.cs
@@ -22,6 +22,7 @@
Dictionary<int, int> mapIdToDataMapId = new Dictionary<int, int>();
Dictionary<int, DateTime> dungeonCountRemainTimes = new Dictionary<int, DateTime>();
Dictionary<int, List<DungeonInspireConfig>> dungeonInspireDict = new Dictionary<int, List<DungeonInspireConfig>>();
+ Dictionary<int, int> dungeonCollectNpcInfos = new Dictionary<int, int>();
List<int> trialDungeonMapList = new List<int>();
public event Action<DungeonCoolDownType> dungeonCoolDownEvent;
@@ -38,6 +39,7 @@
public event Action<int> countRemainTimeChangeEvent;
public event Action<Dungeon> kylinDifficultySelectedEvent;
public event Action<DungeonFightStage> dungeonFightStageChangeEevent;
+ public event Action onCollectNpcInfoRefresh;
List<Item> sweepResultRewards = new List<Item>();
List<Item> sweepResultItems = new List<Item>();
@@ -138,6 +140,7 @@
{
dungeonCountRemainTimes.Clear();
dungeonInspireCounts.Clear();
+ dungeonCollectNpcInfos.Clear();
}
public void OnAfterPlayerDataInitialize()
@@ -645,6 +648,15 @@
}
}
+ public void UpdateDungeonCollectNpcInfo(int npcId,int count)
+ {
+ dungeonCollectNpcInfos[npcId] = count;
+ if (onCollectNpcInfoRefresh != null)
+ {
+ onCollectNpcInfoRefresh();
+ }
+ }
+
public void RequestClearEnterCD(int _mapID)
{
var clearpack = new CA210_tagCMClearFBCD();
@@ -747,6 +759,15 @@
return endTime;
}
+ public int GetDugneonNpcCollectCount(int npcId)
+ {
+ if (dungeonCollectNpcInfos.ContainsKey(npcId))
+ {
+ return dungeonCollectNpcInfos[npcId];
+ }
+ return 0;
+ }
+
public void UpdateMission(string _mission)
{
var mapId = GetDataMapIdByMapId(PlayerDatas.Instance.baseData.MapID);
diff --git a/System/Dungeon/DungeonTargetBehaviour.cs b/System/Dungeon/DungeonTargetBehaviour.cs
index 068f23d..0c0846b 100644
--- a/System/Dungeon/DungeonTargetBehaviour.cs
+++ b/System/Dungeon/DungeonTargetBehaviour.cs
@@ -31,6 +31,7 @@
private void OnEnable()
{
model.updateMissionEvent += UpdateMissionEvent;
+ model.onCollectNpcInfoRefresh += UpdateMissionEvent;
}
private void UpdateMissionEvent()
@@ -51,21 +52,21 @@
var desc = config.targetDescription1[step < config.targetDescription1.Length ? step : 0];
var npcId = config.NPC1ID.Length == 0 ? 0 : config.NPC1ID[step < config.NPC1ID.Length ? step : 0];
var targetValue = config.targetValue1.Length == 0 ? 0 : config.targetValue1[step < config.targetValue1.Length ? step : 0];
- GetTargetInfo(0, desc, targetValue, step, config.targetType1, npcId);
+ GetTargetInfo(0, desc, targetValue, step, config.targetType1, npcId, config.NPC1ID);
}
if (config.targetNum >= 2)
{
var desc = config.targetDescription2[step < config.targetDescription2.Length ? step : 0];
var npcId = config.NPC2ID.Length == 0 ? 0 : config.NPC2ID[step < config.NPC2ID.Length ? step : 0];
var targetValue = config.targetValue2.Length == 0 ? 0 : config.targetValue2[step < config.targetValue2.Length ? step : 0];
- GetTargetInfo(1, desc, targetValue, step, config.targetType2, npcId);
+ GetTargetInfo(1, desc, targetValue, step, config.targetType2, npcId, config.NPC2ID);
}
if (config.targetNum >= 3)
{
var desc = config.targetDescription3[step < config.targetDescription2.Length ? step : 0];
var npcId = config.NPC3ID.Length == 0 ? 0 : config.NPC3ID[step < config.NPC3ID.Length ? step : 0];
var targetValue = config.targetValue3.Length == 0 ? 0 : config.targetValue3[step < config.targetValue3.Length ? step : 0];
- GetTargetInfo(2, desc, targetValue, step, config.targetType3, npcId);
+ GetTargetInfo(2, desc, targetValue, step, config.targetType3, npcId, config.NPC3ID);
}
switch (dateMapId)
@@ -83,7 +84,7 @@
}
}
- private void GetTargetInfo(int _index, string desc, int _targetValue, int _targetStep, int _targetType, int npcId = 0)
+ private void GetTargetInfo(int _index, string desc, int _targetValue, int _targetStep, int _targetType, int npcId, int[] npcIds)
{
m_TargetDescs[_index].text = desc;
m_TargetNums[_index].text = string.Empty;
@@ -163,13 +164,27 @@
break;
}
m_TargetNums[_index].text = model.mission.step.ToString();
+ break;
+ case DungeonTargetType.Collect:
+ var collectCount = 0;
+ for (int i = 0; i < npcIds.Length; i++)
+ {
+ collectCount += model.GetDugneonNpcCollectCount(npcIds[i]);
+ }
+ if (_targetValue > 0)
+ {
+ m_TargetNums[_index].text = StringUtility.Contact(collectCount, "/", _targetValue);
+ break;
+ }
+ m_TargetNums[_index].text = collectCount.ToString();
break;
}
}
private void OnDisable()
{
- model.updateMissionEvent -= UpdateMissionEvent;
+ model.updateMissionEvent -= UpdateMissionEvent;
+ model.onCollectNpcInfoRefresh -= UpdateMissionEvent;
}
}
}
diff --git a/System/HazyRegion/ClientHazyGrassStage.cs b/System/HazyRegion/ClientHazyGrassStage.cs
index c675610..91a7968 100644
--- a/System/HazyRegion/ClientHazyGrassStage.cs
+++ b/System/HazyRegion/ClientHazyGrassStage.cs
@@ -12,9 +12,10 @@
static Dictionary<Vector3, GA_NpcClientCollect> s_CollectNpcs = new Dictionary<Vector3, GA_NpcClientCollect>();
static Dictionary<uint, Vector3> s_Sid2NpcPos = new Dictionary<uint, Vector3>();
static Dictionary<uint, int> s_Sid2NpcIds = new Dictionary<uint, int>();
- static List<GA_NpcClientFightNorm> s_ClientFightNpcs = new List<GA_NpcClientFightNorm>();
+ //static List<GA_NpcClientFightNorm> s_ClientFightNpcs = new List<GA_NpcClientFightNorm>();
+ static List<HazyGrassNpcInfo> s_NpcRefreshInfos = new List<HazyGrassNpcInfo>();
- static int grassRefreshCount = 0;
+ static Dictionary<int, int> s_NpcRefreshTimes = new Dictionary<int, int>();
bool mapLoadFinish = false;
bool initedFightNpc = false;
@@ -31,16 +32,20 @@
s_NpcInfos.Clear();
s_Sid2NpcIds.Clear();
s_Sid2NpcPos.Clear();
+ s_NpcRefreshTimes.Clear();
mapLoadFinish = false;
initedFightNpc = false;
-
- grassRefreshCount = 0;
var config = HazyRegionConfig.Get(hazyRegionModel.processingIncidentId);
if (config != null)
{
incidentType = (HazyRegionIncidentType)config.incidentType;
+ s_NpcRefreshInfos = model.GetGrassNpcInfos(config.dungeonId);
+ foreach (var npcInfo in s_NpcRefreshInfos)
+ {
+ s_NpcRefreshTimes.Add(npcInfo.npcId, GetNpcRefreshCount(npcInfo));
+ }
}
UnloadAllNpc();
@@ -53,7 +58,6 @@
base.OnStageLoadFinish();
mapLoadFinish = true;
- model.RefreshGrassBornTime(TimeUtility.ServerNow);
InitialPlayer();
InitializeNpc();
@@ -67,12 +71,15 @@
if (mapLoadFinish)
{
- var used = Mathf.Max(0, (int)(TimeUtility.ServerNow - model.grassBornTime).TotalSeconds);
- var count = used / model.grassRefreshSeconds;
- if (count != grassRefreshCount)
+ foreach (var npcInfo in s_NpcRefreshInfos)
{
- RebornCollectedNpc();
- grassRefreshCount = count;
+ var _lastCount = s_NpcRefreshTimes[npcInfo.npcId];
+ var count = GetNpcRefreshCount(npcInfo);
+ if (_lastCount != count)
+ {
+ RebornCollectedNpc(npcInfo.npcId);
+ s_NpcRefreshTimes[npcInfo.npcId] = count;
+ }
}
}
}
@@ -86,12 +93,24 @@
GA_NpcClientCollect.OnCollectFinished -= OnCollectFinished;
}
+ int GetNpcRefreshCount(HazyGrassNpcInfo npcInfo)
+ {
+ var used = TimeUtility.Minute * 60 + TimeUtility.Second;
+ var refreshSeconds = npcInfo.refreshMinute * 60;
+ return used / refreshSeconds;
+ }
+
private void OnCollectFinished(uint _sid)
{
if (s_Sid2NpcIds.ContainsKey(_sid))
{
var npcId = s_Sid2NpcIds[_sid];
Debug.Log("閲囬泦浜哊pc:--" + npcId);
+ var pak = new CA234_tagCMGetCustomSceneCollectAward();
+ pak.NPCID = (uint)npcId;
+ GameNetSystem.Instance.SendInfo(pak);
+
+ s_Sid2NpcIds.Remove(_sid);
}
if (s_Sid2NpcPos.ContainsKey(_sid))
@@ -102,6 +121,8 @@
s_CollectNpcs.Remove(pos);
}
}
+
+ RefreshMapNpcCount();
}
void InitializeNpc()
@@ -131,10 +152,14 @@
CameraController.Instance.Apply();
}
- void RebornCollectedNpc()
+ void RebornCollectedNpc(int npcId = 0)
{
foreach (var npcInfo in s_NpcInfos)
{
+ if (npcId != 0 && npcInfo.npcId != npcId)
+ {
+ continue;
+ }
switch (npcInfo.npcType)
{
case E_NpcType.Collect:
@@ -155,20 +180,38 @@
}
break;
case E_NpcType.Fight:
- if (!initedFightNpc)
- {
- var fightNpc = GAMgr.Instance.ReqClntFightNpc<GA_NpcClientFightNorm>((uint)npcInfo.npcId,
- E_ActorGroup.Enemy);
- if (fightNpc != null)
- {
- fightNpc.Pos = npcInfo.position;
- fightNpc.OnAttacked -= OnAttackNpc;
- fightNpc.OnAttacked += OnAttackNpc;
- }
- s_ClientFightNpcs.Add(fightNpc);
- }
+ //if (!initedFightNpc)
+ //{
+ // var fightNpc = GAMgr.Instance.ReqClntFightNpc<GA_NpcClientFightNorm>((uint)npcInfo.npcId,
+ // E_ActorGroup.Enemy);
+ // if (fightNpc != null)
+ // {
+ // fightNpc.Pos = npcInfo.position;
+ // fightNpc.OnAttacked -= OnAttackNpc;
+ // fightNpc.OnAttacked += OnAttackNpc;
+ // }
+ // s_ClientFightNpcs.Add(fightNpc);
+ //}
break;
}
+ }
+
+ RefreshMapNpcCount();
+ }
+
+ void RefreshMapNpcCount()
+ {
+ foreach (var npcInfo in s_NpcRefreshInfos)
+ {
+ var count = 0;
+ foreach (var npcId in s_Sid2NpcIds.Values)
+ {
+ if (npcId == npcInfo.npcId)
+ {
+ count++;
+ }
+ }
+ model.RefreshMapNpcCount(npcInfo.npcId, count);
}
}
@@ -190,18 +233,18 @@
}
}
- foreach (var _npc in s_ClientFightNpcs)
- {
- if (_npc != null)
- {
- _npc.OnAttacked -= OnAttackNpc;
- _npc.ActorInfo.serverDie = true;
- GAMgr.Instance.ServerDie(_npc.ServerInstID);
- GAMgr.Instance.Release(_npc);
- }
- }
-
- s_ClientFightNpcs.Clear();
+ //foreach (var _npc in s_ClientFightNpcs)
+ //{
+ // if (_npc != null)
+ // {
+ // _npc.OnAttacked -= OnAttackNpc;
+ // _npc.ActorInfo.serverDie = true;
+ // GAMgr.Instance.ServerDie(_npc.ServerInstID);
+ // GAMgr.Instance.Release(_npc);
+ // }
+ //}
+ //
+ //s_ClientFightNpcs.Clear();
s_CollectNpcs.Clear();
}
diff --git a/System/HazyRegion/DungeonCollectItemSuccWin.cs b/System/HazyRegion/DungeonCollectItemSuccWin.cs
new file mode 100644
index 0000000..891d64e
--- /dev/null
+++ b/System/HazyRegion/DungeonCollectItemSuccWin.cs
@@ -0,0 +1,113 @@
+锘�//--------------------------------------------------------
+// [Author]: 绗簩涓栫晫
+// [ Date ]: Tuesday, April 16, 2019
+//--------------------------------------------------------
+
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+using UnityEngine.UI;
+
+namespace Snxxz.UI
+{
+
+ public class DungeonCollectItemSuccWin : Window
+ {
+ [SerializeField] Transform m_Container;
+ [SerializeField] Text m_GainRemind;
+
+ bool displaying = false;
+
+ Clock clock = null;
+
+ Queue<Item> displayItems = new Queue<Item>();
+
+ #region Built-in
+ protected override void BindController()
+ {
+ }
+
+ protected override void AddListeners()
+ {
+ }
+
+ protected override void OnPreOpen()
+ {
+ displaying = false;
+ m_Container.gameObject.SetActive(false);
+ displayItems.Clear();
+
+ DTCA718_tagMCCollectAwardItemInfo.onCollectSucc += OnCollectSucc;
+ }
+
+ protected override void OnAfterOpen()
+ {
+ }
+
+ protected override void OnPreClose()
+ {
+ DTCA718_tagMCCollectAwardItemInfo.onCollectSucc -= OnCollectSucc;
+ if (clock != null)
+ {
+ Clock.Stop(clock);
+ clock = null;
+ }
+ }
+
+ protected override void OnAfterClose()
+ {
+ }
+ #endregion
+
+ private void OnCollectSucc(HA718_tagMCCollectAwardItemInfo package)
+ {
+ for (int i = 0; i < package.Count; i++)
+ {
+ var item = new Item()
+ {
+ id = (int)package.AwardItemList[i].ItemID,
+ count = package.AwardItemList[i].Count,
+ };
+ displayItems.Enqueue(item);
+ }
+
+ if (!displaying)
+ {
+ DisplayCollectSucc();
+ }
+ }
+
+ void DisplayCollectSucc()
+ {
+ if (displayItems.Count > 0)
+ {
+ m_Container.gameObject.SetActive(true);
+ var item = displayItems.Dequeue();
+ var config = ItemConfig.Get(item.id);
+ if (config != null)
+ {
+ m_GainRemind.text = string.Format("鑾峰緱{0}涓獅1}", item.count, config.ItemName);
+ }
+
+ if (clock != null)
+ {
+ Clock.Stop(clock);
+ clock = null;
+ }
+
+ clock = Clock.AlarmAfter(2, DisplayCollectSucc);
+ }
+ else
+ {
+ m_Container.gameObject.SetActive(false);
+ displaying = false;
+ }
+ }
+ }
+
+}
+
+
+
+
diff --git a/System/HazyRegion/DungeonCollectItemSuccWin.cs.meta b/System/HazyRegion/DungeonCollectItemSuccWin.cs.meta
new file mode 100644
index 0000000..3d9757d
--- /dev/null
+++ b/System/HazyRegion/DungeonCollectItemSuccWin.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: 083cbd7ec1d1c4344904b08cef67dad9
+timeCreated: 1555401005
+licenseType: Pro
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/System/HazyRegion/HazyGrassDungeonWin.cs b/System/HazyRegion/HazyGrassDungeonWin.cs
index b038997..91518d8 100644
--- a/System/HazyRegion/HazyGrassDungeonWin.cs
+++ b/System/HazyRegion/HazyGrassDungeonWin.cs
@@ -6,6 +6,7 @@
using System;
using System.Collections;
using System.Collections.Generic;
+using System.Text;
using UnityEngine;
using UnityEngine.UI;
@@ -15,13 +16,10 @@
public class HazyGrassDungeonWin : Window
{
[SerializeField] DungeonTargetBehaviour m_DungeonTarget;
- [SerializeField] Text m_BasicGrassCount;
- [SerializeField] Text m_FairyGrassCount;
- [SerializeField] Text m_BasicGrassRefreshTime;
- [SerializeField] Text m_FairyGrassRefreshTime;
+ [SerializeField] HazyGrassCountBeha[] m_GrassCountBehas;
+ [SerializeField] Text[] m_GrassTimes;
- [SerializeField] Transform m_ContainerCollectSucc;
- [SerializeField] Text m_GainRemind;
+ float timer = 0f;
DungeonModel model { get { return ModelCenter.Instance.GetModel<DungeonModel>(); } }
HazyRegionModel hazyRegionModel { get { return ModelCenter.Instance.GetModel<HazyRegionModel>(); } }
@@ -37,11 +35,13 @@
protected override void OnPreOpen()
{
- m_ContainerCollectSucc.gameObject.SetActive(false);
-
Display();
+ timer = 0f;
+ RequestGrassCount();
+
GlobalTimeEvent.Instance.secondEvent += PerSecond;
+ hazyGrassModel.onMapNpcCountRefresh += OnMapNpcCountRefresh;
}
protected override void OnAfterOpen()
@@ -51,10 +51,22 @@
protected override void OnPreClose()
{
GlobalTimeEvent.Instance.secondEvent -= PerSecond;
+ hazyGrassModel.onMapNpcCountRefresh -= OnMapNpcCountRefresh;
}
protected override void OnAfterClose()
{
+ }
+
+ protected override void LateUpdate()
+ {
+ base.LateUpdate();
+ timer += Time.deltaTime;
+ if (timer >= 5f)
+ {
+ timer = 0f;
+ RequestGrassCount();
+ }
}
#endregion
@@ -77,19 +89,102 @@
}
DisplayGrassRefreshTime();
+ DisplayGrassCount();
}
void DisplayGrassCount()
{
-
+ var mapId = hazyGrassModel.GetGrassMapId(hazyRegionModel.processingIncidentId);
+ var npcInfos = hazyGrassModel.GetGrassNpcInfos(mapId);
+ for (int i = 0; i < m_GrassCountBehas.Length; i++)
+ {
+ if (npcInfos != null && i < npcInfos.Count)
+ {
+ m_GrassCountBehas[i].SetActive(true);
+ m_GrassCountBehas[i].Display(npcInfos[i].npcId,
+ hazyGrassModel.GetMapNpcCount(npcInfos[i].npcId));
+ }
+ else
+ {
+ m_GrassCountBehas[i].SetActive(false);
+ }
+ }
}
void DisplayGrassRefreshTime()
{
- var used = Mathf.Max(0, (int)(TimeUtility.ServerNow - hazyGrassModel.grassBornTime).TotalSeconds);
- var refreshSeconds = hazyGrassModel.grassRefreshSeconds - used % hazyGrassModel.grassRefreshSeconds;
- m_BasicGrassRefreshTime.text = Language.Get("HazyBasicGrassRefresh", TimeUtility.SecondsToMS(refreshSeconds));
- m_FairyGrassRefreshTime.text = Language.Get("HazyFairyGrassRefresh", TimeUtility.SecondsToMS(refreshSeconds));
+ var mapId = hazyGrassModel.GetGrassMapId(hazyRegionModel.processingIncidentId);
+ var npcInfos = hazyGrassModel.GetGrassNpcInfos(mapId);
+ for (int i = 0; i < m_GrassTimes.Length; i++)
+ {
+ if (npcInfos != null && i < npcInfos.Count)
+ {
+ m_GrassTimes[i].gameObject.SetActive(true);
+ var used = TimeUtility.Minute * 60 + TimeUtility.Second;
+ var refreshSeconds = npcInfos[i].refreshMinute * 60;
+ var seconds = refreshSeconds - used % refreshSeconds;
+ var npcConfig = NPCConfig.Get(npcInfos[i].npcId);
+ m_GrassTimes[i].text = string.Format("{0}{1}鍚庡埛鏂�", npcConfig.charName,
+ TimeUtility.SecondsToMS(seconds));
+ }
+ else
+ {
+ m_GrassTimes[i].gameObject.SetActive(false);
+ }
+ }
+ }
+
+ void RequestGrassCount()
+ {
+ if (!ClientDungeonStageUtility.isClientDungeon)
+ {
+ var config = HazyRegionConfig.Get(hazyRegionModel.processingIncidentId);
+ if (config != null)
+ {
+ var npcInfos = hazyGrassModel.GetGrassNpcInfos(config.dungeonId);
+ if (npcInfos != null)
+ {
+ int[] npcs = new int[npcInfos.Count];
+ for (int i = 0; i < npcInfos.Count; i++)
+ {
+ npcs[i] = npcInfos[i].npcId;
+ }
+
+ var pak = new CA227_tagCMQueryNPCCntInfo();
+ pak.MapID = (uint)config.dungeonId;
+ pak.LineID = (ushort)config.lineId;
+ pak.NPCIDList = LitJson.JsonMapper.ToJson(npcs);
+ pak.NPCIDListLen = (byte)pak.NPCIDList.Length;
+ GameNetSystem.Instance.SendInfo(pak);
+ }
+ }
+ }
+ }
+
+ private void OnMapNpcCountRefresh()
+ {
+ DisplayGrassCount();
+ }
+
+ [Serializable]
+ public class HazyGrassCountBeha
+ {
+ [SerializeField] Transform m_Container;
+ [SerializeField] Text m_Title;
+ [SerializeField] Text m_Count;
+
+ public void Display(int npcId, int count)
+ {
+ var npcConfig = NPCConfig.Get(npcId);
+ m_Title.text = string.Format("鍓╀綑{0}鏁伴噺锛�", npcConfig.charName);
+ m_Count.text = count.ToString();
+ m_Count.color = UIHelper.GetUIColor(count > 0 ? TextColType.Green : TextColType.Red);
+ }
+
+ public void SetActive(bool active)
+ {
+ m_Container.gameObject.SetActive(active);
+ }
}
}
diff --git a/System/HazyRegion/HazyGrassModel.cs b/System/HazyRegion/HazyGrassModel.cs
index 5f0f6be..03e89df 100644
--- a/System/HazyRegion/HazyGrassModel.cs
+++ b/System/HazyRegion/HazyGrassModel.cs
@@ -6,6 +6,9 @@
{
public class HazyGrassModel : Model, IBeforePlayerDataInitialize, IPlayerLoginOk
{
+ Dictionary<int, List<HazyGrassNpcInfo>> mapNpcs = new Dictionary<int, List<HazyGrassNpcInfo>>();
+ Dictionary<int, int> m_MapNpcCount = new Dictionary<int, int>();
+
public const int ReikiGrassMapId = 32040;
public const int FairyGrassMapId = 32050;
public const int Client_ReikiGrassMapID = 3240;
@@ -13,11 +16,10 @@
public bool IsInDungeon { get; private set; }
- public int grassRefreshSeconds { get; private set; }
-
- public DateTime grassBornTime { get; private set; }
+ public event Action onMapNpcCountRefresh;
HazyRegionModel hazyRegionModel { get { return ModelCenter.Instance.GetModel<HazyRegionModel>(); } }
+ DungeonModel dungeonModel { get { return ModelCenter.Instance.GetModel<DungeonModel>(); } }
public override void Init()
{
@@ -41,12 +43,35 @@
void ParseConfig()
{
- grassRefreshSeconds = 20;
+ var mapNpcConfigs = MapNpcRefreshConfig.GetValues();
+ foreach (var config in mapNpcConfigs)
+ {
+ if (config.MapID == ReikiGrassMapId
+ || config.MapID == FairyGrassMapId)
+ {
+ List<HazyGrassNpcInfo> _npcs = null;
+ if (!mapNpcs.TryGetValue(config.MapID, out _npcs))
+ {
+ _npcs = new List<HazyGrassNpcInfo>();
+ mapNpcs.Add(config.MapID, _npcs);
+ }
+ for (int i = 0; i < config.NPCIDList.Length; i++)
+ {
+ _npcs.Add(new HazyGrassNpcInfo()
+ {
+ npcId = config.NPCIDList[i],
+ refreshMinute = config.RefreshPerMinutes,
+ });
+ }
+ }
+ }
}
private void OnStageLoadFinish()
{
var mapId = PlayerDatas.Instance.baseData.MapID;
+
+ m_MapNpcCount.Clear();
IsInDungeon = false;
if (IsInGrassDungeon(mapId))
@@ -89,14 +114,83 @@
return 0;
}
- public void RefreshGrassBornTime()
+ public int GetGrassMapId(int incidentId)
{
-
+ var config = HazyRegionConfig.Get(incidentId);
+ if (config != null)
+ {
+ return config.dungeonId;
+ }
+ return 0;
}
- public void RefreshGrassBornTime(DateTime _time)
+ public List<HazyGrassNpcInfo> GetGrassNpcInfos(int mapId)
{
- grassBornTime = _time;
+ if (mapNpcs.ContainsKey(mapId))
+ {
+ return mapNpcs[mapId];
+ }
+ return null;
+ }
+
+ public int GetMapNpcCount(int npcId)
+ {
+ if (m_MapNpcCount.ContainsKey(npcId))
+ {
+ return m_MapNpcCount[npcId];
+ }
+ return 0;
+ }
+
+ public bool CanCollectClientNpc(int npcId)
+ {
+ if (ClientDungeonStageUtility.isClientDungeon
+ && ClientDungeonStageUtility.clientMapId == Client_ReikiGrassMapID)
+ {
+ var config = HazyRegionConfig.Get(hazyRegionModel.processingIncidentId);
+ if (config != null)
+ {
+ var collectCount = dungeonModel.GetDugneonNpcCollectCount(npcId);
+ var hintId = dungeonModel.GetDungeonHintId(config.dungeonId, config.lineId);
+ var hintConfig = DungeonHintConfig.Get(hintId);
+ if (hintConfig.NPC1ID.Length > 0 && hintConfig.NPC1ID[0] == npcId)
+ {
+ return collectCount < hintConfig.targetValue1[0];
+ }
+ else if (hintConfig.NPC2ID.Length > 0 && hintConfig.NPC2ID[0] == npcId)
+ {
+ return collectCount < hintConfig.targetValue2[0];
+ }
+ }
+ }
+ return true;
+ }
+
+ public void ReceivePackage(HA714_tagMCNPCCntList package)
+ {
+ if (package.MapID != ReikiGrassMapId
+ && package.MapID != FairyGrassMapId)
+ {
+ return;
+ }
+ for (int i = 0; i < package.NPCInfoCnt; i++)
+ {
+ var data = package.NPCInfoList[i];
+ m_MapNpcCount[(int)data.NPCID] = (int)data.Cnt;
+ }
+ if (onMapNpcCountRefresh != null)
+ {
+ onMapNpcCountRefresh();
+ }
+ }
+
+ public void RefreshMapNpcCount(int npcId, int count)
+ {
+ m_MapNpcCount[npcId] = count;
+ if (onMapNpcCountRefresh != null)
+ {
+ onMapNpcCountRefresh();
+ }
}
public void RequestEnterClientDungeon()
@@ -145,5 +239,11 @@
});
}
}
+
+ public struct HazyGrassNpcInfo
+ {
+ public int npcId;
+ public int refreshMinute;
+ }
}
diff --git a/System/HazyRegion/HazyRegionModel.cs b/System/HazyRegion/HazyRegionModel.cs
index 32139dd..93de794 100644
--- a/System/HazyRegion/HazyRegionModel.cs
+++ b/System/HazyRegion/HazyRegionModel.cs
@@ -40,7 +40,11 @@
public bool InFakeHazyRegion
{
- get { return hazyRegionOpenTimes <= fakeOpenTimes; }
+ get
+ {
+ return hazyRegionOpenTimes <= fakeOpenTimes
+ || !FuncOpen.Instance.IsFuncOpen((int)FuncOpenEnum.HazyRegion);
+ }
}
int cacheMapId = 0;
diff --git a/System/Login/LoginModel.cs b/System/Login/LoginModel.cs
index 40bc42a..f6eeb30 100644
--- a/System/Login/LoginModel.cs
+++ b/System/Login/LoginModel.cs
@@ -299,7 +299,7 @@
send.Extra = "";
break;
case VersionAuthority.Release:
- send.Extra = VersionConfig.Get().SpID;
+ send.Extra = VersionConfig.Get().SpID + "|" + SDKUtility.Instance.Device.imei;
send.ExtraLen = (byte)send.Extra.Length;
if (SDKUtility.Instance.ChannelPlatform == SDKUtility.E_ChannelPlatform.Free)
{
diff --git a/Utility/ConfigInitiator.cs b/Utility/ConfigInitiator.cs
index a8239f1..05b287b 100644
--- a/Utility/ConfigInitiator.cs
+++ b/Utility/ConfigInitiator.cs
@@ -291,6 +291,7 @@
normalTasks.Add(new ConfigInitTask("ReikiRootConfig", () => { ReikiRootConfig.Init(); }, () => { return ReikiRootConfig.inited; }));
normalTasks.Add(new ConfigInitTask("HazyRegionConfig", () => { HazyRegionConfig.Init(); }, () => { return HazyRegionConfig.inited; }));
normalTasks.Add(new ConfigInitTask("AdventureDialogueConfig", () => { AdventureDialogueConfig.Init(); }, () => { return AdventureDialogueConfig.inited; }));
+ normalTasks.Add(new ConfigInitTask("MapNpcRefreshConfig", () => { MapNpcRefreshConfig.Init(); }, () => { return MapNpcRefreshConfig.inited; }));
}
static List<ConfigInitTask> doingTasks = new List<ConfigInitTask>();
diff --git a/Utility/EnumHelper.cs b/Utility/EnumHelper.cs
index 596b861..bbe779c 100644
--- a/Utility/EnumHelper.cs
+++ b/Utility/EnumHelper.cs
@@ -698,6 +698,7 @@
ReikiRoot = 145,//鐏垫牴
CrossServer = 157, //璺ㄦ湇澶╂璧�
CrossServerBoss = 162,
+ HazyRegion = 173,//缂ョ紙浠欏煙
}
//灞炴�х被鍨�
public enum PropertyType
@@ -1185,6 +1186,7 @@
NPCDialogue = 8, //npc瀵硅瘽
VictorySumCnt = 9, //锛堜粰榄旇儨鍒╂�诲満鏁帮級
StageVictoryCnt = 10, //锛堥樁娈佃儨鍒╁満鏁帮級
+ Collect,
}
public enum AchievementType
--
Gitblit v1.8.0