diff --git a/src/actions/CarAction.lua b/src/actions/CarAction.lua index 6dded5b..785fa52 100644 --- a/src/actions/CarAction.lua +++ b/src/actions/CarAction.lua @@ -125,26 +125,28 @@ end function _M.saleEquipRpc(agent, data ) local role = agent.role local msg = MsgPack.unpack(data) - - local id = msg.id - local count = msg.count - - local itemData = csvdb["ItemCsv"][id] - if not itemData then return end - - local typ = math.floor((id-7000)/100) - local lv = (id-7000)%100 - - local own = role:getEquipCount(typ,lv) - if math.illegalNum(count, 1, own) then return end - - role:addEquip(typ, lv, -count) -- 删掉装备 - -- 发奖励 - local reward = itemData.sell_effect:toNumMap() - for k ,v in pairs(reward) do - reward[k] = v * count + local backs = msg.backs + if not backs then return end + for id, count in pairs(backs) do + if not csvdb["ItemCsv"][id] then return end + local typ = math.floor((id-7000)/100) + local lv = (id-7000)%100 + local own = role:getEquipCount(typ,lv) + if math.illegalNum(count, 1, own) then return end + end + local reward = {} + for id, count in pairs(backs) do + local itemData = csvdb["ItemCsv"][id] + local typ = math.floor((id-7000)/100) + local lv = (id-7000)%100 + role:addEquip(typ, lv, -count) -- 删掉装备 + -- 发奖励 + local one = itemData.sell_effect:toNumMap() + for k ,v in pairs(one) do + reward[k] = (reward[k] or 0) + v * count + end end - role:award(reward) + reward = role:award(reward) SendPacket(actionCodes.Car_saleEquipRpc, MsgPack.pack({reward = reward})) return true end -- libgit2 0.21.2