Commit 84e7c06eace294ea35bd4b07195887cf64ab4cf2

Authored by zhouhaihai
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