Commit 84e7c06eace294ea35bd4b07195887cf64ab4cf2
1 parent
e3c3a4f5
回收
Showing
1 changed file
with
14 additions
and
9 deletions
Show diff stats
src/actions/RoleAction.lua
... | ... | @@ -278,15 +278,20 @@ end |
278 | 278 | function _M.saleItemRpc(agent, data) |
279 | 279 | local role = agent.role |
280 | 280 | local msg = MsgPack.unpack(data) |
281 | - local itemId = msg.itemId | |
282 | - local count = msg.count | |
283 | - if math.illegalNum(count, 1, role:getItemCount(itemId)) then return end | |
284 | - local itemData = csvdb["itemCsv"][itemId] | |
285 | - if itemData.sell_effect == "" then return end | |
286 | - local sellEffect = itemData.sell_effect:toArray(true, "=") | |
287 | - | |
288 | - role:costItems({[itemId] = count}) | |
289 | - local reward = role:award({[sellEffect[1]] = sellEffect[2] * count}) | |
281 | + local backs = msg.backs | |
282 | + if not backs then return end | |
283 | + | |
284 | + local reward = {} | |
285 | + for itemId, count in pairs(backs) do | |
286 | + if math.illegalNum(count, 1, role:getItemCount(itemId)) then return end | |
287 | + local itemData = csvdb["itemCsv"][itemId] | |
288 | + if itemData.sell_effect == "" then return end | |
289 | + local sellEffect = itemData.sell_effect:toArray(true, "=") | |
290 | + reward[sellEffect[1]] = (reward[sellEffect[1]] or 0) + sellEffect[2] * count | |
291 | + end | |
292 | + | |
293 | + role:costItems(backs) | |
294 | + local reward = role:award(reward) | |
290 | 295 | |
291 | 296 | SendPacket(actionCodes.Role_saleItemRpc, MsgPack.pack({reward = reward})) |
292 | 297 | return true | ... | ... |