Commit 9489e76155dc1b576af2758b361125db9015d3b3

Authored by zhangqijia
1 parent 84cbc53e

feat: 探索加速、拾荒体力、奖励副本购买次数去除上限

src/GlobalVar.lua
... ... @@ -433,7 +433,7 @@ SystemBnousType = {
433 433 UpSpeedNum = 15, -- 加速次数上限增加 15=1探索加速or 2齿轮加速or 3餐厅加速=增加次数
434 434 ChangeBaseCount = 16, -- 每日奖励关卡挑战卡基础数量增加
435 435 ChangeBuyCount = 17, -- 每日奖励关卡挑战卡可购买次数增加,
436   - ExtraProp = 18, -- 每次探索加速额外获得道具
  436 + ExtraProps= 18, -- 每次探索加速额外获得道具
437 437 AccountLevel = 19, -- 账号等级提升角色等级上限
438 438 }
439 439  
... ...
src/actions/AdvAction.lua
... ... @@ -506,14 +506,15 @@ function _M.buyAdvCountRpc(agent , data)
506 506 local msg = MsgPack.unpack(data)
507 507  
508 508 local count = msg.count --购买次数
509   - local isEl = msg.isEl -- 是否是无尽模式
  509 + local isEl = msg.isEl -- 是否是无尽模式 国服没有
510 510 local cost
511 511 if isEl then
512 512 if math.illegalNum(count, 1, globalCsv.adv_endless_daily_buy_count - role.dailyData:getProperty("advElBC")) then return end
513 513 cost = {[ItemId.Jade] = count * globalCsv.adv_endless_daily_buy_cost}
514 514 else
515   - if math.illegalNum(count, 1, globalCsv.adv_daily_buy_count - role.dailyData:getProperty("advBC")) then return end
516   - cost = {[ItemId.Jade] = count * globalCsv.adv_daily_buy_cost}
  515 + --if math.illegalNum(count, 1, globalCsv.adv_daily_buy_count - role.dailyData:getProperty("advBC")) then return end
  516 + local advCount = (role.dailyData:getProperty("advBC") + count ) * globalCsv.adv_daily_buy_num
  517 + cost = {[ItemId.Jade] = table.findMinKeyByItem(globalCsv.adv_buy_cost, advCount)}
517 518 end
518 519  
519 520  
... ...
src/actions/HangAction.lua
... ... @@ -477,24 +477,11 @@ function _M.quickRpc(agent , data)
477 477 local expCarbonData = hangInfo.expData or {}
478 478  
479 479 local curCount = role.dailyData:getProperty("hangQC") + 1
480   - local costs = globalCsv.idle_quickproduce_cost:toArray(true, "=")
  480 + local curT = curCount * (globalCsv.idle_quickproduce_time / 3600)
  481 + local costCount = table.findMinKeyByItem(globalCsv.idle_quickproduce_cost, curT)
481 482  
482   - -- 增加今日探索加速次数
483   - local maxIdx = #costs
484   - local maxCount = maxIdx + role:getBnousUpSpeedNum(UpSpeedType.ExplorationUpSpeed)
485   - if curCount > maxCount then return end
486   -
487   - if curCount > maxIdx then
488   - for idx = maxIdx+1, curCount do
489   - costs[idx] = costs[maxIdx]
490   - end
491   - end
492   -
493   - if not costs[curCount] then return end
494   - if costs[curCount] > 0 then
495   - if not role:checkItemEnough({[ItemId.Jade] = costs[curCount]}) then return end
496   - role:costItems({[ItemId.Jade] = costs[curCount]}, {log = {desc = "quickHang", int1 = hangInfo.carbonId}})
497   - end
  483 + if not role:checkItemEnough({[ItemId.Jade] = costCount}) then return end
  484 + role:costItems({[ItemId.Jade] = costCount}, {log = {desc = "quickHang", int1 = hangInfo.carbonId}})
498 485  
499 486 role.dailyData:updateProperty({field = "hangQC", value = curCount})
500 487  
... ... @@ -540,6 +527,14 @@ function _M.quickRpc(agent , data)
540 527 reward[k] = (reward[k] or 0) + v
541 528 end
542 529  
  530 + --每次探索加速额外获得道具
  531 + local extraProps = role:getBnousExtraProps()
  532 + if next(extraProps) then
  533 + for k, v in pairs(extraProps) do
  534 + reward[k] = (reward[k] or 0) + v
  535 + end
  536 + end
  537 +
543 538 local change
544 539 reward, change = role:award(reward, {log = {desc = "quickHang", int1 = hangInfo.carbonId}})
545 540 if reward[ItemId.Gold] then
... ... @@ -584,13 +579,16 @@ function _M.buyBonusCountRpc(agent, data)
584 579 local bonusC = role.dailyData:getProperty("bonusC")
585 580 local extraCnt = role.storeData:getBonusExtraFightCount()
586 581 bonusC[btype] = bonusC[btype] or {c = 0, b = 0}
587   - local lastCount = (globalCsv.bonus_daily_buy_count + role:getBnousChangeBuyCount()) * coef + extraCnt - bonusC[btype]["b"]
588   - if math.illegalNum(count, 1, lastCount) then return 1 end
  582 + --local lastCount = (globalCsv.bonus_daily_buy_count + role:getBnousChangeBuyCount()) * coef + extraCnt - bonusC[btype]["b"]
  583 + --if math.illegalNum(count, 1, lastCount) then return 1 end
  584 +
  585 + local costCount = bonusC[btype]["b"] + count
  586 + local cost = table.findMinKeyByItem(globalCsv.bonus_buy_cost, costCount)
589 587  
590   - if not role:checkItemEnough({[ItemId.Jade] = globalCsv.bonus_buy_cost * count}) then return 2 end
  588 + if not role:checkItemEnough({[ItemId.Jade] = cost}) then return 2 end
591 589  
592   - role:costItems({[ItemId.Jade] = globalCsv.bonus_buy_cost * count}, {log = {desc = "buyBonusCount", int1 = btype, int2 = count}})
593   - bonusC[btype]["b"] = bonusC[btype]["b"] + count
  590 + role:costItems({[ItemId.Jade] = cost}, {log = {desc = "buyBonusCount", int1 = btype, int2 = count}})
  591 + bonusC[btype]["b"] = costCount
594 592 bonusC[btype]["c"] = bonusC[btype]["c"] - count
595 593  
596 594 role.dailyData:updateProperty({field = "bonusC", value = bonusC})
... ...
src/models/RolePlugin.lua
... ... @@ -3036,6 +3036,11 @@ function RolePlugin.bind(Role)
3036 3036 return levelBnous[SystemBnousType.AccountLevel] or 0
3037 3037 end
3038 3038  
  3039 + function Role:getBnousExtraProps()
  3040 + local levelBnous = self:getLevelBnous()
  3041 + return levelBnous[SystemBnousType.ExtraProps] or {}
  3042 + end
  3043 +
3039 3044 function Role:getLevelBnous()
3040 3045 local levelBnous = {}
3041 3046 local curLevel = self:getProperty("level")
... ...
src/shared/functions.lua
... ... @@ -865,6 +865,31 @@ function table.array2Table(arr)
865 865 return ret
866 866 end
867 867  
  868 +function table.findMinKeyByItem(t, item)
  869 + if not t[item] then
  870 + local tk = {}
  871 + for k, v in pairs(t) do
  872 + table.insert(tk, k)
  873 + end
  874 + if next(tk) then
  875 + local max = table.maxkey(tk)
  876 + if item > max then return t[max] end
  877 +
  878 + table.insert(tk, item)
  879 + table.sort(tk)
  880 + local index = 0
  881 + for i, k in ipairs(tk) do
  882 + if k == item then
  883 + index = i - 1
  884 + break
  885 + end
  886 + end
  887 + return t[tk[index]]
  888 + end
  889 + else
  890 + return t[item]
  891 + end
  892 +end
868 893  
869 894 function table.rewardMerge(dest, src)
870 895 for k, v in pairs(src) do
... ...