【自动恢复物品】物品恢复机制改为前端计算

gaoxin 2020-10-19 16:46:24 +08:00
parent 56898d9c26
commit 0e19f21805
1 changed files with 32 additions and 2 deletions

View File

@ -26,7 +26,11 @@ local _TimeCheckFunc = {
if curCount < maxCount then
local nextFreshTime = BagManager.bagDatas[UpViewRechargeType.AdventureAlianInvasionTicket].nextFlushTime
local remationTime = nextFreshTime - PlayerManager.serverTime
return remationTime
if remationTime >= 0 then
return remationTime
end
-- 需要刷新数量
return -2
else -- 数量已满返回 -1
return -1
end
@ -37,7 +41,11 @@ local _TimeCheckFunc = {
if curCount < maxCount then
local nextFreshTime = BagManager.bagDatas[UpViewRechargeType.ActPower].nextFlushTime
local remationTime = nextFreshTime - PlayerManager.serverTime
return remationTime
if remationTime > 0 then
return remationTime
end
-- 需要刷新数量
return -2
else -- 数量已满返回 -1
return -1
end
@ -78,8 +86,30 @@ local _TimeCheckFunc = {
}
--
local GameSetting = ConfigManager.GetConfigData(ConfigName.GameSetting, 1)
function this.Initialize()
Timer.New(function()
for _, data in ipairs(GameSetting.ItemAdd) do
local itemId = data[1]
local deltaNum = data[2]
local deltaTime = data[3]
if this.IsAutoRecover(itemId) then
local leftTime = this.GetRecoverTime(itemId)
-- 已满不需要刷新
if leftTime == -1 then
return
end
--
if leftTime == -2 then
BagManager.bagDatas[itemId].num = BagManager.bagDatas[itemId].num + deltaNum
BagManager.bagDatas[itemId].nextFlushTime = BagManager.bagDatas[itemId].nextFlushTime + deltaTime
LogPink("自动恢复物品数量刷新:"..itemId.."|"..BagManager.bagDatas[itemId].num.."|"..BagManager.bagDatas[itemId].nextFlushTime)
end
end
end
end, 1, -1, true):Start()
end
-- 获取道具是否自动恢复