Commit fe29684994d7de3c6389d8c0d2a8848589783110
1 parent
d93ec42c
归还消耗指定道具或钻石
Showing
2 changed files
with
24 additions
and
7 deletions
Show diff stats
src/actions/HeroAction.lua
| @@ -604,7 +604,6 @@ end | @@ -604,7 +604,6 @@ end | ||
| 604 | function _M.getResetRewardRpc(agent, data) | 604 | function _M.getResetRewardRpc(agent, data) |
| 605 | local role = agent.role | 605 | local role = agent.role |
| 606 | local msg = MsgPack.unpack(data) | 606 | local msg = MsgPack.unpack(data) |
| 607 | - local pay = msg.pay | ||
| 608 | 607 | ||
| 609 | local hero = role.heros[msg.id] | 608 | local hero = role.heros[msg.id] |
| 610 | if not hero then return end | 609 | if not hero then return end |
| @@ -617,12 +616,30 @@ function _M.getResetRewardRpc(agent, data) | @@ -617,12 +616,30 @@ function _M.getResetRewardRpc(agent, data) | ||
| 617 | local tmpLevel = level | 616 | local tmpLevel = level |
| 618 | if level <= 1 and talent == "" then return end | 617 | if level <= 1 and talent == "" then return end |
| 619 | 618 | ||
| 619 | + local pay = true | ||
| 620 | if level <= 60 then | 620 | if level <= 60 then |
| 621 | pay = false | 621 | pay = false |
| 622 | end | 622 | end |
| 623 | 623 | ||
| 624 | - if pay and not role:costDiamond({count = globalCsv.unit_heroBack_cost or 200, log = {desc = "resetHero", int1 = msg.id}}) then | ||
| 625 | - return 1 | 624 | + if pay then |
| 625 | + local costArr = globalCsv.unit_heroBack_cost:toArray(true, "=") | ||
| 626 | + local itemCount = role:getItemCount(costArr[1]) | ||
| 627 | + local totalCost = {} | ||
| 628 | + if itemCount >= costArr[2] then | ||
| 629 | + totalCost[costArr[1]] = costArr[2] | ||
| 630 | + else | ||
| 631 | + local diamond = (costArr[2] - itemCount) * costArr[3] | ||
| 632 | + if role:getItemCount(ItemId.Diamond) < diamond then | ||
| 633 | + return 1 | ||
| 634 | + end | ||
| 635 | + totalCost[costArr[1]] = itemCount | ||
| 636 | + totalCost[ItemId.Diamond] = diamond | ||
| 637 | + end | ||
| 638 | + | ||
| 639 | + --if pay and not role:costDiamond({count = globalCsv.unit_heroBack_cost or 200, log = {desc = "resetHero", int1 = msg.id}}) then | ||
| 640 | + -- return 1 | ||
| 641 | + --end | ||
| 642 | + role:costItems(totalCost, {log = {desc = "resetHero", int1 = msg.id}}) | ||
| 626 | end | 643 | end |
| 627 | 644 | ||
| 628 | local reward = {} | 645 | local reward = {} |
| @@ -677,10 +694,10 @@ function _M.getResetRewardRpc(agent, data) | @@ -677,10 +694,10 @@ function _M.getResetRewardRpc(agent, data) | ||
| 677 | }) | 694 | }) |
| 678 | hero:mylog({desc = "resetHero"}) | 695 | hero:mylog({desc = "resetHero"}) |
| 679 | 696 | ||
| 680 | - local coef = globalCsv.unit_back_discount | ||
| 681 | - coef = (pay or tmpLevel <= 60) and 1 or coef | 697 | + --local coef = globalCsv.unit_back_discount |
| 698 | + --coef = (pay or tmpLevel <= 60) and 1 or coef | ||
| 682 | for itemId, count in pairs(reward) do | 699 | for itemId, count in pairs(reward) do |
| 683 | - reward[itemId] = math.floor(count * coef) | 700 | + reward[itemId] = count |
| 684 | end | 701 | end |
| 685 | local change | 702 | local change |
| 686 | reward, change = role:award(reward, {log = {desc = "resetHero", int1 = msg.id, int2 = hero:getProperty("type")}}) | 703 | reward, change = role:award(reward, {log = {desc = "resetHero", int1 = msg.id, int2 = hero:getProperty("type")}}) |