Commit b0a09a2469124bd89d7b20afb91352121708897a
Merge branch 'tr/bugfix-qa' into tr/publish/qa-dev
Showing
3 changed files
with
53 additions
and
26 deletions
Show diff stats
src/actions/GmAction.lua
| @@ -558,6 +558,26 @@ function _M.actbattle(role, pms) | @@ -558,6 +558,26 @@ function _M.actbattle(role, pms) | ||
| 558 | return "成功" | 558 | return "成功" |
| 559 | end | 559 | end |
| 560 | 560 | ||
| 561 | +table.insert(helpDes, {"清空背包", "clearbag"}) | ||
| 562 | +function _M.clearbag(role, pms) | ||
| 563 | + -- 装备 | ||
| 564 | + role:updateProperty({field="equips", value = {}}) | ||
| 565 | + -- 道具 | ||
| 566 | + local items = role:getProperty("items"):toNumMap() | ||
| 567 | + for k, v in pairs(items) do | ||
| 568 | + role:addItem({itemId = k, count = -v, log = {desc = "gm"}}) | ||
| 569 | + end | ||
| 570 | + | ||
| 571 | + -- 铭文 | ||
| 572 | + local uids = {} | ||
| 573 | + for uid, _ in pairs(role.runeBag) do | ||
| 574 | + table.insert(uids, uid) | ||
| 575 | + end | ||
| 576 | + role:delRunes(uids, {log = {desc = "gm"}}) | ||
| 577 | + | ||
| 578 | + return "成功" | ||
| 579 | +end | ||
| 580 | + | ||
| 561 | function _M.helpRpc(agent, data) | 581 | function _M.helpRpc(agent, data) |
| 562 | SendPacket(actionCodes.Gm_helpRpc, MsgPack.pack({help = helpDes})) | 582 | SendPacket(actionCodes.Gm_helpRpc, MsgPack.pack({help = helpDes})) |
| 563 | return true | 583 | return true |
src/adv/Adv.lua
| @@ -812,14 +812,12 @@ function Adv:over(success, rewardRatio, overType) | @@ -812,14 +812,12 @@ function Adv:over(success, rewardRatio, overType) | ||
| 812 | local potionBag = self.owner:getProperty("potionBag") | 812 | local potionBag = self.owner:getProperty("potionBag") |
| 813 | for itemId, count in pairs(self.owner:getProperty("advItems"):toNumMap()) do | 813 | for itemId, count in pairs(self.owner:getProperty("advItems"):toNumMap()) do |
| 814 | local itemCsv = csvdb["itemCsv"][itemId] | 814 | local itemCsv = csvdb["itemCsv"][itemId] |
| 815 | - if not itemCsv then | 815 | + if advPotionCsv[itemId] then |
| 816 | + potionBag[itemId] = (potionBag[itemId] or 0) + count | ||
| 817 | + elseif not itemCsv then | ||
| 816 | print("ERROR: no itemId in ItemCsv : ", itemId) | 818 | print("ERROR: no itemId in ItemCsv : ", itemId) |
| 817 | elseif itemCsv.type ~= ItemType.AdvItem then | 819 | elseif itemCsv.type ~= ItemType.AdvItem then |
| 818 | - if advPotionCsv[itemId] then | ||
| 819 | - potionBag[itemId] = (potionBag[itemId] or 0) + count | ||
| 820 | - else | ||
| 821 | - reward[itemId] = math.ceil(count * rewardRatio / 100) | ||
| 822 | - end | 820 | + reward[itemId] = math.ceil(count * rewardRatio / 100) |
| 823 | end | 821 | end |
| 824 | end | 822 | end |
| 825 | reward = self.owner:award(reward, {log = {desc = "advOver", int1 = self.chapterId}}) | 823 | reward = self.owner:award(reward, {log = {desc = "advOver", int1 = self.chapterId}}) |
| @@ -1129,10 +1127,17 @@ function Adv:supplyPotion() | @@ -1129,10 +1127,17 @@ function Adv:supplyPotion() | ||
| 1129 | for potionId, set in pairs(potionCsv) do | 1127 | for potionId, set in pairs(potionCsv) do |
| 1130 | local count = potionBag[potionId] or 0 | 1128 | local count = potionBag[potionId] or 0 |
| 1131 | if count > 0 then | 1129 | if count > 0 then |
| 1132 | - local level = dishTree:getv(potionId,1) | ||
| 1133 | - local num = math.min(set[level].limit,count) | ||
| 1134 | - advItems = advItems:setv(potionId,num) | ||
| 1135 | - potionBag[potionId] = num ~= count and (count - num) or nil | 1130 | + local max = set[dishTree:getv(potionId,1)].limit |
| 1131 | + local old = advItems:getv(potionId,0) | ||
| 1132 | + local need = max - old | ||
| 1133 | + | ||
| 1134 | + if need < count then | ||
| 1135 | + advItems = advItems:setv(potionId,max) | ||
| 1136 | + potionBag[potionId] = count - need | ||
| 1137 | + else | ||
| 1138 | + advItems = advItems:setv(potionId,old + count) | ||
| 1139 | + potionBag[potionId] = nil | ||
| 1140 | + end | ||
| 1136 | end | 1141 | end |
| 1137 | end | 1142 | end |
| 1138 | self.owner:updateProperties({ | 1143 | self.owner:updateProperties({ |
src/models/Activity.lua
| @@ -834,25 +834,27 @@ activityFunc[Activity.ActivityType.Crisis] = { | @@ -834,25 +834,27 @@ activityFunc[Activity.ActivityType.Crisis] = { | ||
| 834 | for id, actSet in pairs(actCsv) do | 834 | for id, actSet in pairs(actCsv) do |
| 835 | if actSet.type == atype then | 835 | if actSet.type == atype then |
| 836 | local status = actData.task[id] or 0 | 836 | local status = actData.task[id] or 0 |
| 837 | - status = status + count | ||
| 838 | - if status >= actSet.condition1 then | ||
| 839 | - local reward | ||
| 840 | - if actSet.loop == 1 then | ||
| 841 | - local rcount = math.floor(status / actSet.condition1) | ||
| 842 | - reward = actSet.reward:toNumMap() | ||
| 843 | - for itemId, itemC in pairs(reward) do | ||
| 844 | - reward[itemId] = itemC * rcount | 837 | + if status ~= -1 then |
| 838 | + status = status + count | ||
| 839 | + if status >= actSet.condition1 then | ||
| 840 | + local reward | ||
| 841 | + if actSet.loop == 1 then | ||
| 842 | + local rcount = math.floor(status / actSet.condition1) | ||
| 843 | + reward = actSet.reward:toNumMap() | ||
| 844 | + for itemId, itemC in pairs(reward) do | ||
| 845 | + reward[itemId] = itemC * rcount | ||
| 846 | + end | ||
| 847 | + status = status % actSet.condition1 | ||
| 848 | + else | ||
| 849 | + reward = actSet.reward | ||
| 850 | + status = -1 | ||
| 845 | end | 851 | end |
| 846 | - status = status % actSet.condition1 | ||
| 847 | - else | ||
| 848 | - reward = actSet.reward | ||
| 849 | - status = -1 | ||
| 850 | - end | ||
| 851 | 852 | ||
| 852 | - self.owner:award(reward, {log = {desc = "activity_crisis"}, notNotify = not notify}) | 853 | + self.owner:award(reward, {log = {desc = "activity_crisis"}, notNotify = not notify}) |
| 854 | + end | ||
| 855 | + actData.task[id] = status | ||
| 856 | + change = true | ||
| 853 | end | 857 | end |
| 854 | - actData.task[id] = status | ||
| 855 | - change = true | ||
| 856 | end | 858 | end |
| 857 | end | 859 | end |
| 858 | if change then | 860 | if change then |