From a2f11550d0e67b4464edcdbe636aa3eaf67b759f Mon Sep 17 00:00:00 2001 From: zhouhaihai Date: Mon, 3 Aug 2020 18:02:04 +0800 Subject: [PATCH] 完善道具转换 --- src/models/RolePlugin.lua | 34 +++++++++++++++++++++------------- 1 file changed, 21 insertions(+), 13 deletions(-) diff --git a/src/models/RolePlugin.lua b/src/models/RolePlugin.lua index e1ece96..9c8e6c9 100644 --- a/src/models/RolePlugin.lua +++ b/src/models/RolePlugin.lua @@ -67,9 +67,16 @@ function RolePlugin.bind(Role) local itemTypeAward = { [ItemType.Hero] = function() pms.type = itemId - ItemStartId.Hero - for _= 1, count do - self:addHero(pms) + local status = self:addHero(pms) + local gcount = 1 + if not status then + gcount = 0 + end + if count - gcount > 0 then + local heroData = csvdb["unitCsv"][pms.type] + change[pms.type] = (change[pms.type] or 0) + (count - gcount) * globalCsv.draw_unit_tofragment[heroData.rare] end + count = gcount end, [ItemType.EquipBase] = function() local typ = math.floor((itemId-7000)/100) @@ -105,7 +112,7 @@ function RolePlugin.bind(Role) end end - return count, change -- count 刷新实际发放的奖励个数 change 物品实际奖励与当前id 不符 就发生转换 而不实际发奖 + return count, change -- count 实际发放的奖励个数 change 物品实际奖励与当前id 不符 就发生转换 而不实际发奖 end @@ -122,17 +129,18 @@ function RolePlugin.bind(Role) end local reward, allChange = {}, {} - for itemId, count in pairs(tgift) do - local count, change = _award(self, itemId, count, params) + for itemId, rcount in pairs(tgift) do + local count, change = _award(self, itemId, rcount, params) + if count > 0 then + reward[itemId] = (reward[itemId] or 0) + count + end if next(change) then - local cr, cc = self:award(change, params) -- 内部转换忽略 - for _id, _ct in pairs(cr) do - reward[_id] = (reward[_id] or 0) + _ct - end - table.insert(allChange, {form = {[itemId] = count}, to = cr}) - else - if count > 0 then - reward[itemId] = (reward[itemId] or 0) + count + local cr, _ = self:award(change, params) -- 内部转换忽略 防止死循环 + if next(cr) then + for _id, _ct in pairs(cr) do + reward[_id] = (reward[_id] or 0) + _ct + end + table.insert(allChange, {form = {[itemId] = rcount - count}, to = cr}) end end end -- libgit2 0.21.2