Lua/Gen/SnxxzUIItemLogicUtilityWrap.cs
@@ -907,25 +907,11 @@ if(gen_param_count == 4&& (LuaAPI.lua_isnil(L, 2) || LuaAPI.lua_type(L, 2) == LuaTypes.LUA_TSTRING)&& LuaTypes.LUA_TNUMBER == LuaAPI.lua_type(L, 3)&& translator.Assignable<System.Collections.Generic.Dictionary<int, System.Collections.Generic.List<int>>>(L, 4)) { string _guid = LuaAPI.lua_tostring(L, 2); int _itemId = LuaAPI.xlua_tointeger(L, 3); System.Collections.Generic.Dictionary<int, System.Collections.Generic.List<int>> _useDataDict = (System.Collections.Generic.Dictionary<int, System.Collections.Generic.List<int>>)translator.GetObject(L, 4, typeof(System.Collections.Generic.Dictionary<int, System.Collections.Generic.List<int>>)); bool gen_ret = gen_to_be_invoked.IsOverdue( _guid, _itemId, _useDataDict ); LuaAPI.lua_pushboolean(L, gen_ret); return 1; } if(gen_param_count == 3&& (LuaAPI.lua_isnil(L, 2) || LuaAPI.lua_type(L, 2) == LuaTypes.LUA_TSTRING)&& LuaTypes.LUA_TNUMBER == LuaAPI.lua_type(L, 3)) { string _guid = LuaAPI.lua_tostring(L, 2); int _itemId = LuaAPI.xlua_tointeger(L, 3); bool gen_ret = gen_to_be_invoked.IsOverdue( _guid, _itemId ); LuaAPI.lua_pushboolean(L, gen_ret); return 1; System/Achievement/AchievementModel.cs
@@ -478,14 +478,12 @@ var allItems = itemPackage.GetAllItems(); var guid = string.Empty; var equips = new List<string>(); var score = 0; var job = PlayerDatas.Instance.baseData.Job; foreach (var item in allItems.Values) { if (_places.Contains(item.config.EquipPlace)) { if (!ItemLogicUtility.Instance.IsOverdue(item.guid, item.itemId) if (!ItemLogicUtility.Instance.IsOverdue(item.guid) && (ItemLogicUtility.Instance.IsJobCompatibleItem( item.itemId)) && item.score > score) { guid = item.guid; @@ -502,14 +500,11 @@ var allItems = itemPackage.GetAllItems(); var guid = string.Empty; var equips = new List<string>(); var score = 0; var job = PlayerDatas.Instance.baseData.Job; var equipPackage = playerPack.GetSinglePack(PackType.Equip); foreach (var item in allItems.Values) { var overdue = ItemLogicUtility.Instance.IsOverdue(item.guid, item.itemId, item.useDataDict); var overdue = ItemLogicUtility.Instance.IsOverdue(item.guid); if (!overdue && _places.Contains(item.config.EquipPlace) && ItemLogicUtility.Instance.IsJobCompatibleItem(item.itemId)) { var equipedItem = equipPackage.GetItemByIndex(item.config.EquipPlace); @@ -530,21 +525,14 @@ var allItems = itemPackage.GetAllItems(); var guid = string.Empty; var equips = new List<string>(); var score = 0; var job = PlayerDatas.Instance.baseData.Job; var equipPackage = playerPack.GetSinglePack(PackType.Equip); foreach (var item in allItems.Values) { var config = ItemConfig.Get(item.itemId); if (config.EquipPlace > 10) { continue; } var equipedItem = equipPackage.GetItemByIndex(item.config.EquipPlace); var equipdItemScore = equipedItem == null ? 0 : equipedItem.score; var overdue = ItemLogicUtility.Instance.IsOverdue(item.guid, item.itemId, item.useDataDict); var overdue = ItemLogicUtility.Instance.IsOverdue(item.guid); if (!overdue && (ItemLogicUtility.Instance.IsJobCompatibleItem(item.itemId)) && item.score > equipdItemScore && item.score > score) { System/Auction/AuctionShelfWin.cs
@@ -16,11 +16,18 @@ { [SerializeField] ItemCell m_ItemCell; [SerializeField] Text m_ItemName; [SerializeField] RectTransform m_UnOverdueContainer; [SerializeField] Text m_BasePriceText; [SerializeField] Text m_BuyoutPriceText; [SerializeField] Text m_BuyoutPriceText; [SerializeField] RectTransform m_OverdueContainer; [SerializeField] Button m_CloseBtn; [SerializeField] Button m_UseBtn; [SerializeField] Button m_Auction; [SerializeField] Button m_Overdue; AuctionHelpModel auctionHelpModel { get { return ModelCenter.Instance.GetModel<AuctionHelpModel>(); } } #region Built-in protected override void BindController() @@ -29,14 +36,15 @@ protected override void AddListeners() { m_CloseBtn.AddListener(() => { CloseImmediately(); }); m_UseBtn.AddListener(OnClickUseBtn); m_Auction.AddListener(OnClickAuction); m_CloseBtn.SetListener(() => { CloseImmediately(); }); m_UseBtn.SetListener(OnClickUseBtn); m_Auction.SetListener(OnClickAuction); m_Overdue.SetListener(OnClickOverdueItem); } protected override void OnPreOpen() { GetItemID(); DisplayItem(); } protected override void OnAfterOpen() @@ -55,22 +63,45 @@ CloseImmediately(); ItemOperateUtility.Instance.UseItem(auctionHelpModel.ItemModel.guid); } private void OnClickAuction() { CloseImmediately(); AuctionInquiry.Instance.SendSellAuctionItem(auctionHelpModel.ItemModel.itemInfo.index); } private void GetItemID( ) private void OnClickOverdueItem() { if (auctionHelpModel.ItemModel == null) { return; } } private void DisplayItem() { if (auctionHelpModel.ItemModel == null) { return; } var config = AuctionItemConfig.Get(auctionHelpModel.ItemModel.itemId); ItemCellModel cellModel = new ItemCellModel(auctionHelpModel.ItemModel.itemId, true, (ulong)1); var cellModel = new ItemCellModel(auctionHelpModel.ItemModel.itemId, true, (ulong)1); m_ItemCell.Init(cellModel); m_ItemName.text = auctionHelpModel.ItemModel.config.ItemName; if (config == null) { return; } m_BasePriceText.text = config.BasePrice.ToString(); m_BuyoutPriceText.text = config.BuyoutPrice.ToString(); var isOverdue = ItemLogicUtility.Instance.IsOverdue(auctionHelpModel.ItemModel.guid); m_UnOverdueContainer.gameObject.SetActive(!isOverdue); m_OverdueContainer.gameObject.SetActive(isOverdue); m_Auction.gameObject.SetActive(!isOverdue); m_Overdue.gameObject.SetActive(isOverdue); if (!isOverdue) { m_BasePriceText.text = config.BasePrice.ToString(); m_BuyoutPriceText.text = config.BuyoutPrice.ToString(); } } #endregion } System/Compose/New/SelectEquipModel.cs
@@ -62,7 +62,7 @@ switch ((RoleEquipType)itemModel.config.EquipPlace) { case RoleEquipType.Guard1: bool isOverdue = ItemLogicUtility.Instance.IsOverdue(itemModel.guid, itemModel.itemId, itemModel.useDataDict); bool isOverdue = ItemLogicUtility.Instance.IsOverdue(itemModel.guid); if (isOverdue) { continue; @@ -106,7 +106,7 @@ switch ((RoleEquipType)itemModel.config.EquipPlace) { case RoleEquipType.Guard1: bool isOverdue = ItemLogicUtility.Instance.IsOverdue(itemModel.guid, itemModel.itemId, itemModel.useDataDict); bool isOverdue = ItemLogicUtility.Instance.IsOverdue(itemModel.guid); if (isOverdue) { continue; System/Dungeon/TrialDungeonModel.cs
@@ -324,7 +324,7 @@ { if (itemModel.config.EquipPlace == config.EquipPlace && ItemLogicUtility.Instance.IsJobCompatibleItem(itemModel.itemId) && !ItemLogicUtility.Instance.IsOverdue(itemModel.guid, itemModel.itemId, itemModel.useDataDict)) && !ItemLogicUtility.Instance.IsOverdue(itemModel.guid)) { var compare = EquipCompare(itemModel, config); if (compare == 0) System/Guard/GuardModel.cs
@@ -113,8 +113,7 @@ { for (int k = 0; k < list.Count; k++) { bool isOverdue = ItemLogicUtility.Instance.IsOverdue(list[k].guid, list[k].itemId, list[k].useDataDict); bool isOverdue = ItemLogicUtility.Instance.IsOverdue(list[k].guid); if (!isOverdue) { System/ItemTip/TipAuctionTipWidget.cs
@@ -17,7 +17,14 @@ public void Display(DateTime overDueTime) { m_OverdueTime.text = string.Format("过期时间:{0}", overDueTime.ToString("yyyy年MM月dd日hh时mm分")); if (overDueTime > DateTime.Now) { m_OverdueTime.text = string.Format("过期时间:{0}", overDueTime.ToString("yyyy年MM月dd日hh时mm分")); } else { m_OverdueTime.text = "已过期"; } } } System/ItemTip/TipBaseInfoWidget.cs
@@ -11,7 +11,7 @@ public class TipBaseInfoWidget : MonoBehaviour { [SerializeField] Image m_Label; [SerializeField] ImageEx m_Label; [SerializeField] Text m_ItemName; [SerializeField] ItemBehaviour m_Item; [SerializeField] Text m_ScoreOrType; @@ -27,12 +27,14 @@ { m_Label.gameObject.SetActive(true); m_Label.SetSprite("Equiped_a"); m_Label.gray = false; m_Star.text = baseInfo.star >= 1 ? string.Format("{0}星", baseInfo.star) : ""; } else if (baseInfo.isAuction) { m_Label.gameObject.SetActive(true); m_Label.SetSprite("Item_Auction_2"); m_Label.gray = baseInfo.auctionSurplusTime <= 0; m_Star.text = ""; } else @@ -76,10 +78,17 @@ m_RealmContainer.gameObject.SetActive(false); } if (baseInfo.auctionSurplusTime > 0) if (baseInfo.isAuction) { m_SurplusTimeContainer.gameObject.SetActive(true); m_SurplusTime.text = TimeUtility.SecondsToHMSCHSRetain(baseInfo.auctionSurplusTime); if (baseInfo.auctionSurplusTime > 0) { m_SurplusTime.text = TimeUtility.SecondsToHMSCHSRetain(baseInfo.auctionSurplusTime); } else { m_SurplusTime.text = "已过期"; } } else { System/KnapSack/Logic/ItemLogicUtility.cs
@@ -21,7 +21,7 @@ private Dictionary<int, int> promptUseLimitDict; private Dictionary<int, List<int>> betterEquipExceptDungeonDict; PackModel playerPack { get { return ModelCenter.Instance.GetModel<PackModel>(); } } PackModel packModel { get { return ModelCenter.Instance.GetModel<PackModel>(); } } BuffModel buffDatas { get { return ModelCenter.Instance.GetModel<BuffModel>(); } } MountModel mountDatas { get { return ModelCenter.Instance.GetModel<MountModel>(); } } PetModel petDatas { get { return ModelCenter.Instance.GetModel<PetModel>(); } } @@ -412,7 +412,7 @@ return; } if (IsOverdue(item.guid, item.itemId, item.useDataDict)) if (IsOverdue(item.guid)) { return; } @@ -446,7 +446,7 @@ if (pushItemIds.Contains(item.itemId)) { var itemCnt = playerPack.GetItemCountByID(PackType.Item, item.itemId) - item.count; var itemCnt = packModel.GetItemCountByID(PackType.Item, item.itemId) - item.count; if (itemCnt > 0) { return false; @@ -470,7 +470,7 @@ } ulong canUseCnt = 0; if (playerPack.IsReachUseLimit(item.guid, out canUseCnt)) if (packModel.IsReachUseLimit(item.guid, out canUseCnt)) { return false; } @@ -493,7 +493,7 @@ } } if (playerPack.CheckIsDrugById(item.itemId)) if (packModel.CheckIsDrugById(item.itemId)) { if (item.config.RealmLimit > PlayerDatas.Instance.baseData.realmLevel) { @@ -612,8 +612,8 @@ return false; } var putModel = playerPack.GetItemByIndex(PackType.Equip, (int)RoleEquipType.Wing); var singlePack = playerPack.GetSinglePack(PackType.Item); var putModel = packModel.GetItemByIndex(PackType.Equip, (int)RoleEquipType.Wing); var singlePack = packModel.GetSinglePack(PackType.Item); if (singlePack == null) { return false; @@ -648,7 +648,7 @@ return false; } var itemModels = playerPack.GetItems(PackType.Item, new SinglePack.FilterParams() var itemModels = packModel.GetItems(PackType.Item, new SinglePack.FilterParams() { itemTypes = new List<int>() { (int)ItemType.Equip_Wing } }); @@ -672,12 +672,12 @@ private bool CheckIsExtendGrid(int itemId) { SinglePack singlePack = playerPack.GetSinglePack(PackType.Item); SinglePack singlePack = packModel.GetSinglePack(PackType.Item); if (singlePack == null) return false; int startLockIndex = singlePack.unlockedGridCount - GeneralDefine.initBagGridCount; FuncConfigConfig _tagFuncModel = FuncConfigConfig.Get("OpenBagItem"); int haveCount = playerPack.GetItemCountByID(PackType.Item, itemId); int haveCount = packModel.GetItemCountByID(PackType.Item, itemId); Equation.Instance.Clear(); Equation.Instance.AddKeyValue("index", startLockIndex + 1); int needTool = Equation.Instance.Eval<int>(_tagFuncModel.Numerical2); @@ -801,7 +801,7 @@ public Dictionary<int, ItemModel> CheckBetterEquipByRealm() { RealmBetterDict.Clear(); SinglePack singlePack = playerPack.GetSinglePack(PackType.Item); SinglePack singlePack = packModel.GetSinglePack(PackType.Item); if (singlePack == null) return RealmBetterDict; int realmLv = PlayerDatas.Instance.baseData.realmLevel; @@ -811,7 +811,7 @@ if (model.config.EquipPlace > 0 && model.config.EquipPlace != (int)RoleEquipType.Guard1 && model.config.RealmLimit <= realmLv && !IsOverdue(model.guid, model.itemId, model.useDataDict) && !IsOverdue(model.guid) && IsFightUp(model.itemId, model.score) == 1) { if (!RealmBetterDict.ContainsKey(model.equipPlace)) @@ -834,17 +834,17 @@ public List<ItemModel> GetDruglistByRealm() { RealmDruglist.Clear(); SinglePack singlePack = playerPack.GetSinglePack(PackType.Item); SinglePack singlePack = packModel.GetSinglePack(PackType.Item); if (singlePack == null) return RealmDruglist; int realmLv = PlayerDatas.Instance.baseData.realmLevel; Dictionary<int, ItemModel> pairs = singlePack.GetAllItems(); foreach (var model in pairs.Values) { if (playerPack.CheckIsDrugById(model.itemId)) if (packModel.CheckIsDrugById(model.itemId)) { AttrFruitConfig fruitConfig = AttrFruitConfig.Get(model.itemId); if (!playerPack.IsReachMaxUseDrug(fruitConfig) if (!packModel.IsReachMaxUseDrug(fruitConfig) && model.config.RealmLimit <= realmLv) { RealmDruglist.Add(model); @@ -926,7 +926,7 @@ public void GetOneKeySellModel() { SinglePack singlePack = playerPack.GetSinglePack(PackType.Item); SinglePack singlePack = packModel.GetSinglePack(PackType.Item); if (singlePack == null) return; @@ -965,7 +965,7 @@ int score = 0; for (score = _sellItemScorelist.Count - 1; score > -1; score--) { SinglePack equipPack = playerPack.GetSinglePack(PackType.Equip); SinglePack equipPack = packModel.GetSinglePack(PackType.Equip); ItemModel model = null; if (equipPack != null) { @@ -1134,10 +1134,10 @@ if (KnapSackWin.titleType == KnapsackFuncTitle.bag) { playerPack.isPlayBetterEquipEffect = true; packModel.isPlayBetterEquipEffect = true; } SinglePack singlePack = playerPack.GetSinglePack(type); SinglePack singlePack = packModel.GetSinglePack(type); if (singlePack != null) { var packReset = new C070F_tagCItemPackReset(); @@ -1169,7 +1169,7 @@ } else { int index = playerPack.GetItemByGuid(guid).gridIndex; int index = packModel.GetItemByGuid(guid).gridIndex; lookLineIndex = index / singleRowCount; lookItemGUID = guid; } @@ -1191,9 +1191,9 @@ /// <returns></returns> public string GetHighestScoreEquipByPlace(int equipPlace) { var itemPackage = playerPack.GetSinglePack(PackType.Item); var itemPackage = packModel.GetSinglePack(PackType.Item); var allItems = itemPackage.GetAllItems(); ItemModel putModel = playerPack.GetItemByIndex(PackType.Equip, equipPlace); ItemModel putModel = packModel.GetItemByIndex(PackType.Equip, equipPlace); equipPlace = (equipPlace == 9 || equipPlace == 10) ? 9 : equipPlace; var guid = string.Empty; var score = putModel == null ? 0 : putModel.score; @@ -1201,7 +1201,7 @@ { if (item.config.EquipPlace == equipPlace) { if (!IsOverdue(item.guid, item.itemId, item.useDataDict) if (!IsOverdue(item.guid) && (IsJobCompatibleItem(item.itemId)) && item.score > score) { guid = item.guid; @@ -1358,7 +1358,7 @@ return 0; } var item = playerPack.GetItemByIndex(PackType.Equip, index); var item = packModel.GetItemByIndex(PackType.Equip, index); var equipScore = item != null ? item.score : 0; if (IsJobCompatibleItem(_itemID)) { @@ -1374,53 +1374,25 @@ } #region 物品是否过期 public bool IsOverdue(string guid, int itemId, Dictionary<int, List<int>> useDataDict = null) public bool IsOverdue(string guid) { ItemConfig itemConfig = ItemConfig.Get(itemId); if (itemConfig == null) return false; if (itemConfig.ExpireTime > 0) { ItemCDCool cool = KnapsackTimeCDMgr.Instance.GetItemCoolById(guid); switch ((ItemTimeType)itemConfig.EndureReduceType) { case ItemTimeType.EquipedTime: if (guid != "") { List<int> itemEffectTime = null; if (useDataDict != null) { if (useDataDict.ContainsKey((int)ItemUseDataKey.createTime)) { itemEffectTime = useDataDict[(int)ItemUseDataKey.createTime]; } } if (itemEffectTime != null && itemEffectTime[0] != 0) { if (cool == null || cool.GetRemainTime() <= 0) { return true; } } } break; case ItemTimeType.RealityTime: if (guid != "") { if (cool == null || cool.GetRemainTime() <= 0) { return true; } } break; } var item = packModel.GetItemByGuid(guid); if (item == null) { return false; } return false; if (item.isAuction) { return item.auctionSurplusTime < 0; } else { return item.overdueSurplusTime < 0; } } #endregion public bool IsJobCompatibleItem(int itemId) System/KnapSack/Logic/ItemModel.cs
@@ -37,6 +37,7 @@ public int gridIndex { get { return itemInfo == null ? 0 : itemInfo.index; } } public bool isAuction { get { return itemInfo == null ? false : itemInfo.isAuction == 1; } } public int preItemCount { get; private set; } public int auctionSurplusTime { get { var createTime = GetUseDataFirstValue(50); @@ -49,6 +50,23 @@ { return 0; } } } public int overdueSurplusTime { get { var surplusTime = 0; if (config.ExpireTime > 0) { var createTime = GetUseDataFirstValue((int)ItemUseDataKey.createTime); if (createTime > 0) { var overdueTime = TimeUtility.GetTime((uint)createTime).AddSeconds(GetUseDataFirstValue(48)); surplusTime = (int)(overdueTime).Subtract(TimeUtility.ServerNow).TotalSeconds; } } return surplusTime; } } @@ -80,27 +98,8 @@ var createTime = GetUseDataFirstValue((int)ItemUseDataKey.createTime); if (createTime > 0) { switch ((ItemTimeType)config.EndureReduceType) { case ItemTimeType.EquipedTime: case ItemTimeType.RealityTime: var serverSurplusTime = GetUseDataFirstValue(48); ItemLogicUtility.Instance.SetItemEffectCDTime(info.guid, info.itemId, createTime, serverSurplusTime); break; default: break; } } } ItemTimeUtility.Instance.RemoveAuctionEndTime(guid); if (isAuction) { var createTime = GetUseDataFirstValue(50); if (createTime > 0) { var overdueTime = TimeUtility.GetTime((uint)createTime) + new TimeSpan(GeneralDefine.acutionItemHour * TimeSpan.TicksPerHour); ItemTimeUtility.Instance.AddAuctionEndTime(guid, overdueTime); var serverSurplusTime = GetUseDataFirstValue(48); ItemLogicUtility.Instance.SetItemEffectCDTime(info.guid, info.itemId, createTime, serverSurplusTime); } } System/KnapSack/Logic/ItemOperateUtility.cs
@@ -778,7 +778,7 @@ { if (attrData.itemConfig.EquipPlace > 0 && attrData.itemConfig.EquipPlace <= (int)RoleEquipType.Guard1) { bool isOverdue = ItemLogicUtility.Instance.IsOverdue(attrData.guid, attrData.itemConfig.ID, attrData.useDataDict); bool isOverdue = ItemLogicUtility.Instance.IsOverdue(attrData.guid); bool isLimit = ItemLogicUtility.Instance.IsJobCompatibleItem(attrData.itemId) ? true : false; var putModel = packModel.GetItemByIndex(PackType.Equip, attrData.itemConfig.EquipPlace); System/KnapSack/Logic/ItemOverdueModel.cs
@@ -258,7 +258,7 @@ models = pairs[idlist[i]]; for (int j = 0; j < models.Count; j++) { if (!ItemLogicUtility.Instance.IsOverdue(models[j].guid, models[j].itemId, models[j].useDataDict)) if (!ItemLogicUtility.Instance.IsOverdue(models[j].guid)) { isOverdue = false; break; @@ -321,7 +321,7 @@ models = allGuardDict[type][idlist[i]]; for (int j = 0; j < models.Count; j++) { if (!ItemLogicUtility.Instance.IsOverdue(models[j].guid, models[j].itemId, models[j].useDataDict)) if (!ItemLogicUtility.Instance.IsOverdue(models[j].guid)) { isOverdue = false; break; System/KnapSack/Logic/ItemTipsModel.cs
@@ -504,7 +504,7 @@ { var horseModel = ModelCenter.Instance.GetModel<MountModel>(); var petmodel = ModelCenter.Instance.GetModel<PetModel>(); bool isOverdue = ItemLogicUtility.Instance.IsOverdue(attrData.guid, attrData.itemId, attrData.useDataDict); bool isOverdue = ItemLogicUtility.Instance.IsOverdue(attrData.guid); HorseConfig horseConfig = null; PetInfoConfig petInfo = null; switch (attrData.itemConfig.Type) System/KnapSack/New/BagWin.cs
@@ -290,7 +290,7 @@ { if (ItemLogicUtility.Instance.GetBagSortBetterEquip(itemModel.config.EquipPlace, itemModel.gridIndex) != null) { bool isOverdue = ItemLogicUtility.Instance.IsOverdue(itemModel.guid, itemModel.itemId, itemModel.useDataDict); bool isOverdue = ItemLogicUtility.Instance.IsOverdue(itemModel.guid); if (!isOverdue) { gridCell.uiEffect.Play(); System/KnapSack/New/CommonItemBaisc.cs
@@ -202,7 +202,7 @@ return 0; } if (item != null && ItemLogicUtility.Instance.IsOverdue(guid, itemId, item.useDataDict)) if (item != null && ItemLogicUtility.Instance.IsOverdue(guid)) { return 99; } System/Vip/FirstTimeRechargeModel.cs
@@ -114,8 +114,7 @@ { for (int k = 0; k < list.Count; k++) { bool isOverdue = ItemLogicUtility.Instance.IsOverdue(list[k].guid, list[k].itemId, list[k].useDataDict); bool isOverdue = ItemLogicUtility.Instance.IsOverdue(list[k].guid); if (isOverdue) { IsOver = isOverdue;