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 | ... | ... |