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,15 +278,20 @@ end | ||
278 | function _M.saleItemRpc(agent, data) | 278 | function _M.saleItemRpc(agent, data) |
279 | local role = agent.role | 279 | local role = agent.role |
280 | local msg = MsgPack.unpack(data) | 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 | SendPacket(actionCodes.Role_saleItemRpc, MsgPack.pack({reward = reward})) | 296 | SendPacket(actionCodes.Role_saleItemRpc, MsgPack.pack({reward = reward})) |
292 | return true | 297 | return true |