自动淬炼加同步
This commit is contained in:
parent
b955b1c4bf
commit
016c68edfc
@ -35,6 +35,6 @@ RunesConst.FAKE_DATA_COUNT = 10
|
||||
-- 自动淬炼频率n次/s
|
||||
RunesConst.AUTO_INTERVAL = 10
|
||||
-- 同步服务器数据间隔,单位s
|
||||
RunesConst.SYNC_INTERVAL = 10
|
||||
RunesConst.SYNC_INTERVAL = 1
|
||||
|
||||
return RunesConst
|
||||
@ -55,12 +55,13 @@ end
|
||||
--1、玩家手动停止(停止)
|
||||
--2、材料不够(停止)
|
||||
--3、自动次数用完(同步已执行次数,继续请求自动数据)
|
||||
function RunesManager:reqSyncQuenching(isEnd)
|
||||
--4、同步(仅同步已执行次数)
|
||||
function RunesManager:reqSyncQuenching(isEnd, onlySyncTime)
|
||||
if self.isSyncQuenching then
|
||||
return
|
||||
end
|
||||
self.isSyncQuenching = true
|
||||
self:sendMessage(ProtoMsgType.FromMsgEnum.RuneQuenchingAutoSyncReq, {count = DataManager.RunesData:getExecutedAutoCount(), isEnd = isEnd}, {}, self.rspSyncQuenching, BIReport.ITEM_GET_TYPE.RUNES_AUTO_QUENCHING)
|
||||
self:sendMessage(ProtoMsgType.FromMsgEnum.RuneQuenchingAutoSyncReq, {count = DataManager.RunesData:getExecutedAutoCount(), isEnd = isEnd, onlySyncTime = onlySyncTime}, {}, self.rspSyncQuenching, BIReport.ITEM_GET_TYPE.RUNES_AUTO_QUENCHING, onlySyncTime)
|
||||
end
|
||||
|
||||
function RunesManager:rspSyncQuenching(result)
|
||||
@ -70,7 +71,7 @@ function RunesManager:rspSyncQuenching(result)
|
||||
self.isAutoQuenching = false
|
||||
end
|
||||
if result.err_code == GConst.ERROR_STR.SUCCESS then
|
||||
if not result.reqData.isEnd then
|
||||
if not result.reqData.isEnd and not result.reqData.onlySyncTime then
|
||||
-- 同步已执行次数,继续请求自动数据
|
||||
ModuleManager.RunesManager:reqAutoQuenching(DataManager.RunesData:getAutoHeroId())
|
||||
end
|
||||
|
||||
@ -8,6 +8,10 @@ function RunesInfoComp:onClose()
|
||||
self.baseObject:unscheduleGlobal(self.autoSid)
|
||||
self.autoSid = nil
|
||||
end
|
||||
if self.autoSyncSid then
|
||||
self.baseObject:unscheduleGlobal(self.autoSyncSid)
|
||||
self.autoSyncSid = nil
|
||||
end
|
||||
end
|
||||
|
||||
function RunesInfoComp:init()
|
||||
@ -101,6 +105,10 @@ function RunesInfoComp:refresh()
|
||||
self.baseObject:unscheduleGlobal(self.autoSid)
|
||||
self.autoSid = nil
|
||||
end
|
||||
if self.autoSyncSid then
|
||||
self.baseObject:unscheduleGlobal(self.autoSyncSid)
|
||||
self.autoSyncSid = nil
|
||||
end
|
||||
|
||||
if ModuleManager.RunesManager:isInAutoQuenching() then
|
||||
self:startAutoQuenching()
|
||||
@ -289,6 +297,7 @@ function RunesInfoComp:startAutoQuenching()
|
||||
self.tempMaterialCount = DataManager.RunesData:getMaterialCount()
|
||||
|
||||
self.autoSid = self.baseObject:scheduleGlobal(function() self:autoQuenching() end, 1 / GConst.RunesConst.AUTO_INTERVAL)
|
||||
self.autoSyncSid = self.baseObject:scheduleGlobal(function() ModuleManager.RunesManager:reqSyncQuenching(false, true) end, GConst.RunesConst.SYNC_INTERVAL)
|
||||
end
|
||||
|
||||
-- 结束自动淬炼
|
||||
|
||||
@ -192,13 +192,7 @@ end
|
||||
|
||||
-- 获取锻造材料个数
|
||||
function RunesData:getMaterialCount()
|
||||
local count = DataManager.BagData.ItemData:getItemNumById(GConst.ItemConst.ITEM_ID_RUNES)
|
||||
|
||||
if ModuleManager.RunesManager:isInAutoQuenching() then
|
||||
return count - (self:getExecutedAutoCount() * self:getRunes(self.autoHeroId):getMaterialCostNum())
|
||||
end
|
||||
|
||||
return count
|
||||
return DataManager.BagData.ItemData:getItemNumById(GConst.ItemConst.ITEM_ID_RUNES)
|
||||
end
|
||||
|
||||
-- 是否可以一键铸造
|
||||
@ -294,7 +288,7 @@ function RunesData:getRandomGrids()
|
||||
return self.fakeGrids[math.random(GConst.RunesConst.FAKE_DATA_COUNT)]
|
||||
end
|
||||
|
||||
-- 获取当前已执行的自动淬炼次数
|
||||
-- 获取本次同步已执行的自动淬炼次数
|
||||
function RunesData:getExecutedAutoCount()
|
||||
return self.executedAutoCount
|
||||
end
|
||||
@ -306,11 +300,12 @@ end
|
||||
|
||||
-- 自动淬炼次数增加
|
||||
function RunesData:onAutoQuenchingOnce()
|
||||
if self.executedAutoCount >= self.autoTotalCount then
|
||||
self.executedTotalAutoCount = self.executedTotalAutoCount + 1
|
||||
self.executedAutoCount = self.executedAutoCount + 1
|
||||
|
||||
if self.executedTotalAutoCount >= self.autoTotalCount then
|
||||
-- 剩余自动次数不足,同步并请求数据
|
||||
ModuleManager.RunesManager:reqSyncQuenching(self.isCountEnd)
|
||||
else
|
||||
self.executedAutoCount = self.executedAutoCount + 1
|
||||
end
|
||||
end
|
||||
|
||||
@ -327,6 +322,7 @@ end
|
||||
function RunesData:onGetAutoQuenchingDataSuccess(heroId, count, isCountEnd)
|
||||
self.autoHeroId = heroId
|
||||
self.autoTotalCount = count
|
||||
self.executedTotalAutoCount = 0
|
||||
self.executedAutoCount = 0
|
||||
self.isCountEnd = isCountEnd
|
||||
|
||||
@ -338,6 +334,7 @@ function RunesData:onAutoQuenchingSuccess(level, exp, grids)
|
||||
self.level = level
|
||||
self.exp = exp
|
||||
self.runes[self:getAutoHeroId()]:updateGrids(grids)
|
||||
self.executedAutoCount = 0
|
||||
|
||||
self:setDirty()
|
||||
end
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user