Core/GameEngine/DataToCtl/PackageRegedit.cs
@@ -25,6 +25,7 @@ public static void Init() { // 登记相应的数据体及对应的数据转逻辑类 Register(typeof(HB108_tagMCYinjiStartTime) ,typeof(DTCB108_tagMCYinjiStartTime)); Register(typeof(HA325_tagMCNPCAttackCountInfo), typeof(DTCA325_tagMCNPCAttackCountInfo)); Register(typeof(HB215_tagMCFBBuyBuffInfo), typeof(DTCB215_tagMCFBBuyBuffInfo)); Register(typeof(HA718_tagMCCollectAwardItemInfo), typeof(DTCA718_tagMCCollectAwardItemInfo)); Core/GameEngine/Model/Config/AlchemyCountConfig.cs
@@ -1,6 +1,6 @@ //-------------------------------------------------------- // [Author]: Fish // [ Date ]: Wednesday, April 17, 2019 // [ Date ]: Saturday, April 27, 2019 //-------------------------------------------------------- using System.Collections.Generic; @@ -13,7 +13,8 @@ public partial class AlchemyCountConfig { public readonly int AlchemyQuality; public readonly int id; public readonly int AlchemyQuality; public readonly int LuckValue; public readonly string CntRateList; @@ -27,11 +28,13 @@ { var tables = input.Split('\t'); int.TryParse(tables[0],out AlchemyQuality); int.TryParse(tables[0],out id); int.TryParse(tables[1],out LuckValue); int.TryParse(tables[1],out AlchemyQuality); CntRateList = tables[2]; int.TryParse(tables[2],out LuckValue); CntRateList = tables[3]; } catch (Exception ex) { Core/GameEngine/Model/Config/AlchemyCountConfig.cs.meta
@@ -1,6 +1,6 @@ fileFormatVersion: 2 guid: 5f36f1c0496212c43ab7871e4d3d42dd timeCreated: 1555489466 timeCreated: 1556343422 licenseType: Pro MonoImporter: serializedVersion: 2 Core/GameEngine/Model/Player/Character/PlayerBaseData.cs
@@ -65,6 +65,9 @@ public int reduceHeartHurt;//会心一击伤害固定值减免 public int reduceFinalHurt;//最终伤害百分比减免 public int yinjiCount;//当前印记数量 public int yinjiTime;//印记转圈时间 public long treasurePotentialSp { get Core/GameEngine/Model/Player/PlayerDatas.cs
@@ -328,8 +328,7 @@ case PlayerDataType.MaxMP: extersion.MaxMP = (int)value; break; case PlayerDataType.XP: break; case PlayerDataType.HPRestoreSetting: break; case PlayerDataType.MPRestoreSetting: @@ -888,6 +887,12 @@ case PlayerDataType.CDBPlayerRefresh_FinalHurtReducePer: baseData.reduceFinalHurt = (int)value; break; case PlayerDataType.CDBPlayerRefresh_YinjiTime: baseData.yinjiTime = (int)value; break; case PlayerDataType.CDBPlayerRefresh_YinjiCount: baseData.yinjiCount = (int)value; break; } } Core/NetworkPackage/DTCFile/ServerPack/HB1_Role/DTCB108_tagMCYinjiStartTime.cs
New file @@ -0,0 +1,16 @@ using UnityEngine; using System.Collections; using Snxxz.UI; //B1 08 开始印记流失时间 #tagMCYinjiStartTime public class DTCB108_tagMCYinjiStartTime : DtcBasic { YinJiModel model { get { return ModelCenter.Instance.GetModel<YinJiModel>(); } } public override void Done(GameNetPackBasic vNetPack) { base.Done(vNetPack); model.BeginFadeAway(); } } Core/NetworkPackage/DTCFile/ServerPack/HB1_Role/DTCB108_tagMCYinjiStartTime.cs.metacopy from Lua/Gen/SnxxzUITreasureFindHostModelWrap.cs.meta copy to Core/NetworkPackage/DTCFile/ServerPack/HB1_Role/DTCB108_tagMCYinjiStartTime.cs.meta
File was copied from Lua/Gen/SnxxzUITreasureFindHostModelWrap.cs.meta @@ -1,6 +1,6 @@ fileFormatVersion: 2 guid: 46f7e1d408789ee41a746a47b78d9480 timeCreated: 1550120577 guid: 14fac966cd3cd2247817bd50678402d0 timeCreated: 1556337541 licenseType: Pro MonoImporter: serializedVersion: 2 Core/NetworkPackage/ServerPack/HB1_Role/HB108_tagMCYinjiStartTime.cs
New file @@ -0,0 +1,15 @@ using UnityEngine; using System.Collections; //B1 08 开始印记流失时间 #tagMCYinjiStartTime public class HB108_tagMCYinjiStartTime : GameNetPackBasic { public HB108_tagMCYinjiStartTime () { _cmd = (ushort)0xB108; } public override void ReadFromBytes (byte[] vBytes) { } } Core/NetworkPackage/ServerPack/HB1_Role/HB108_tagMCYinjiStartTime.cs.metacopy from Lua/Gen/SnxxzUITreasureFindHostModelWrap.cs.meta copy to Core/NetworkPackage/ServerPack/HB1_Role/HB108_tagMCYinjiStartTime.cs.meta
File was copied from Lua/Gen/SnxxzUITreasureFindHostModelWrap.cs.meta @@ -1,6 +1,6 @@ fileFormatVersion: 2 guid: 46f7e1d408789ee41a746a47b78d9480 timeCreated: 1550120577 guid: a37d7e81722084247b0bde35c6c9a12d timeCreated: 1556337541 licenseType: Pro MonoImporter: serializedVersion: 2 Lua/Gen/SnxxzUITreasureFindHostModelWrap.cs
File was deleted Lua/Gen/XLuaGenAutoRegister.cs
@@ -1356,9 +1356,6 @@ translator.DelayWrapLoader(typeof(PwdKeyboard), PwdKeyboardWrap.__Register); translator.DelayWrapLoader(typeof(Snxxz.UI.TreasureFindHostModel), SnxxzUITreasureFindHostModelWrap.__Register); translator.DelayWrapLoader(typeof(FairyJadeInvestmentModel), FairyJadeInvestmentModelWrap.__Register); System/Alchemy/AlchemyModel.cs
@@ -272,7 +272,7 @@ alchemyCount = dict[_luckValue]; } } return alchemyCount.Equals(default(AlchemyCount)); return !alchemyCount.Equals(default(AlchemyCount)); } public bool TryGetAlchemyMaterials(int alchemyId, out List<Item> items) System/Alchemy/AlchemyStudyBehaviour.cs
@@ -88,12 +88,6 @@ { error = 0; var config = AlchemyConfig.Get(model.selectAlchemy); var count = packModel.GetItemCountByID(PackType.Item, config.LearnNeedItemID); if (count <= 0) { error = 1; return false; } if (model.stoveLevel < config.LearnNeedAlchemLV) { error = 2; @@ -104,6 +98,12 @@ error = 3; return false; } var count = packModel.GetItemCountByID(PackType.Item, config.LearnNeedItemID); if (count <= 0) { error = 1; return false; } return true; } @@ -112,7 +112,9 @@ switch (error) { case 1: SysNotifyMgr.Instance.ShowTip("AlchemyLearnError_1"); var config = AlchemyConfig.Get(model.selectAlchemy); ItemTipUtility.Show(config.LearnNeedItemID); //SysNotifyMgr.Instance.ShowTip("AlchemyLearnError_1"); break; case 2: SysNotifyMgr.Instance.ShowTip("AlchemyLearnError_2"); System/BossShow/BossShowModel.cs
@@ -134,7 +134,7 @@ catch (Exception e) { BossShowing = false; Debug.LogError(e.Message); Debug.LogError(e.Message + e.StackTrace); } } System/MainWin/MainWinYinJiBehaviour.cs
New file @@ -0,0 +1,101 @@ //-------------------------------------------------------- // [Author]: 第二世界 // [ Date ]: Saturday, April 27, 2019 //-------------------------------------------------------- using UnityEngine; using System.Collections; using UnityEngine.UI; namespace Snxxz.UI { public class MainWinYinJiBehaviour : MonoBehaviour { [SerializeField] RectTransform m_Content; [SerializeField] Image m_Circle; [SerializeField] Text m_Number; float circleTotalTime = 1f; YinJiModel model { get { return ModelCenter.Instance.GetModel<YinJiModel>(); } } private void OnEnable() { PlayerDatas.Instance.playerDataRefreshEvent += OnPlayerDataRefresh; DisplayYinJiCount(); } private void OnDisable() { PlayerDatas.Instance.playerDataRefreshEvent -= OnPlayerDataRefresh; } private void LateUpdate() { if (model.yinjiEndTime > Time.time) { var fillAmount = 0f; if (circleTotalTime != 0f) { fillAmount = (model.yinjiEndTime - Time.time) / circleTotalTime; } m_Circle.fillAmount = fillAmount; } else { if (m_Circle.fillAmount != 0f) { m_Circle.fillAmount = 0f; } } if (PlayerDatas.Instance.baseData.yinjiCount > 0) { if (!this.gameObject.activeSelf) { m_Content.gameObject.SetActive(true); } } else { if (this.gameObject.activeSelf) { m_Content.gameObject.SetActive(false); } } } private void OnPlayerDataRefresh(PlayerDataType type) { switch (type) { case PlayerDataType.CDBPlayerRefresh_YinjiCount: DisplayYinJiCount(); break; case PlayerDataType.CDBPlayerRefresh_YinjiTime: circleTotalTime = PlayerDatas.Instance.baseData.yinjiTime * 0.001f; break; } } private void DisplayYinJiCount() { if (PlayerDatas.Instance.baseData.yinjiCount > 0) { m_Content.gameObject.SetActive(true); var count = PlayerDatas.Instance.baseData.yinjiCount; m_Number.text = count > 0 ? count.ToString() : ""; } else { m_Content.gameObject.SetActive(false); } } } } System/MainWin/MainWinYinJiBehaviour.cs.meta
File was renamed from Lua/Gen/SnxxzUITreasureFindHostModelWrap.cs.meta @@ -1,6 +1,6 @@ fileFormatVersion: 2 guid: 46f7e1d408789ee41a746a47b78d9480 timeCreated: 1550120577 guid: cf633c396e5c6b94ca6e73bfe2440548 timeCreated: 1556335353 licenseType: Pro MonoImporter: serializedVersion: 2 System/TreasureFindHost/ReciveConditionCell.cs
@@ -24,74 +24,58 @@ [SerializeField] List<CommonItemBaisc> itemlist = new List<CommonItemBaisc>(); TreasureFindHostModel hostModel { get { return ModelCenter.Instance.GetModel<TreasureFindHostModel>(); } } EquipModel equipModel { get { return ModelCenter.Instance.GetModel<EquipModel>(); } } int progress = 0; int findId = 0; StringBuilder condiSB = new StringBuilder(); public void SetModel(int findId) { FindTreasureInfo info = null; hostModel.TryGetFindTreasureInfo(findId, out info); if (info == null) return; condiSB.Length = 0; findId = info.id; bool isReach = hostModel.IsReachCondition(info, out progress); SetReceiveAwardInfo(info); switch (info.type) public void Display(int findId) { FindTreasureInfo findHosts = null; hostModel.TryGetFindTreasureInfo(findId, out findHosts); if (findHosts == null) { return; } findId = findHosts.id; bool isReach = hostModel.IsReachCondition(findHosts); SetReceiveAwardInfo(findHosts); switch (findHosts.type) { case 1: conditionText.text = Language.Get("TreasureFindHost_Type1", GetFindProgressStr(info)); break; case 2: int equipPlace = 0; foreach (var value in info.needConditionsDict.Values) var index = 0; var sb = new StringBuilder(); sb.Append(Language.Get("FindHostEquip_1")); foreach (var findHostEquip in findHosts.findHostEquips) { string s = s = Language.Get("TreasureFindHost_Type2Split1", value[0], UIHelper.GetColorNameByItemColor(value[1]), value[2]); if (condiSB.Length > 0) if (index > 0) { s = StringUtility.Contact(Language.Get("TreasureFindHost_Type2Split2"), s); sb.Append(Language.Get("FindHostEquip_2")); } equipPlace = value[3]; condiSB.Append(s); var equipSet = equipModel.GetEquipSet(findHostEquip.level); var realmConfig = RealmConfig.Get(equipSet.realm); sb.Append(UIHelper.GetRealmName(equipSet.realm, true)); sb.Append(UIHelper.AppendColor(findHostEquip.itemColor, UIHelper.GetColorNameByItemColor(findHostEquip.itemColor), true)); if (findHostEquip.isSuit) { var suits = EquipSuitConfig.GetConfigs(PlayerDatas.Instance.baseData.Job, findHostEquip.level, EquipSuitType.TwoSuit); sb.Append(EquipSuitConfig.GetEquipSuitName(suits[0].suiteID)); } sb.Append(UIHelper.GetEquipPlaceName(findHostEquip.place)); index++; } conditionText.text = Language.Get("TreasureFindHost_Type2", condiSB.ToString(), UIHelper.GetEquipPlaceName(equipPlace), GetFindProgressStr(info)); break; case 3: conditionText.text = Language.Get("TreasureFindHost_Type3", info.targetNum, GetFindProgressStr(info)); break; case 4: foreach (var value in info.needConditionsDict.Values) { string s = ""; switch (value[1]) { case 1: s = Language.Get("TreasureFindHost_Type4Split1", value[0], Language.Get("TreasureFindHost_Type4Split2")); break; case 2: s = Language.Get("TreasureFindHost_Type4Split1", value[0], Language.Get("TreasureFindHost_Type4Split3")); break; } if (condiSB.Length > 0) { s = StringUtility.Contact(Language.Get("TreasureFindHost_Type2Split2"), s); } condiSB.Append(s); } conditionText.text = Language.Get("TreasureFindHost_Type4", info.targetNum, condiSB.ToString(), GetFindProgressStr(info)); break; default: DebugEx.LogError("暂无此类型需要添加:" + info.type); conditionText.text = StringUtility.Contact(sb.ToString(), "\n", GetFindProgressStr(findHosts)); break; } List<int> adviceIdlist = info.adviceItemIdDict[PlayerDatas.Instance.baseData.Job]; List<int> adviceIdlist = findHosts.findRecommandItems[PlayerDatas.Instance.baseData.Job]; receiveBtn.RemoveAllListeners(); if (info.IsCompleted) if (findHosts.IsCompleted) { receiveEffect.gameObject.SetActive(false); receivedImg.SetActive(true); @@ -107,7 +91,7 @@ btnText.text = Language.Get("HallowsWin_Btn_ReceiveAward"); receiveBtn.AddListener(() => { hostModel.SendGetRewardQuest(info.id); hostModel.SendGetRewardQuest(findHosts.id); }); } else @@ -126,13 +110,13 @@ adviceText.SetActive(false); } public void SetReceiveAwardInfo(FindTreasureInfo info) public void SetReceiveAwardInfo(FindTreasureInfo findHost) { foreach (var value in info.awardMoneyDict.Values) foreach (var findHostMoney in findHost.findHostMoneys) { int rewardMoneyCnt = value[1]; int rewardMoneyCnt = findHostMoney.count; rewardCntTex.text = UIHelper.ReplaceLargeNum(rewardMoneyCnt); int itemId = GeneralDefine.moneyDisplayIds[value[0]]; int itemId = GeneralDefine.moneyDisplayIds[findHostMoney.moneyType]; ItemConfig itemConfig = ItemConfig.Get(itemId); if (itemConfig != null) { @@ -146,14 +130,14 @@ }); } foreach (var value in info.awardItemDict.Values) foreach (var item in findHost.findHostItems) { ItemConfig itemConfig = ItemConfig.Get(value[0]); ItemConfig itemConfig = ItemConfig.Get(item.id); if (itemConfig != null) { rewardIcon.SetSprite(itemConfig.IconKey); rewardBg.SetItemBackGround(itemConfig.ItemColor); int rewardCnt = value[1]; int rewardCnt = item.count; rewardCntTex.text = UIHelper.ReplaceLargeNum(rewardCnt); rewardBtn.RemoveAllListeners(); rewardBtn.AddListener(() => @@ -172,17 +156,15 @@ } else { if (progress < info.targetNum) if (!hostModel.IsReachCondition(info)) { return UIHelper.AppendColor(TextColType.Red, StringUtility.Contact(progress, "/", info.targetNum), true); return UIHelper.AppendColor(TextColType.Red, StringUtility.Contact(0, "/", info.targetNum), true); } else { return UIHelper.AppendColor(TextColType.Green, StringUtility.Contact(progress, "/", info.targetNum)); return UIHelper.AppendColor(TextColType.Green, StringUtility.Contact(1, "/", info.targetNum), true); } } } } } System/TreasureFindHost/TreasureFindHostModel.cs
@@ -9,48 +9,42 @@ [XLua.LuaCallCSharp] public class TreasureFindHostModel : Model,IBeforePlayerDataInitialize,IAfterPlayerDataInitialize,IPlayerLoginOk { private Dictionary<int, List<FindTreasureInfo>> findTreasureDict = new Dictionary<int, List<FindTreasureInfo>>(); PackModel playerPack { get { return ModelCenter.Instance.GetModel<PackModel>(); } } TreasureModel treasureModel { get { return ModelCenter.Instance.GetModel<TreasureModel>(); } } Dictionary<int, List<FindTreasureInfo>> findTreasures = new Dictionary<int, List<FindTreasureInfo>>(); public List<int> treasureIdlist { get; set; } public event Action TreasureFindHostCompleteAct; public int[] specEquipIds { get; private set;} PackModel packModel { get { return ModelCenter.Instance.GetModel<PackModel>(); } } TreasureModel treasureModel { get { return ModelCenter.Instance.GetModel<TreasureModel>(); } } EquipModel equipModel { get { return ModelCenter.Instance.GetModel<EquipModel>(); } } public override void Init() { findTreasureDict.Clear(); List<TreasureFindHostConfig> findlist = TreasureFindHostConfig.GetValues(); for(int i = 0; i < findlist.Count; i++) var configs = TreasureFindHostConfig.GetValues(); foreach (var config in configs) { int treasureId = findlist[i].MagicWeaponID; if(!findTreasureDict.ContainsKey(treasureId)) int treasureId = config.MagicWeaponID; List<FindTreasureInfo> list; if (!findTreasures.TryGetValue(treasureId, out list)) { List<FindTreasureInfo> infolist = new List<FindTreasureInfo>(); FindTreasureInfo treasureInfo = new FindTreasureInfo(findlist[i].ID); infolist.Add(treasureInfo); findTreasureDict.Add(treasureId,infolist); list = new List<FindTreasureInfo>(); findTreasures.Add(treasureId, list); } else { FindTreasureInfo treasureInfo = new FindTreasureInfo(findlist[i].ID); findTreasureDict[treasureId].Add(treasureInfo); } var treasureInfo = new FindTreasureInfo(config.ID); list.Add(treasureInfo); } treasureIdlist = findTreasureDict.Keys.ToList(); treasureIdlist = findTreasures.Keys.ToList(); SetTreasureCellRedKey(); PlayerDatas.Instance.playerDataRefreshEvent += RefreshPlayerData; playerPack.refreshItemCountEvent += RefreshEquipInfo; packModel.refreshItemCountEvent += RefreshEquipInfo; treasureModel.treasureStateChangeEvent += RefreshTreasureState; FuncConfigConfig SamboSpecialUnlock = FuncConfigConfig.Get("SamboSpecialUnlock"); specEquipIds = ConfigParse.GetMultipleStr<int>(SamboSpecialUnlock.Numerical1); } public void OnBeforePlayerDataInitialize() { jumpTreasureId = 0; foreach (var list in findTreasureDict.Values) foreach (var list in findTreasures.Values) { for (int i = 0; i < list.Count; i++) { @@ -89,111 +83,57 @@ public override void UnInit() { PlayerDatas.Instance.playerDataRefreshEvent -= RefreshPlayerData; playerPack.refreshItemCountEvent -= RefreshEquipInfo; packModel.refreshItemCountEvent -= RefreshEquipInfo; treasureModel.treasureStateChangeEvent -= RefreshTreasureState; } public Dictionary<int, List<FindTreasureInfo>> GetFindTreasureInfoDict() { return findTreasureDict; return findTreasures; } public bool IsReachCondition(FindTreasureInfo treasureInfo,out int progress) public bool IsReachCondition(FindTreasureInfo treasureInfo) { progress = 0; if (treasureInfo == null) return false; if (treasureInfo == null) { return false; } switch(treasureInfo.type) { case 1: return CheckType1IsReachCondition(treasureInfo, out progress); case 2: return CheckType2IsReachCondition(treasureInfo, out progress); case 3: return CheckType3IsReachCondition(treasureInfo, out progress); case 4: return CheckType4IsReachCondition(treasureInfo,out progress); return CheckType1IsReachCondition(treasureInfo); } return false; } private bool CheckType1IsReachCondition(FindTreasureInfo treasureInfo, out int progress) private bool CheckType1IsReachCondition(FindTreasureInfo treasureInfo) { progress = PlayerDatas.Instance.GetPlayerDataByType(PlayerDataType.CDBPlayerRefresh_FuncDef); if(progress < treasureInfo.targetNum) foreach (var findHostEquip in treasureInfo.findHostEquips) { return false; } else { return true; } } private bool CheckType2IsReachCondition(FindTreasureInfo treasureInfo, out int progress) { progress = 0; SinglePack singlePack = playerPack.GetSinglePack(PackType.Equip); if (singlePack == null) return false; foreach (var condi in treasureInfo.needConditionsDict.Values) { progress = 0; ItemModel itemModel = playerPack.GetItemByIndex(PackType.Equip,condi[3]); if(itemModel != null) var equipGuid = equipModel.GetEquip(new Int2(findHostEquip.level, findHostEquip.place)); if (!string.IsNullOrEmpty(equipGuid)) { if(specEquipIds != null && specEquipIds.Contains(itemModel.itemId)) var itemModel = packModel.GetItemByGuid(equipGuid); if (itemModel != null) { progress += 1; return true; } if(itemModel.config.LV >= condi[0] && itemModel.config.ItemColor >= condi[1] && itemModel.config.StarLevel >= condi[2]) { progress += 1; return true; if (itemModel.config.ItemColor >= findHostEquip.itemColor) { if (findHostEquip.isSuit) { if (ItemLogicUtility.Instance.IsSuitEquip(itemModel.itemId)) { return true; } } else { return true; } } } } } return false; } private bool CheckType3IsReachCondition(FindTreasureInfo treasureInfo, out int progress) { progress = 0; SinglePack singlePack = playerPack.GetSinglePack(PackType.Equip); if (singlePack == null) return false; Dictionary<int, ItemModel> equipDict = singlePack.GetAllItems(); foreach(var model in equipDict.Values) { progress += model.config.StarLevel; } if(progress >= treasureInfo.targetNum) { return true; } return false; } private bool CheckType4IsReachCondition(FindTreasureInfo treasureInfo,out int progress) { progress = 0; SinglePack singlePack = playerPack.GetSinglePack(PackType.Equip); if (singlePack == null) return false; Dictionary<int, ItemModel> equipDict = singlePack.GetAllItems(); foreach(var condi in treasureInfo.needConditionsDict.Values) { progress = 0; if(progress >= treasureInfo.targetNum) { return true; } } return false; } @@ -204,7 +144,7 @@ if (hostConfig != null) { List<FindTreasureInfo> infolist = null; findTreasureDict.TryGetValue(hostConfig.MagicWeaponID,out infolist); findTreasures.TryGetValue(hostConfig.MagicWeaponID,out infolist); if(infolist != null) { for (int i = 0; i < infolist.Count; i++) @@ -224,8 +164,11 @@ { progress = 0; List<FindTreasureInfo> infolist = null; findTreasureDict.TryGetValue(treasureId,out infolist); if (infolist == null) return false; findTreasures.TryGetValue(treasureId,out infolist); if (infolist == null) { return false; } for(int i = 0; i < infolist.Count; i++) { @@ -245,7 +188,7 @@ private void RefreshTreasureState(int id) { if (!findTreasureDict.ContainsKey(id)) return; if (!findTreasures.ContainsKey(id)) return; Treasure treasure = null; treasureModel.TryGetTreasure(id, out treasure); @@ -281,7 +224,7 @@ public bool CheckTreasureFindHostFinish() { bool isfinish = true; foreach (var id in findTreasureDict.Keys) foreach (var id in findTreasures.Keys) { Treasure treasure = null; treasureModel.TryGetTreasure(id, out treasure); @@ -396,7 +339,7 @@ { treasureCellRedDict.Clear(); int i = 0; foreach(var id in findTreasureDict.Keys) foreach(var id in findTreasures.Keys) { int redKey = TreasureFindHost_RedKey * 100 + i; Redpoint redpoint = new Redpoint(TreasureFindHost_RedKey,redKey); @@ -417,7 +360,10 @@ private void RefreshEquipInfo(PackType type, int index, int itemId) { if (type != PackType.Equip) return; if (type != PackType.Equip) { return; } for (int i = 0; i < treasureIdlist.Count; i++) { @@ -467,11 +413,10 @@ } if (!FuncOpen.Instance.IsFuncOpen((int)FuncOpenEnum.TreasureFindHost)) return; List<FindTreasureInfo> list = findTreasureDict[treasureId]; int progress = 0; List<FindTreasureInfo> list = findTreasures[treasureId]; for (int i = 0; i < list.Count; i++) { bool isReach = IsReachCondition(list[i],out progress); bool isReach = IsReachCondition(list[i]); if(!list[i].IsCompleted && isReach) { treasureCellRedDict[treasureId].state = RedPointState.Simple; @@ -482,6 +427,7 @@ Treasure treasure = null; treasureModel.TryGetTreasure(treasureId, out treasure); var progress = 0; if (IsReachUnlock(treasureId,out progress) && treasure != null && treasure.state != TreasureState.Collected) { @@ -494,99 +440,94 @@ public class FindTreasureInfo { public int id; public int treasureId; public int type; public int targetNum; public int jumpId; public Dictionary<int, List<int>> needConditionsDict = new Dictionary<int, List<int>>(); public Dictionary<int, List<int>> awardItemDict = new Dictionary<int, List<int>>(); public Dictionary<int, List<int>> awardMoneyDict = new Dictionary<int, List<int>>(); public Dictionary<int, List<int>> adviceItemIdDict = new Dictionary<int, List<int>>(); public readonly int id; public readonly int treasureId; public readonly int type; public readonly int targetNum; public readonly int jumpId; public List<FindHostEquip> findHostEquips { get; private set; } public List<Item> findHostItems = new List<Item>(); public List<FindHostMoney> findHostMoneys = new List<FindHostMoney>(); public Dictionary<int, List<int>> findRecommandItems = new Dictionary<int, List<int>>(); public bool IsCompleted; public FindTreasureInfo(int id) { needConditionsDict.Clear(); awardItemDict.Clear(); awardMoneyDict.Clear(); adviceItemIdDict.Clear(); var config = TreasureFindHostConfig.Get(id); this.id = id; this.type = config.Type; this.targetNum = config.NeedCnt; this.jumpId = config.JumpID; this.treasureId = config.MagicWeaponID; IsCompleted = false; TreasureFindHostConfig hostConfig = TreasureFindHostConfig.Get(id); this.type = hostConfig.Type; this.targetNum = hostConfig.NeedCnt; this.jumpId = hostConfig.JumpID; this.treasureId = hostConfig.MagicWeaponID; JsonData needCondiData = JsonMapper.ToObject(hostConfig.Condition); if(needCondiData.IsArray) switch (type) { for(int i = 0; i < needCondiData.Count; i++) { List<int> condlist = new List<int>(); needConditionsDict.Add(i,condlist); if (needCondiData[i].IsArray) case 1: var equipArray = JsonMapper.ToObject<int[][]>(config.Condition); findHostEquips = new List<FindHostEquip>(); for (int i = 0; i < equipArray.Length; i++) { for(int j = 0; j < needCondiData[i].Count;j++) findHostEquips.Add(new FindHostEquip() { condlist.Add(int.Parse(needCondiData[i][j].ToString())); } level = equipArray[i][0], itemColor = equipArray[i][1], isSuit = equipArray[i][2] == 1, place = equipArray[i][3], }); } else { condlist.Add(int.Parse(needCondiData[i].ToString())); } } break; } JsonData awardItemData = JsonMapper.ToObject(hostConfig.AwardItemList); if(awardItemData.IsArray) var itemArray = JsonMapper.ToObject<int[][]>(config.AwardItemList); for (int i = 0; i < itemArray.Length; i++) { for(int i= 0; i < awardItemData.Count;i++) findHostItems.Add(new Item() { List<int> awardlist = new List<int>(); awardItemDict.Add(i, awardlist); if (awardItemData[i].IsArray) { for(int j = 0; j < awardItemData[i].Count; j++) { awardlist.Add(int.Parse(awardItemData[i][j].ToString())); } } } id = itemArray[i][0], count = itemArray[i][1], }); } JsonData awardMoneyData = JsonMapper.ToObject(hostConfig.Money); if (awardMoneyData.IsArray) var moneyArray = JsonMapper.ToObject<int[][]>(config.Money); for (int i = 0; i < moneyArray.Length; i++) { for (int i = 0; i < awardMoneyData.Count; i++) findHostMoneys.Add(new FindHostMoney() { List<int> awardlist = new List<int>(); awardMoneyDict.Add(i, awardlist); if (awardMoneyData[i].IsArray) { for (int j = 0; j < awardMoneyData[i].Count; j++) { awardlist.Add(int.Parse(awardMoneyData[i][j].ToString())); } } } moneyType = moneyArray[i][0], count = moneyArray[i][1], }); } JsonData adviceData = JsonMapper.ToObject(hostConfig.AdviceIds); foreach(var job in adviceData.Keys) var recommandJson = JsonMapper.ToObject(config.AdviceIds); foreach (var jobKey in recommandJson.Keys) { List<int> idlist = new List<int>(); adviceItemIdDict.Add(int.Parse(job),idlist); if(adviceData[job].IsArray) var items = new List<int>(); findRecommandItems.Add(int.Parse(jobKey), items); var array = LitJson.JsonMapper.ToObject<int[]>(recommandJson[jobKey].ToJson()); for (int i = 0; i < array.Length; i++) { for(int i = 0; i < adviceData[job].Count; i++) { idlist.Add(int.Parse(adviceData[job][i].ToString())); } items.Add(array[i]); } } } } public struct FindHostEquip { public int level; public int place; public int itemColor; public bool isSuit; } public struct FindHostMoney { public int moneyType; public int count; } } System/TreasureFindHost/TreasureFindHostWin.cs
@@ -313,8 +313,7 @@ } else { int progress = 0; if (hostModel.IsReachCondition(info, out progress)) if (hostModel.IsReachCondition(info)) { return true; } @@ -333,8 +332,7 @@ } else { int progress = 0; if (hostModel.IsReachCondition(info, out progress)) if (hostModel.IsReachCondition(info)) { return false; } @@ -348,7 +346,7 @@ private void RefreshConditionCell(ScrollerDataType type, CellView cell) { ReciveConditionCell conditionCell = cell.GetComponent<ReciveConditionCell>(); conditionCell.SetModel(cell.index); conditionCell.Display(cell.index); } } System/YinJi.meta
New file @@ -0,0 +1,9 @@ fileFormatVersion: 2 guid: 80212c8f087439f4a8bd063acaf6d098 folderAsset: yes timeCreated: 1556337107 licenseType: Pro DefaultImporter: userData: assetBundleName: assetBundleVariant: System/YinJi/YinJiModel.cs
New file @@ -0,0 +1,39 @@ //-------------------------------------------------------- // [Author]: 第二世界 // [ Date ]: Saturday, April 27, 2019 //-------------------------------------------------------- using UnityEngine; using System.Collections; using UnityEngine.UI; namespace Snxxz.UI { public class YinJiModel : Model, IBeforePlayerDataInitialize { public float yinjiEndTime { get; private set; } public override void Init() { } public override void UnInit() { } public void OnBeforePlayerDataInitialize() { yinjiEndTime = 0f; } public void BeginFadeAway() { yinjiEndTime = Time.time + PlayerDatas.Instance.baseData.yinjiTime * 0.001f; } } } System/YinJi/YinJiModel.cs.metacopy from Lua/Gen/SnxxzUITreasureFindHostModelWrap.cs.meta copy to System/YinJi/YinJiModel.cs.meta
File was copied from Lua/Gen/SnxxzUITreasureFindHostModelWrap.cs.meta @@ -1,6 +1,6 @@ fileFormatVersion: 2 guid: 46f7e1d408789ee41a746a47b78d9480 timeCreated: 1550120577 guid: 1032dcc4efb61bf4ea34d11cfe05d62b timeCreated: 1556337085 licenseType: Pro MonoImporter: serializedVersion: 2 Utility/EnumHelper.cs
@@ -568,6 +568,8 @@ CDBPlayerRefresh_SuperHitRateReduce = 210,//暴击抗性 CDBPlayerRefresh_LuckyHitReduce = 211,//会心一击伤害固定值减免 CDBPlayerRefresh_FinalHurtReducePer = 212,//最终伤害百分比减少 CDBPlayerRefresh_YinjiTime=213,//印记持续时间,单位毫秒 CDBPlayerRefresh_YinjiCount = 214,//印记持续时间,单位毫秒 }; /** 背包类型码定义 */