Core/GameEngine/DataToCtl/PackageRegedit.cs
@@ -168,6 +168,7 @@ Register(typeof(HA317_tagMCAllEquipAttrActiveInfo), typeof(DTCA317_tagMCAllEquipAttrActiveInfo)); //得到激活全身星级和全身强化的信息 Register(typeof(HA321_tagMCPrayElixirResult), typeof(DTCA321_tagMCPrayElixirResult)); //祈福丹药结果 Register(typeof(HA921_tagUpdatePlayerNameResult), typeof(DTCA921_tagUpdatePlayerNameResult)); //玩家改名 #region 背包 Register(typeof(H0724_tagRolePackCanUseCount), typeof(DTC0724_tagRolePackCanUseCount)); Register(typeof(H0704_tagRolePackRefresh), typeof(DTC0704_tagRolePackRefresh)); @@ -372,6 +373,7 @@ Register(typeof(HAA13_tagMCFlashGiftbagPlayerInfo), typeof(DTCAA13_tagMCFlashGiftbagPlayerInfo)); Register(typeof(HAA17_tagMCFlashSaleInfo), typeof(DTCAA17_tagMCFlashSaleInfo)); Register(typeof(HAA18_tagMCFlashSaleAppointmentInfo), typeof(DTCAA18_tagMCFlashSaleAppointmentInfo)); Register(typeof(HA906_tagGCStoreServerBuyCntInfo), typeof(DTCA906_tagGCStoreServerBuyCntInfo)); #region 仙界盛典 Register(typeof(HAC09_tagGCFairyCeremonyInfo), typeof(DTCAC09_tagGCFairyCeremonyInfo)); Core/NetworkPackage/DTCFile/ServerPack/HA9_Function/DTCA906_tagGCStoreServerBuyCntInfo.cs
New file @@ -0,0 +1,20 @@ using UnityEngine; using System.Collections; using Snxxz.UI; // A9 06 商城全服购买次数通知 #tagGCStoreServerBuyCntInfo public class DTCA906_tagGCStoreServerBuyCntInfo : DtcBasic { FlashRushToBuyModel rushToBuyModel { get { return ModelCenter.Instance.GetModel<FlashRushToBuyModel>(); } } public override void Done(GameNetPackBasic vNetPack) { base.Done(vNetPack); HA906_tagGCStoreServerBuyCntInfo vNetData = vNetPack as HA906_tagGCStoreServerBuyCntInfo; rushToBuyModel.UpdateFullSeverBuyInfo(vNetData); } } Core/NetworkPackage/DTCFile/ServerPack/HA9_Function/DTCA906_tagGCStoreServerBuyCntInfo.cs.meta
New file @@ -0,0 +1,12 @@ fileFormatVersion: 2 guid: bb4b404757262884e86c5225b5421efa timeCreated: 1539759234 licenseType: Pro MonoImporter: serializedVersion: 2 defaultReferences: [] executionOrder: 0 icon: {instanceID: 0} userData: assetBundleName: assetBundleVariant: Core/NetworkPackage/ServerPack/HA9_Function/HA906_tagGCStoreServerBuyCntInfo.cs
New file @@ -0,0 +1,29 @@ using UnityEngine; using System.Collections; // A9 06 商城全服购买次数通知 #tagGCStoreServerBuyCntInfo public class HA906_tagGCStoreServerBuyCntInfo : GameNetPackBasic { public ushort Count; //数量 public tagGCStoreServerBuyCnt[] InfoList; //次数信息 public HA906_tagGCStoreServerBuyCntInfo () { _cmd = (ushort)0xA906; } public override void ReadFromBytes (byte[] vBytes) { TransBytes (out Count, vBytes, NetDataType.WORD); InfoList = new tagGCStoreServerBuyCnt[Count]; for (int i = 0; i < Count; i ++) { InfoList[i] = new tagGCStoreServerBuyCnt(); TransBytes (out InfoList[i].GoodsID, vBytes, NetDataType.DWORD); TransBytes (out InfoList[i].BuyCnt, vBytes, NetDataType.DWORD); } } public struct tagGCStoreServerBuyCnt { public uint GoodsID; //商品标识 public uint BuyCnt; //购买次数 } } Core/NetworkPackage/ServerPack/HA9_Function/HA906_tagGCStoreServerBuyCntInfo.cs.meta
New file @@ -0,0 +1,12 @@ fileFormatVersion: 2 guid: 01aef2eb03c4a7941bb9a6ccafaa216b timeCreated: 1539759233 licenseType: Pro MonoImporter: serializedVersion: 2 defaultReferences: [] executionOrder: 0 icon: {instanceID: 0} userData: assetBundleName: assetBundleVariant: System/OpenServerActivity/FlashRushToBuyCoolDown.cs
@@ -48,7 +48,7 @@ int split = (3600 - seconds)/30 % 2; if(split == 0) { timeText.text = Language.Get("FlashRushToBuy106", TimeUtility.SecondsToHMS(seconds)); timeText.text = Language.Get("FlashRushToBuy106", TimeUtility.SecondsToMS(seconds)); } else { System/OpenServerActivity/FlashRushToBuyModel.cs
@@ -21,7 +21,7 @@ public void OnBeforePlayerDataInitialize() { fullSeverBuyInfoDict.Clear(); } public void OnPlayerLoginOk() @@ -44,7 +44,7 @@ get { var operation = GetOperationFlashRushToBuy(); if(operation != null) if (operation != null) { return operation.SatisfyOpenCondition(); } @@ -173,10 +173,11 @@ { if (saleItems[k].shopGuid == saleItemInfo.GoodsMark) { if(saleItems[k].isAppointment != saleItemInfo.State) { saleItems[k].isAppointment = saleItemInfo.State; if(UpdateAppointmentEvent != null) if(UpdateAppointmentEvent != null && appointmentInfo.IsAll != 1) { UpdateAppointmentEvent((int)saleItemInfo.GoodsMark); } @@ -194,13 +195,33 @@ } } /// <summary> /// Value1 商品ID Value2 全服购买次数 /// </summary> /// <returns></returns> public List<GameRecInfo> GetFullServerInfo() public event Action<int>UpdateFullSeverBuyEvent; private Dictionary<int, int> fullSeverBuyInfoDict = new Dictionary<int, int>(); public void UpdateFullSeverBuyInfo(HA906_tagGCStoreServerBuyCntInfo buyCntInfo) { return battleModel.GetBatterInfoListByType(8); for(int i = 0; i < buyCntInfo.Count; i++) { var info = buyCntInfo.InfoList[i]; if(!fullSeverBuyInfoDict.ContainsKey((int)info.GoodsID)) { fullSeverBuyInfoDict.Add((int)info.GoodsID,(int)info.BuyCnt); } else { fullSeverBuyInfoDict[(int)info.GoodsID] = (int)info.BuyCnt; } if (UpdateFullSeverBuyEvent != null) { UpdateFullSeverBuyEvent((int)info.GoodsID); } } } public int GetFullServerBuyCntById(int goodsId) { int buyCnt = 0; fullSeverBuyInfoDict.TryGetValue(goodsId,out buyCnt); return buyCnt; } /// <summary> System/OpenServerActivity/FlashRushToBuyNotify.cs
@@ -3,7 +3,6 @@ public class FlashRushToBuyNotify : OpenServerActivityNotifyBase { public FlashRushToBuyModel rushToBuyModel { get { return ModelCenter.Instance.GetModel<FlashRushToBuyModel>(); } } public const string iconKey = "TB_BGL_2"; private void OnEnable() { Display(); @@ -18,7 +17,6 @@ { base.Display(); titleText.text = "限时抢购"; activityIcon.SetSprite(iconKey); } protected override void ClickGotoBtn() System/OpenServerActivity/FlashRushToBuyWin.cs
@@ -36,6 +36,7 @@ OperationTimeHepler.Instance.operationTimeUpdateEvent += OperationTimeUpdateEvent; rushToBuyModel.UpdateSelectSaleTimeEvent += UpdateSelectSaleTime; rushToBuyModel.UpdatePresentFlashShopCloseEvent += UpdatePresentFlashShopClose; storeModel.RefreshBuyShopLimitEvent += RefreshBuyShopLimitEvent; SetDisplayModel(); Display(); } @@ -53,6 +54,8 @@ rushToBuyModel.UpdateSelectSaleTimeEvent -= UpdateSelectSaleTime; OperationTimeHepler.Instance.operationStartEvent -= OperationStartEvent; OperationTimeHepler.Instance.operationTimeUpdateEvent -= OperationTimeUpdateEvent; storeModel.RefreshBuyShopLimitEvent -= RefreshBuyShopLimitEvent; saleItemsContent.anchoredPosition3D = startPos; rushToBuyModel.ResetFlashShop(); } @@ -76,17 +79,29 @@ if (rushToBuyModel.presentFlashShop == null|| operation == null) return; opreationTimeText.text = StringUtility.Contact(Language.Get("ExpActivity_Text1"),UIHelper.GetTextColorByItemColor(TextColType.Green, operation.ToDisplayTime())); UpdateMoneyInfo(); activityOpenObj.SetActive(true); activityCloseObj.SetActive(false); CreateOperationTimes(); } private void RefreshBuyShopLimitEvent() { UpdateMoneyInfo(); } private void UpdateMoneyInfo() { if (rushToBuyModel.presentFlashShop == null || operation == null) return; if (rushToBuyModel.presentFlashShop.items.Length > 0) { var moneyType = rushToBuyModel.presentFlashShop.items[0].moneyType; moneyIcon.SetIconWithMoneyType(moneyType); moneyNumText.text = UIHelper.GetMoneyCnt(moneyType).ToString(); } activityOpenObj.SetActive(true); activityCloseObj.SetActive(false); CreateOperationTimes(); } private void UpdateSelectSaleTime() { System/OpenServerActivity/FlashSaleItemCell.cs
@@ -23,7 +23,6 @@ FlashRushToBuyModel rushToBuyModel { get { return ModelCenter.Instance.GetModel<FlashRushToBuyModel>(); } } StoreModel storeModel { get { return ModelCenter.Instance.GetModel<StoreModel>(); } } HeavenBattleModel battleModel { get { return ModelCenter.Instance.GetModel<HeavenBattleModel>(); } } ItemTipsModel tipsModel { get { return ModelCenter.Instance.GetModel<ItemTipsModel>(); } } OperationFlashRushToBuy.FlashSaleItem saleItem; @@ -32,7 +31,7 @@ int code = 0; private void OnEnable() { battleModel.RefreshGameRecInfoAct += UpdateFullServerBuy; rushToBuyModel.UpdateFullSeverBuyEvent += UpdateFullServerBuy; storeModel.RefreshBuyShopLimitEvent += RefreshBuyShopLimitEvent; rushToBuyModel.UpdateAllAppointmentEvent += UpdateAllAppointmentInfo; rushToBuyModel.UpdateAppointmentEvent += UpdateAppointmentInfo; @@ -42,7 +41,7 @@ private void OnDisable() { storeModel.RefreshBuyShopLimitEvent -= RefreshBuyShopLimitEvent; battleModel.RefreshGameRecInfoAct -= UpdateFullServerBuy; rushToBuyModel.UpdateFullSeverBuyEvent -= UpdateFullServerBuy; rushToBuyModel.UpdateAllAppointmentEvent -= UpdateAllAppointmentInfo; rushToBuyModel.UpdateAppointmentEvent -= UpdateAppointmentInfo; KnapsackTimeCDMgr.Instance.RefreshNormalCDAct -= RefreshCD; @@ -75,9 +74,9 @@ UpdateSaleItemSellState(); } private void UpdateFullServerBuy(int type) private void UpdateFullServerBuy(int shopId) { if (type != RefreshFullServerBuyType) return; if (saleItem == null || saleItem.shopId != shopId) return; UpdateSaleItemSellState(); } @@ -163,7 +162,7 @@ } else { MessageWin.Inst.ShowFixedTip("系统繁忙"); } } @@ -202,23 +201,10 @@ fullRemainNum = 0; var buyInfo = storeModel.GetBuyShopLimit((uint)saleItem.shopId); var buyCount = 0; var fullServerInfolist = rushToBuyModel.GetFullServerInfo(); if(buyState != -1) var buyCount = 0; if (buyState != -1) { fullRemainNum = saleItem.fullServerLimitNum; if (fullServerInfolist != null) { for(int i = 0; i < fullServerInfolist.Count; i++) { var fullServerInfo = fullServerInfolist[i]; if (fullServerInfo.Value1 == saleItem.shopId) { fullRemainNum = saleItem.fullServerLimitNum - fullServerInfo.Value2; break; } } } fullRemainNum = saleItem.fullServerLimitNum - rushToBuyModel.GetFullServerBuyCntById(saleItem.shopId); if (buyInfo != null) { buyCount = buyInfo.BuyCnt; System/OpenServerActivity/OpenServerActivityNotifyBase.cs
@@ -6,7 +6,6 @@ public class OpenServerActivityNotifyBase : MonoBehaviour { [SerializeField] protected Text titleText; [SerializeField] protected Image activityIcon; [SerializeField] protected Button gotoBtn; [SerializeField] protected Button closeBtn; System/OpenServerActivity/OperationFlashRushToBuy.cs
@@ -89,9 +89,12 @@ public override bool SatisfyOpenCondition() { if(PlayerDatas.Instance.baseData.LV >= limitLv && InDay(TimeUtility.ServerNow)) if(PlayerDatas.Instance.baseData.LV >= limitLv) { return true; if(InAdvanceTime(TimeUtility.ServerNow) || InTime(TimeUtility.ServerNow)) { return true; } } return false; } System/Rune/RuneModel.cs
@@ -116,12 +116,6 @@ var _result = Equation.Instance.Eval<float>(runeExpFormula); runeExpResultDict.Add(i + 1, _result); } doublePropertyRunes = new List<int>(); var _cfgs = Config.Instance.GetAllValues<RuneComposeConfig>(); foreach (var _cfg in _cfgs) { doublePropertyRunes.Add(_cfg.TagItemID); } config = Config.Instance.Get<FuncConfigConfig>("RuneDoubleInlayCnt"); doublePropRuneInlayDict = ConfigParse.GetDic<int, int>(config.Numerical1); @@ -227,7 +221,6 @@ return Mathf.RoundToInt(runeValue); } private Dictionary<int, float> runeExpResultDict = new Dictionary<int, float>(); public List<int> doublePropertyRunes { get; private set; } public int GetRuneNeedExp(int id, int level) { float _levelUpExp = 0; @@ -914,103 +907,59 @@ public bool CanEquipBetterRune(int _hole) { var _runeHole = GetHoleRune(_hole); if (_runeHole == null) foreach (var rune in runePackData.Values) { return false; } var _runeCfg = Config.Instance.Get<RuneConfig>(_runeHole.id); var _itemCfg = Config.Instance.Get<ItemConfig>(_runeHole.id); var _propertyType = _runeCfg.AttrType[0]; if (_runeCfg == null) { return false; } foreach (var _rune in runePackData.Values) { if (_rune.IsRuneCream) if (IsBetterRune(rune, _hole)) { continue; } var _runeBetterCfg = Config.Instance.Get<RuneConfig>(_rune.id); if (_runeBetterCfg == null) { continue; } bool _same = false; for (int i = 0; i < _runeBetterCfg.AttrType.Length; i++) { if (_runeBetterCfg.AttrType[i] == _propertyType) { _same = true; break; } } if (!_same) { continue; } var _itemBetterCfg = Config.Instance.Get<ItemConfig>(_rune.id); if (_itemBetterCfg.ItemColor > _itemCfg.ItemColor || (_itemBetterCfg.ItemColor == _itemCfg.ItemColor && _runeCfg.AttrType.Length == 1 && _runeBetterCfg.AttrType.Length == 2)) { if (runeComposeModel.m_RuneBothPropertys.Contains(_rune.id) && GetDoublePropLimitCount() <= GetCurrentDoublePropCount() && !runeComposeModel.m_RuneBothPropertys.Contains(_runeHole.id)) { return false; } return true; } } return false; } public bool IsBetterRune(RuneData _data, int _hole) public bool IsBetterRune(RuneData rune, int _hole) { var _runeHole = GetHoleRune(_hole); if (_runeHole == null) if (rune.IsRuneCream) { return false; } var _runeCfg = Config.Instance.Get<RuneConfig>(_runeHole.id); var _itemCfg = Config.Instance.Get<ItemConfig>(_runeHole.id); var _propertyType = _runeCfg.AttrType[0]; if (_runeCfg == null) var runeHole = GetHoleRune(_hole); if (runeHole == null) { return false; } if (_data.IsRuneCream) var runeHoleConfig = Config.Instance.Get<RuneConfig>(runeHole.id); var itemHoleConfig = Config.Instance.Get<ItemConfig>(runeHole.id); var propertyType = runeHoleConfig.AttrType[0]; if (runeHoleConfig == null) { return false; } var _runeBetterCfg = Config.Instance.Get<RuneConfig>(_data.id); bool _same = false; for (int i = 0; i < _runeBetterCfg.AttrType.Length; i++) var runeConfig = Config.Instance.Get<RuneConfig>(rune.id); bool same = false; for (int i = 0; i < runeConfig.AttrType.Length; i++) { if (_runeBetterCfg.AttrType[i] == _propertyType) if (runeConfig.AttrType[i] == propertyType) { _same = true; same = true; break; } } if (!_same) if (!same) { return false; } var _itemBetterCfg = Config.Instance.Get<ItemConfig>(_data.id); if (_itemBetterCfg.ItemColor > _itemCfg.ItemColor || (_itemBetterCfg.ItemColor == _itemCfg.ItemColor && _runeCfg.AttrType.Length == 1 && _runeBetterCfg.AttrType.Length == 2)) bool isDoubleRuneHole = runeComposeModel.m_RuneBothPropertys.Contains(runeHole.id); bool isDoubleRune = runeComposeModel.m_RuneBothPropertys.Contains(rune.id); if (isDoubleRuneHole != isDoubleRune) { if (runeComposeModel.m_RuneBothPropertys.Contains(_data.id) && GetDoublePropLimitCount() <= GetCurrentDoublePropCount() && !runeComposeModel.m_RuneBothPropertys.Contains(_runeHole.id)) { return false; } return true; return isDoubleRune && GetCurrentDoublePropCount() < GetDoublePropLimitCount(); } return false; var itemConfig = Config.Instance.Get<ItemConfig>(rune.id); return itemConfig.ItemColor > itemHoleConfig.ItemColor; } public bool CanEquipHoleRune(int id, int _color, out int _hole) System/Rune/RuneMosaicWin.cs
@@ -503,6 +503,8 @@ RuneModel m_Model; RuneModel model { get { return m_Model ?? (m_Model = ModelCenter.Instance.GetModel<RuneModel>()); } } RuneComposeModel runeComposeModel { get { return ModelCenter.Instance.GetModel<RuneComposeModel>(); } } public RectTransform Container { get @@ -525,7 +527,7 @@ m_RuneNameLvTxt.color = UIHelper.GetUIColor(_itemCfg.ItemColor); } m_RuneNameLvTxt.text = Language.Get("Z1024", _lv); if (_runeId != 0 && model.doublePropertyRunes.Contains(_runeId)) if (_runeId != 0 && runeComposeModel.m_RuneBothPropertys.Contains(_runeId)) { if (!m_Effect.IsPlaying) {