Commit fc316d1f24ff31d4cbd8acfaa944d4473af0a51f

Authored by zhouhaihai
1 parent 17ba67dd

冒险体力优化

src/actions/AdvAction.lua
@@ -115,7 +115,7 @@ function _M.startAdvRpc( agent, data ) @@ -115,7 +115,7 @@ function _M.startAdvRpc( agent, data )
115 if advElM < relayData.unlockfloor then return 15 end --未解锁 115 if advElM < relayData.unlockfloor then return 15 end --未解锁
116 end 116 end
117 else -- 普通模式判断 117 else -- 普通模式判断
118 - if role.dailyData:getProperty("advC") >= role:getAdvHangLimit() then return 2 end -- 是否有体力 118 + if not role:checkAdvCount(chapterData.limitlevel) then return 2 end -- 是否有体力
119 if layer >= chapterData.limitlevel then return 4 end 119 if layer >= chapterData.limitlevel then return 4 end
120 -- 关卡开放判断 120 -- 关卡开放判断
121 if not role:advChapterIsOpen(chapterId) then return 5 end 121 if not role:advChapterIsOpen(chapterId) then return 5 end
@@ -142,7 +142,7 @@ function _M.startAdvRpc( agent, data ) @@ -142,7 +142,7 @@ function _M.startAdvRpc( agent, data )
142 if AdvCommon.isEndless(chapterId) then 142 if AdvCommon.isEndless(chapterId) then
143 role.dailyData:updateProperty({field = "advElC", delta = 1}) 143 role.dailyData:updateProperty({field = "advElC", delta = 1})
144 else 144 else
145 - role.dailyData:updateProperty({field = "advC", delta = 1}) 145 + role:changeAdvCount(chapterData.limitlevel)
146 end 146 end
147 147
148 local support = {} -- 支援效果 148 local support = {} -- 支援效果
@@ -246,7 +246,7 @@ function _M.startHangRpc(agent, data) @@ -246,7 +246,7 @@ function _M.startHangRpc(agent, data)
246 if not next(advRelay[chapterId] or {}) then return end -- 没有开放 246 if not next(advRelay[chapterId] or {}) then return end -- 没有开放
247 247
248 248
249 - if role.dailyData:getProperty("advC") >= role:getAdvHangLimit() then return end -- 是否有体力 249 + if not role:checkAdvCount(chapterData.limitlevel) then return end -- 是否有体力
250 250
251 if not checkFormat(role, format, role:getAdvData():isRunning()) then return end --编队是否正确 251 if not checkFormat(role, format, role:getAdvData():isRunning()) then return end --编队是否正确
252 252
@@ -285,7 +285,7 @@ function _M.startHangRpc(agent, data) @@ -285,7 +285,7 @@ function _M.startHangRpc(agent, data)
285 285
286 role:changeUpdates({{type = "advHang", field = chapterId, value = info}}) 286 role:changeUpdates({{type = "advHang", field = chapterId, value = info}})
287 287
288 - role.dailyData:updateProperty({field = "advC", delta = 1}) 288 + role:changeAdvCount(chapterData.limitlevel)
289 role:checkTaskEnter("AdvStart", {id = chapterId}) 289 role:checkTaskEnter("AdvStart", {id = chapterId})
290 role:log("adv_action", {desc = "startHang", int1 = chapterId}) 290 role:log("adv_action", {desc = "startHang", int1 = chapterId})
291 291
@@ -365,11 +365,12 @@ function _M.endHangRpc(agent, data) @@ -365,11 +365,12 @@ function _M.endHangRpc(agent, data)
365 reward = role:award(idleReward, {log = {desc = "advHang", int1 = chapterId}}) 365 reward = role:award(idleReward, {log = {desc = "advHang", int1 = chapterId}})
366 else 366 else
367 if cancel then 367 if cancel then
368 - if role.dailyData:getProperty("advC") <= 0 then  
369 - isFull = true  
370 - else  
371 - role.dailyData:updateProperty({field = "advC", delta = -1})  
372 - end 368 + role:changeAdvCount(-chapterData.limitlevel)
  369 + -- if role:getProperty("advC") <= 0 then
  370 + -- isFull = true
  371 + -- else
  372 + -- role:updateProperty({field = "advC", delta = -chapterData.limitlevel})
  373 + -- end
373 else 374 else
374 return 375 return
375 end 376 end
@@ -405,7 +406,7 @@ function _M.buyAdvCountRpc(agent , data) @@ -405,7 +406,7 @@ function _M.buyAdvCountRpc(agent , data)
405 role.dailyData:updateProperty({field = "advElC", delta = -count}) 406 role.dailyData:updateProperty({field = "advElC", delta = -count})
406 role.dailyData:updateProperty({field = "advElBC", delta = count}) 407 role.dailyData:updateProperty({field = "advElBC", delta = count})
407 else 408 else
408 - role.dailyData:updateProperty({field = "advC", delta = -count}) 409 + role:changeAdvCount(-count * globalCsv.adv_daily_buy_num)
409 role.dailyData:updateProperty({field = "advBC", delta = count}) 410 role.dailyData:updateProperty({field = "advBC", delta = count})
410 end 411 end
411 role:log("adv_action", {desc = "buyAdvCount", short1 = isEl and 1 or 0, int1 = count}) 412 role:log("adv_action", {desc = "buyAdvCount", short1 = isEl and 1 or 0, int1 = count})
src/actions/GmAction.lua
@@ -337,7 +337,7 @@ end @@ -337,7 +337,7 @@ end
337 337
338 table.insert(helpDes, {"冒险次数恢复", "advf"}) 338 table.insert(helpDes, {"冒险次数恢复", "advf"})
339 function _M.advf(role, pms) 339 function _M.advf(role, pms)
340 - role.dailyData:updateProperty({field = "advC", value = 0}) 340 + role:updateProperty({field = "advC", value = 0})
341 role.dailyData:updateProperty({field = "advElC", value = 0}) 341 role.dailyData:updateProperty({field = "advElC", value = 0})
342 342
343 role:log("gm_action", {desc = "advf", key1 = pms.sender}) 343 role:log("gm_action", {desc = "advf", key1 = pms.sender})
src/actions/HangAction.lua
@@ -562,7 +562,6 @@ end @@ -562,7 +562,6 @@ end
562 function _M.chatLineRpc(agent, data) 562 function _M.chatLineRpc(agent, data)
563 local role = agent.role 563 local role = agent.role
564 local msg = MsgPack.unpack(data) 564 local msg = MsgPack.unpack(data)
565 -  
566 local id = msg.id 565 local id = msg.id
567 566
568 local idleData = csvdb["idle_battleCsv"][id] 567 local idleData = csvdb["idle_battleCsv"][id]
src/models/Daily.lua
@@ -10,7 +10,6 @@ Daily.schema = { @@ -10,7 +10,6 @@ Daily.schema = {
10 commentHero = {"string", ""}, -- 单日评论食灵记录 type=1 10 commentHero = {"string", ""}, -- 单日评论食灵记录 type=1
11 hangQC = {"number", 0}, -- 挂机快速次数 11 hangQC = {"number", 0}, -- 挂机快速次数
12 dinerQC = {"number", 0}, -- 贩卖加速次数 12 dinerQC = {"number", 0}, -- 贩卖加速次数
13 - advC = {"number", 0}, -- 冒险次数(消耗体力)  
14 advElC = {"number", 0}, -- 无尽次数(消耗体力) 13 advElC = {"number", 0}, -- 无尽次数(消耗体力)
15 advBC = {"number", 0}, -- 冒险次数购买次数(冒险体力购买次数) 14 advBC = {"number", 0}, -- 冒险次数购买次数(冒险体力购买次数)
16 advElBC = {"number", 0}, -- 无尽次数购买次数(冒险体力购买次数) 15 advElBC = {"number", 0}, -- 无尽次数购买次数(冒险体力购买次数)
@@ -52,7 +51,7 @@ function Daily:refreshDailyData(notify) @@ -52,7 +51,7 @@ function Daily:refreshDailyData(notify)
52 redisproxy:del(FRIEND_POINT:format(self.owner:getProperty("id"))) 51 redisproxy:del(FRIEND_POINT:format(self.owner:getProperty("id")))
53 local dataMap = {} 52 local dataMap = {}
54 for field, schema in pairs(self.schema) do 53 for field, schema in pairs(self.schema) do
55 - if field == "advC" or field == "advElC" then 54 + if field == "advElC" then
56 if self:getProperty(field) > 0 then 55 if self:getProperty(field) > 0 then
57 dataMap[field] = 0 56 dataMap[field] = 0
58 end 57 end
@@ -85,7 +84,6 @@ function Daily:data() @@ -85,7 +84,6 @@ function Daily:data()
85 return { 84 return {
86 hangQC = self:getProperty("hangQC"), 85 hangQC = self:getProperty("hangQC"),
87 dinerQC = self:getProperty("dinerQC"), 86 dinerQC = self:getProperty("dinerQC"),
88 - advC = self:getProperty("advC"),  
89 advBC = self:getProperty("advBC"), 87 advBC = self:getProperty("advBC"),
90 advElC = self:getProperty("advElC"), 88 advElC = self:getProperty("advElC"),
91 advElBC = self:getProperty("advElBC"), 89 advElBC = self:getProperty("advElBC"),
src/models/Role.lua
@@ -83,6 +83,8 @@ Role.schema = { @@ -83,6 +83,8 @@ Role.schema = {
83 advRelay = {"table", {}}, -- 冒险中继点记录 {[chapter] = {[level] = 1}, [-1] = {[level] = 1}} -- -1 无尽 方便重置 83 advRelay = {"table", {}}, -- 冒险中继点记录 {[chapter] = {[level] = 1}, [-1] = {[level] = 1}} -- -1 无尽 方便重置
84 advSup = {"table", {}}, -- 冒险支援效果 待选项 84 advSup = {"table", {}}, -- 冒险支援效果 待选项
85 advLimit = {"table", {}}, -- 冒险事件每次的limit 85 advLimit = {"table", {}}, -- 冒险事件每次的limit
  86 + advC = {"number", 0}, -- 冒险次数(消耗体力)
  87 + advCT = {"number", 0}, -- 冒险次数 上次恢复时间
86 88
87 --挂机相关 89 --挂机相关
88 hangPass = {"table", {}}, -- 挂机通过的最大关卡 90 hangPass = {"table", {}}, -- 挂机通过的最大关卡
@@ -324,6 +326,8 @@ function Role:data() @@ -324,6 +326,8 @@ function Role:data()
324 advShop = self:getProperty("advShop"), 326 advShop = self:getProperty("advShop"),
325 advEAchiev = self:getProperty("advEAchiev"), 327 advEAchiev = self:getProperty("advEAchiev"),
326 advSup = self:getProperty("advSup"), 328 advSup = self:getProperty("advSup"),
  329 + advC = self:getProperty("advC"),
  330 + advCT = self:getProperty("advCT"),
327 331
328 hangPass = self:getProperty("hangPass"), 332 hangPass = self:getProperty("hangPass"),
329 hangGift = self:getProperty("hangGift"), 333 hangGift = self:getProperty("hangGift"),
src/models/RolePlugin.lua
@@ -838,6 +838,37 @@ function RolePlugin.bind(Role) @@ -838,6 +838,37 @@ function RolePlugin.bind(Role)
838 return globalCsv.adv_daily_cross_count + self:getFuncLv(FuncOpenType.AdvCount) 838 return globalCsv.adv_daily_cross_count + self:getFuncLv(FuncOpenType.AdvCount)
839 end 839 end
840 840
  841 + function Role:checkAdvCount(need)
  842 + local oldCount = self:getProperty("advC")
  843 + local oldTime = self:getProperty("advCT")
  844 + local newCount = oldCount
  845 + if oldCount > 0 then
  846 + local add = math.max(math.floor((skynet.timex() - oldTime) / (globalCsv.adv_daily_regain_min * 60)), 0)
  847 + newCount = math.max(oldCount - add, 0)
  848 + end
  849 +
  850 + return newCount + need <= self:getAdvHangLimit()
  851 + end
  852 +
  853 + --忽略上限
  854 + function Role:changeAdvCount(change)
  855 + local count = self:getProperty("advC")
  856 + local ctime = self:getProperty("advCT")
  857 + if ctime == 0 then
  858 + ctime = skynet.timex()
  859 + end
  860 + local add = math.max(math.floor((skynet.timex() - ctime) / (globalCsv.adv_daily_regain_min * 60)), 0)
  861 + local nextTime = ctime + add * (globalCsv.adv_daily_regain_min * 60)
  862 + if count > 0 then
  863 + count = math.max(count - add, 0)
  864 + end
  865 +
  866 + self:updateProperties({
  867 + advC = count + change,
  868 + advCT = ctime,
  869 + })
  870 + end
  871 +
841 function Role:getAdvElLimit() 872 function Role:getAdvElLimit()
842 return globalCsv.adv_endless_daily_cross_count + self:getFuncLv(FuncOpenType.AdvCountEL) 873 return globalCsv.adv_endless_daily_cross_count + self:getFuncLv(FuncOpenType.AdvCountEL)
843 end 874 end