Files
Main/Assets/GameAssets/Resources/Lua/Logic/AuctionHouse/AuctionHouseSystem.lua
2025-01-25 04:38:09 +08:00

740 lines
25 KiB
Lua
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

------------------------------------------------
--作者: 杨全福
--日期: 2021-02-23
--文件: AuctionHouseSystem.lua
--模块: AuctionHouseSystem
--描述: 拍卖行系统
------------------------------------------------
local L_AuctionItem = require "Logic.AuctionHouse.AuctionItem"
local L_ItemBase = CS.Thousandto.Code.Logic.ItemBase
local AuctionHouseSystem = {
--所有物品的容器
Items = Dictionary:New(),
--用于查找的缓存列表
FindCacheList = List:New(),
--是否已经载入了配置
IsLoadCareData = false,
--关注的物品列表
CareItemList = {},
--关注的物品匹配值,用于计算是否属于关注的物品
CareItemMatchValues = {},
CareItemCount = 0,
--推送关注间隔时间
CareIntervalTime = 60,
--弹出关注信息的计时器
ShowCareTimer = 0,
--缓存的展示关注界面的物品
ChcheCareItems = List:New(),
ChcheCarePoss = List:New(),
ShowCareFormTimer = 0,
--已经弹出过关注提示的物品
NotShowCareItems = Dictionary:New(),
--是否已经接受过数据
IsFirstResiveData = true,
--是否显示真的物品给玩家购买
IsShowRealItems = true,
FakeItem = nil,
--是否有可上架红点
AuctionRedPoint = false,
--当前自己上架的物品数量
SelfAuctionCount = 0,
--配置的最大上架数量
MaxAuctionCount = 0,
}
--初始化
function AuctionHouseSystem:Initialize()
self.IsLoadCareData = false
local _gCfg = DataConfig.DataGlobal[GlobalName.Auction_ShowCare_IntervalTime]
if _gCfg ~= nil then
--推送间隔时间
self.CareIntervalTime = tonumber(_gCfg.Params)
end
_gCfg = DataConfig.DataGlobal[GlobalName.Trade_maxrecord]
if _gCfg ~= nil then
--最大上架数量
self.MaxAuctionCount = tonumber(_gCfg.Params)
end
end
--反初始化
function AuctionHouseSystem:UnInitialize()
for _, v in pairs(self.Items) do
L_AuctionItem.Free(v, true)
end
self.Items:Clear()
end
--根据战力升序
local function L_SortByPowerUP(left, right)
if left.EquipCfg ~= nil and right.EquipCfg ~= nil then
return left.EquipCfg.Score < right.EquipCfg.Score
else
return right.CfgID < left.CfgID
end
end
--根据战力降序
local function L_SortByPowerDown(left, right)
if left.EquipCfg ~= nil and right.EquipCfg ~= nil then
return right.EquipCfg.Score < left.EquipCfg.Score
else
return right.CfgID < left.CfgID
end
end
--根据剩余时间升序
local function L_SortByTimeUP(left, right)
return left:GetRemainTime() < right:GetRemainTime()
end
--根据剩余时间升序
local function L_SortByTimeDown(left, right)
return right:GetRemainTime() < left:GetRemainTime()
end
--根据当前竞价升序
local function L_SortByCurPriceUP(left, right)
local _lPrice = left.CurPrice
if left.HasMiMa then
_lPrice = 0
end
local _rPrice = right.CurPrice
if right.HasMiMa then
_rPrice = 0
end
return _lPrice < _rPrice
end
--根据当前竞价降序
local function L_SortByCurPriceDown(left, right)
local _lPrice = left.CurPrice
if left.HasMiMa then
_lPrice = 0
end
local _rPrice = right.CurPrice
if right.HasMiMa then
_rPrice = 0
end
return _rPrice < _lPrice
end
--根据最大竞价升序
local function L_SortByMaxPriceUP(left, right)
local _lPrice = left.MaxPrice
if left.HasMiMa then
_lPrice = left.CurPrice
end
local _rPrice = right.MaxPrice
if right.HasMiMa then
_rPrice = right.CurPrice
end
return _lPrice < _rPrice
end
--根据最大竞价降序
local function L_SortByMaxPriceDown(left, right)
local _lPrice = left.MaxPrice
if left.HasMiMa then
_lPrice = left.CurPrice
end
local _rPrice = right.MaxPrice
if right.HasMiMa then
_rPrice = right.CurPrice
end
return _rPrice < _lPrice
end
--关闭字符串模式匹配,用于查找
local function CloseStringMatch(searchName)
searchName = string.gsub(searchName, "%[", "%%[")
searchName = string.gsub(searchName, "%]", "%%]")
return searchName
end
--根据条件获取物品列表,列表类型tyoe:0世界1公会 排序类型sortType0战力1剩余时间2当前价格3最大价格
function AuctionHouseSystem:GetItemList(type, menuID, grade, star, quality, sortType, upSort, searchName)
self.FindCacheList:Clear()
if searchName ~= nil and string.len(searchName) > 0 then
searchName = CloseStringMatch(searchName)
end
if not self.IsShowRealItems then
if self.FakeItem == nil or self.FakeItem:GetRemainTime() <= 0 then
local _itemId = 0
local _lp = GameCenter.GameSceneSystem:GetLocalPlayer()
local _gCfg = DataConfig.DataGlobal[GlobalName.Trade_First_Buy_Item]
if _gCfg ~= nil and _lp ~= nil then
local _occ = _lp.IntOcc
local _occParams = Utils.SplitStrByTableS(_gCfg.Params, {';', '_'})
for i = 1, #_occParams do
if _occParams[i][1] == _occ then
_itemId = _occParams[i][2]
break
end
end
end
if self.FakeItem ~= nil then
L_AuctionItem.Free(self.FakeItem)
end
self.FakeItem = L_AuctionItem.Get()
local msgAuction = {}
msgAuction.item = {}
msgAuction.item.itemId = 0
msgAuction.item.itemModelId = _itemId
msgAuction.item.num = 1
msgAuction.item.gridId = 0
msgAuction.item.isbind = false
msgAuction.item.lostTime = 0
msgAuction.item.cdTime = 0
msgAuction.item.suitId = 0
msgAuction.item.strengLv = 0
msgAuction.isPassword = false
msgAuction.guildId = 0
msgAuction.price = 0
msgAuction.ownId = 0
msgAuction.roleId = 0
msgAuction.id = 0
self.FakeItem:RefreshData(msgAuction)
self.FakeItem:RefreshTempData()
end
if self.FakeItem ~= nil then
self.FindCacheList:Add(self.FakeItem)
end
return self.FindCacheList
end
if type == 1 and not GameCenter.GuildSystem:HasJoinedGuild() then
--没有加入公会获取公会拍卖列表为空
return self.FindCacheList;
end
local _findedCount = 0
local _guildID = 0
if GameCenter.GuildSystem:HasJoinedGuild() then
_guildID = GameCenter.GuildSystem.GuildInfo.guildId
end
local _menuCfg = DataConfig.DataAuctionMenu[menuID]
if _menuCfg ~= nil then
local _partCount = 0
local _partList = {}
local _partParams = Utils.SplitNumber(_menuCfg.EquipPart, '_')
if _partParams ~= nil and #_partParams > 0 then
for i = 1, #_partParams do
_partList[_partParams[i]] = true
_partCount = _partCount + 1
end
end
for _, ahItem in pairs(self.Items) do
if type == 0 and ahItem.OwnerGuild > 0 then
--选择世界拍卖时不展示公会商店的物品
elseif type == 1 and ahItem.OwnerGuild ~= _guildID then
--选择公会拍卖时只展示自身公会的物品
elseif ahItem:GetRemainTime() <= 0 then
--时间小于0的道具不展示
elseif (_menuCfg.EquipOrItem == 0 and ahItem.ItemInst.Type == ItemType.Equip) or
(_menuCfg.EquipOrItem == 1 and (ahItem.ItemInst.Type ~= ItemType.Equip and ahItem.ItemInst.Type ~= ItemType.HolyEquip and ahItem.ItemInst.Type ~= ItemType.UnrealEquip)) or
(_menuCfg.EquipOrItem == 2 and ahItem.ItemInst.Type == ItemType.HolyEquip) or
(_menuCfg.EquipOrItem == 3 and ahItem.ItemInst.Type == ItemType.UnrealEquip) or
_menuCfg.EquipOrItem < 0 then
local _canAddItem = nil
--物品
local _name = nil
if ahItem.ItemCfg ~= nil and (_menuCfg.ItemTradeType < 0 or _menuCfg.ItemTradeType == ahItem.ItemCfg.TradeType) and (quality < 0 or ahItem.ItemCfg.Color >= quality) then
_canAddItem = ahItem
_name = ahItem.ItemCfg.Name
end
--装备
if ahItem.EquipCfg ~= nil and (_menuCfg.EquipOcc < 0 or string.find(ahItem.EquipCfg.Gender, tostring(_menuCfg.EquipOcc)) ~= nil) and
(_partCount <= 0 or _partList[ahItem.EquipCfg.Part]) and
(grade < 0 or ahItem.EquipCfg.Grade >= grade) and
(star < 0 or ahItem.EquipCfg.DiamondNumber >= star) and
(quality < 0 or ahItem.EquipCfg.Quality >= quality) then
_canAddItem = ahItem
_name = ahItem.EquipCfg.Name
end
if _canAddItem ~= nil then
if searchName ~= nil and string.len(searchName) > 0 then
if string.find(_name, searchName) then
self.FindCacheList:Add(_canAddItem)
_findedCount = _findedCount + 1
end
else
self.FindCacheList:Add(_canAddItem)
_findedCount = _findedCount + 1
end
end
end
end
end
if _findedCount > 1 then
local _sortFunc = nil
--进行排序
if sortType == 0 then
if upSort then
_sortFunc = L_SortByPowerUP
else
_sortFunc = L_SortByPowerDown
end
elseif sortType == 1 then
if upSort then
_sortFunc = L_SortByTimeUP
else
_sortFunc = L_SortByTimeDown
end
elseif sortType == 2 then
if upSort then
_sortFunc = L_SortByCurPriceUP
else
_sortFunc = L_SortByCurPriceDown
end
elseif sortType == 3 then
if upSort then
_sortFunc = L_SortByMaxPriceUP
else
_sortFunc = L_SortByMaxPriceDown
end
end
if _sortFunc ~= nil then
self.FindCacheList:Sort(_sortFunc)
end
end
return self.FindCacheList
end
--获取自身拍卖的物品列表
function AuctionHouseSystem:GetSelBuyItemList(sortType, upSort)
self.FindCacheList:Clear()
local _findedCount = 0
for _, ahItem in pairs(self.Items) do
if ahItem.IsSefJion and ahItem:GetRemainTime() > 0 then
self.FindCacheList:Add(ahItem)
_findedCount = _findedCount + 1
end
end
if _findedCount > 1 then
local _sortFunc = nil
--进行排序
if sortType == 0 then
if upSort then
_sortFunc = L_SortByPowerUP
else
_sortFunc = L_SortByPowerDown
end
elseif sortType == 1 then
if upSort then
_sortFunc = L_SortByTimeUP
else
_sortFunc = L_SortByTimeDown
end
elseif sortType == 2 then
if upSort then
_sortFunc = L_SortByCurPriceUP
else
_sortFunc = L_SortByCurPriceDown
end
elseif sortType == 3 then
if upSort then
_sortFunc = L_SortByMaxPriceUP
else
_sortFunc = L_SortByMaxPriceDown
end
end
if _sortFunc ~= nil then
self.FindCacheList:Sort(_sortFunc)
end
end
return self.FindCacheList
end
--获取自己上架的道具
function AuctionHouseSystem:GetSelfSellItems()
local _lpID = GameCenter.GameSceneSystem:GetLocalPlayerID()
self.FindCacheList:Clear()
for _, ahItem in pairs(self.Items) do
if ahItem.OwnerID == _lpID and ahItem:GetRemainTime() > 0 then
self.FindCacheList:Add(ahItem)
end
end
return self.FindCacheList
end
--出售的物品排序
local function L_SoryItemBase(left, right)
local _leftValue = left.CfgID
if left.Type == ItemType.Equip or left.Type == ItemType.HolyEquip then
if left:CheckCanEquip() then
_leftValue = 2
else
_leftValue = 1
end
end
local _rightValue = right.CfgID
if right.Type == ItemType.Equip or right.Type == ItemType.HolyEquip then
if right:CheckCanEquip() then
_rightValue = 2
else
_rightValue = 1
end
end
return _leftValue < _rightValue
end
--获取背包中可以出售的道具
function AuctionHouseSystem:GetCanSellItems(onlyQuick)
self.FindCacheList:Clear()
local _bagItemList = GameCenter.ItemContianerSystem:GetItemListByBind(ContainerType.ITEM_LOCATION_BAG, false)
local _bagCount = _bagItemList.Count
for i = 1, _bagCount do
local _item = _bagItemList[i - 1]
local _itemCfg = DataConfig.DataItem[_item.CfgID]
if _itemCfg ~= nil and _itemCfg.AuctionMaxPrice ~= 0 then
if onlyQuick then
if _itemCfg.AuctionPriceType ~= 1 then
self.FindCacheList:Add(_item)
end
else
self.FindCacheList:Add(_item)
end
end
local _equipCfg = DataConfig.DataEquip[_item.CfgID]
if _equipCfg ~= nil and _equipCfg.AuctionMaxPrice ~= 0 then
if onlyQuick then
if _equipCfg.AuctionPriceType ~= 1 then
self.FindCacheList:Add(_item)
end
else
self.FindCacheList:Add(_item)
end
end
end
self.FindCacheList:Sort(L_SoryItemBase)
return self.FindCacheList
end
--获取圣装中可以出售的道具
function AuctionHouseSystem:GetCanSellHolyEquips()
self.FindCacheList:Clear()
local _list = GameCenter.HolyEquipSystem.BagList
local _count = #_list
for i = 1, _count do
local _holyEquip = _list[i]
local _cfg = DataConfig.DataEquip[_holyEquip.CfgID]
if _cfg ~= nil and not _holyEquip.IsBind and _cfg.AuctionMaxPrice ~= 0 then
self.FindCacheList:Add(_holyEquip)
end
end
self.FindCacheList:Sort(L_SoryItemBase)
return self.FindCacheList
end
--获取幻装中可以出售的道具
function AuctionHouseSystem:GetCanSellUnrealEquips()
self.FindCacheList:Clear()
local _list = GameCenter.UnrealEquipSystem.BagList
local _count = #_list
for i = 1, _count do
local _unrealEquip = _list[i]
local _cfg = DataConfig.DataEquip[_unrealEquip.CfgID]
if _cfg ~= nil and not _unrealEquip.IsBind and _cfg.AuctionMaxPrice ~= 0 then
self.FindCacheList:Add(_unrealEquip)
end
end
self.FindCacheList:Sort(L_SoryItemBase)
return self.FindCacheList
end
--根据id获取单个商品
function AuctionHouseSystem:GetItemByID(id)
local _item = self.Items[id]
if _item ~= nil and _item:GetRemainTime() > 0 then
return _item
end
return nil
end
--增加关注的物品
function AuctionHouseSystem:AddCareItem(itemID, itemOrEquip)
if self.CareItemList[itemID] == nil then
self.CareItemList[itemID] = true
self:SaveCareData()
end
end
--删除关注的物品
function AuctionHouseSystem:RemoveCareItem(itemID)
if self.CareItemList[itemID] ~= nil then
self.CareItemList[itemID] = nil
self:SaveCareData()
end
end
--进入场景
function AuctionHouseSystem:OnEnterScene()
self:LoadCareData()
--进入场景一秒后展示关注
self.ShowCareTimer = 1
self.IsFirstResiveData = true
end
--关注界面关闭
function AuctionHouseSystem:OnCareFormClose()
if #self.ChcheCareItems > 0 then
self.ShowCareFormTimer = 1
end
end
--更新
function AuctionHouseSystem:Update(deltaTime)
if self.IsFirstResiveData or self.SelfAuctionCount > 0 or (self.IsLoadCareData and self.CareItemCount > 0) then
--在有关注数据的情况下才执行请求
if self.ShowCareTimer > 0 then
self.ShowCareTimer = self.ShowCareTimer - deltaTime
if self.ShowCareTimer <= 0 then
self:ReqItemList()
self.IsFirstResiveData = false
self.ShowCareTimer = -1
end
end
end
local _cacheCount = #self.ChcheCareItems
if _cacheCount > 0 then
if self.ShowCareFormTimer > 0 then
self.ShowCareFormTimer = self.ShowCareFormTimer - deltaTime
if self.ShowCareFormTimer <= 0 then
GameCenter.PushFixEvent(UIEventDefine.UIAuctionCareForm_Open, {self.ChcheCareItems[_cacheCount], self.ChcheCarePoss[_cacheCount]})
self.ChcheCareItems:RemoveAt(_cacheCount)
self.ChcheCarePoss:RemoveAt(_cacheCount)
self.ShowCareFormTimer = -1
end
end
end
end
--请求商品列表
function AuctionHouseSystem:ReqItemList()
GameCenter.Network.Send("MSG_Auction.ReqAuctionInfoList", {})
end
--物品列表
function AuctionHouseSystem:ResAuctionInfoList(result)
for _, v in pairs(self.Items) do
L_AuctionItem.Free(v)
end
self.Items:Clear()
local _lpID = GameCenter.GameSceneSystem:GetLocalPlayerID()
local _careItem = nil
self.SelfAuctionCount = 0
local _msgCount = 0
if result.auctionInfoList ~= nil then
_msgCount = #result.auctionInfoList
end
for i = 1, _msgCount do
local _item = L_AuctionItem.Get()
_item:RefreshData(result.auctionInfoList[i])
self.Items:Add(_item.ID, _item)
--自身的物品和已经弹出过的不能关注
if _lpID ~= _item.OwnerID and self.NotShowCareItems[_item.ID] == nil then
if _careItem == nil and self:IsCareItem(_item) then
_careItem = _item
end
end
if _lpID == _item.OwnerID then
self.SelfAuctionCount = self.SelfAuctionCount + 1
end
end
if self.ShowCareTimer <= 0 then
if self.CareItemCount > 0 then
if self.NotShowCareItems:Count() >= 200 then
self.NotShowCareItems:Clear()
end
self.ShowCareTimer = self.CareIntervalTime
self.ChcheCareItems:Clear()
self.ChcheCarePoss:Clear()
if _careItem ~= nil then
self.NotShowCareItems:Add(_careItem.ID, true)
self.ChcheCareItems:Add(_careItem.ItemInst)
if _careItem.OwnerGuild > 0 then
self.ChcheCarePoss:Add(1)
else
self.ChcheCarePoss:Add(0)
end
end
if #self.ChcheCareItems > 0 then
self.ShowCareFormTimer = 1
end
end
end
--检测上架红点
self.AuctionRedPoint = false
if self.SelfAuctionCount < self.MaxAuctionCount then
local _bagItemList = GameCenter.ItemContianerSystem:GetItemListByBind(ContainerType.ITEM_LOCATION_BAG, false)
local _bagCount = _bagItemList.Count
for i = 1, _bagCount do
local _item = _bagItemList[i - 1]
if _item:CanAuction() then
--可以上架
self.AuctionRedPoint = true
break
end
end
end
GameCenter.PushFixEvent(LogicLuaEventDefine.EID_EVENT_AUCTION_UPDATELIST)
GameCenter.PushFixEvent(LogicLuaEventDefine.EID_EVENT_AUCTION_REDPOINT_UPDATED)
end
--上架成功,更新物品
function AuctionHouseSystem:ResAuctionInfoPutSuccess(result)
self.SelfAuctionCount = self.SelfAuctionCount + 1
self:UpdateData(result.auctionInfo)
GameCenter.PushFixEvent(LogicLuaEventDefine.EID_EVENT_AUCTION_UP_SUCC)
end
--下架返回 0:成功删除对象 1:失败更新对象 提示玩家已经在竞拍中 2:删除对象 提示物品不存在了
function AuctionHouseSystem:ResAuctionInfoOut(result)
if result.res == 0 then
--成功,删除对象
self:RemoveData(result.auctionInfo.id)
Utils.ShowPromptByEnum("C_AUCTION_DOWN_SUCC")
self.SelfAuctionCount = self.SelfAuctionCount - 1
if self.SelfAuctionCount < 0 then
self.SelfAuctionCount = 0
end
elseif result.res == 1 then
--失败,更新对象
self:UpdateData(result.auctionInfo)
Utils.ShowPromptByEnum("C_AUCTION_DOWNFIAL_JINGPAI")
elseif result.res == 2 then
self:UpdateData(result.auctionInfo)
Utils.ShowPromptByEnum("C_AUCTION_DOWNFAIL_NOITEM")
end
GameCenter.PushFixEvent(LogicLuaEventDefine.EID_EVENT_AUCTION_DOWN_RESULT)
end
--一口价购买返回//0成功 1对象不存在
function AuctionHouseSystem:ResAuctionInfoPur(result)
if result.res == 0 then
Utils.ShowPromptByEnum("C_AUCTION_BUY_SUCC")
elseif result.res == 1 then
Utils.ShowPromptByEnum("C_AUCTION_BUYFAIL_NOITEM")
end
--删除对象
self:RemoveData(result.auctionId)
GameCenter.PushFixEvent(LogicLuaEventDefine.EID_EVENT_AUCTION_BUY_RESULT, result.auctionId)
end
--竞价返回 0:成功更新对象 1:失败更新对象 提示价格已经变动 2:删除对象 提示物品不存在了3:已经出价最高,不能继续出价
function AuctionHouseSystem:ResAuctionInfo(result)
if result.res == 0 then
Utils.ShowPromptByEnum("C_AUCTION_JINGJIA_SUCC")
self:UpdateData(result.auctionInfo)
elseif result.res == 1 then
Utils.ShowPromptByEnum("C_AUCTION_JINGJIAFAIL_GENGGAO")
self:UpdateData(result.auctionInfo)
elseif result.res == 2 then
Utils.ShowPromptByEnum("C_AUCTION_JINGJIAFAIL_NOITEM")
self:RemoveData(result.auctionInfo.id)
elseif result.res == 3 then
Utils.ShowPromptByEnum("C_AUCTION_JINGJIAFAIL_ZUIGAO")
self:UpdateData(result.auctionInfo)
end
GameCenter.PushFixEvent(LogicLuaEventDefine.EID_EVENT_AUCTION_JINGJIA_RESULT, result.auctionInfo.id)
end
--是否使用假拍卖行
function AuctionHouseSystem:ResAuctionPur(result)
self.IsShowRealItems = result.isPur
end
--刷新数据
function AuctionHouseSystem:ResAuctionUpdate(result)
self:UpdateData(result.auctionInfo);
GameCenter.PushFixEvent(LogicLuaEventDefine.EID_EVENT_AUCTION_JINGJIA_RESULT, result.auctionInfo.id)
end
--删除物品
function AuctionHouseSystem:ResAuctionDelete(result)
self:RemoveData(result.id)
if result.ownId == GameCenter.GameSceneSystem:GetLocalPlayerID() then
self.SelfAuctionCount = self.SelfAuctionCount - 1
if self.SelfAuctionCount < 0 then
self.SelfAuctionCount = 0
end
end
GameCenter.PushFixEvent(LogicLuaEventDefine.EID_EVENT_AUCTION_BUY_RESULT, result.id)
end
--更新对象
function AuctionHouseSystem:UpdateData(info)
local _item = self.Items[info.id]
if _item ~= nil then
_item:RefreshData(info)
else
_item = L_AuctionItem.Get()
_item:RefreshData(info)
self.Items:Add(info.id, _item)
end
end
--删除对象
function AuctionHouseSystem:RemoveData(id)
local _item = self.Items[id]
if _item ~= nil then
L_AuctionItem.Free(_item)
self.Items:Remove(id)
end
end
local function CovertCareMatchId(itemId)
local _eqCfg = DataConfig.DataEquip[itemId]
if _eqCfg ~= nil then
local _occ = Utils.SplitNumber(_eqCfg.Gender, '_')[1]
local _grade = _eqCfg.Grade
local _part = _eqCfg.Part
local _quality = _eqCfg.Quality
return _occ * 1000000000 + _grade * 100000000 + _quality * 1000000 + _part * 10000
end
return itemId
end
--是否是关注的材料
function AuctionHouseSystem:IsCareItem(item)
if item.OwnerGuild > 0 then
local _lp = GameCenter.GameSceneSystem:GetLocalPlayer()
if _lp == nil then
return false
end
if _lp.GuildID ~= item.OwnerGuild then
return false
end
end
return self.CareItemMatchValues[CovertCareMatchId(item.CfgID)] ~= nil
end
--读取关注配置
function AuctionHouseSystem:LoadCareData()
if self.IsLoadCareData then
return
end
local _lp = GameCenter.GameSceneSystem:GetLocalPlayer()
if _lp == nil then
return
end
self.IsLoadCareData = true
local _param = PlayerPrefs.GetString(string.format("NewAuctionCareData2_%d", _lp.ID), "")
if _param == nil or string.len(_param) <= 0 then
return
end
local _numberTable = Utils.SplitNumber(_param, ';')
self.CareItemList = {}
self.CareItemMatchValues = {}
for i = 1, #_numberTable do
local _itemId = _numberTable[i]
self.CareItemList[_itemId] = true
self.CareItemMatchValues[CovertCareMatchId(_itemId)] = true
end
self.CareItemCount = #_numberTable
end
--保存关注配置
function AuctionHouseSystem:SaveCareData()
local _lp = GameCenter.GameSceneSystem:GetLocalPlayer()
if _lp == nil then
return
end
self.CareItemMatchValues = {}
local _saveText = ""
local _count = 0
for k, _ in pairs(self.CareItemList) do
_saveText = _saveText .. k ..';'
_count = _count + 1
self.CareItemMatchValues[CovertCareMatchId(k)] = true
end
self.CareItemCount = _count
PlayerPrefs.SetString(string.format("NewAuctionCareData2_%d", _lp.ID), _saveText)
end
return AuctionHouseSystem