diff --git a/src/actions/GmAction.lua b/src/actions/GmAction.lua index a1c4edb..0ae0f5e 100644 --- a/src/actions/GmAction.lua +++ b/src/actions/GmAction.lua @@ -28,7 +28,7 @@ function _M.get(role, pms) return "物品不存在" end local count = tonum(pms.pm2) - role:award({[itemId] = count}, {}) + role:award({[itemId] = count}) return "成功" end diff --git a/src/actions/HangAction.lua b/src/actions/HangAction.lua index 5046454..f98e104 100644 --- a/src/actions/HangAction.lua +++ b/src/actions/HangAction.lua @@ -164,7 +164,7 @@ function _M.endBattleRpc(agent, data) for itemId, count in pairs(carbonData.item_clear:toNumMap()) do reward[itemId] = count end - reward = role:award(reward, {}) + reward = role:award(reward) end hangInfo.key = nil role:updateProperty({field = "hangInfo", value = hangInfo}) @@ -201,7 +201,7 @@ function _M.getRewardRpc(agent , data) checkReward(role) local items = role:getProperty("hangBag") if not next(items) then return end - local reward = role:award(items, {}) + local reward = role:award(items) table.clear(items) local hangInfo = role:getProperty("hangInfo") local nowTime = skynet.timex() @@ -233,7 +233,7 @@ function _M.getRewardItemRpc(agent , data) end end if not next(reward) then return end - local reward = role:award(reward, {}) + local reward = role:award(reward) local hangInfo = role:getProperty("hangInfo") local nowTime = skynet.timex() @@ -262,7 +262,7 @@ function _M.getRewardCoinRpc(agent , data) items[itemId] = nil end end - local reward = role:award(reward, {}) + local reward = role:award(reward) local hangInfo = role:getProperty("hangInfo") local nowTime = skynet.timex() @@ -311,7 +311,7 @@ function _M.quickRpc(agent , data) reward[cur[1]] = (reward[cur[1]] or 0) + cur[2] end - reward = role:award(reward, {}) + reward = role:award(reward) SendPacket(actionCodes.Hang_quickRpc, MsgPack.pack({ reward = reward diff --git a/src/actions/HeroAction.lua b/src/actions/HeroAction.lua index f0b907e..283065f 100644 --- a/src/actions/HeroAction.lua +++ b/src/actions/HeroAction.lua @@ -425,7 +425,7 @@ function _M.createHeroRpc(agent, data) end role:costItems({[heroType] = cost}) - role:award({[heroType + ItemStartId.Hero] = 1}, {}) + role:award({[heroType + ItemStartId.Hero] = 1}) SendPacket(actionCodes.Hero_createHeroRpc, "") return true diff --git a/src/actions/RoleAction.lua b/src/actions/RoleAction.lua index 4e095b7..07b3bf1 100644 --- a/src/actions/RoleAction.lua +++ b/src/actions/RoleAction.lua @@ -257,7 +257,7 @@ function _M.saleItemRpc(agent, data) local sellEffect = itemData.sell_effect:toArray(true, "=") role:costItems({[itemId] = count}) - local reward = role:award({[sellEffect[1]] = sellEffect[2] * count}, {}) + local reward = role:award({[sellEffect[1]] = sellEffect[2] * count}) SendPacket(actionCodes.Role_saleItemRpc, MsgPack.pack({reward = reward})) return true @@ -293,7 +293,7 @@ function _M.openItemRpc(agent, data) end end role:costItems({[itemId] = count}) - reward = role:award(reward, {}) + reward = role:award(reward) SendPacket(actionCodes.Role_openItemRpc, MsgPack.pack({reward = reward})) return true diff --git a/src/adv/Adv.lua b/src/adv/Adv.lua index 9a6ff56..9426af3 100644 --- a/src/adv/Adv.lua +++ b/src/adv/Adv.lua @@ -456,7 +456,7 @@ function Adv:over(success) local reward if success then self.owner:updateProperty({field = "advPass", self.owner:getProperty("advPass"):setv(self.advInfo.chapter, score)}) - reward = self.owner:award(self.owner:getProperty("advItems"):toNumMap(), {}) + reward = self.owner:award(self.owner:getProperty("advItems"):toNumMap()) end table.clear(self.advInfo) --清空advInfo self.advTeam.player = nil --重置玩家的数据 @@ -630,6 +630,7 @@ end -- 在冒险中获得的物品都发放在冒险背包内 function Adv:award(gift, params) + params = params or {} local tgift = {} if type(gift) == "string" then for _, one in pairs(gift:toTableArray(true)) do @@ -779,7 +780,7 @@ end local function clickDrop(self, room, block, params) local reward = {} if not block.event.item then return end - local reward = self:award({[block.event.item[1]] = block.event.item[2]}, {}) + local reward = self:award({[block.event.item[1]] = block.event.item[2]}) room:clearBEvent(block) self:backReward(reward) return true @@ -795,7 +796,7 @@ local function clickTrader(self, room, block, params) if not self:cost({[traderData.type] = block.event.shop[buyId][3]}, {}) then return end --不够 - local reward = self:award({[block.event.shop[buyId][1]] = block.event.shop[buyId][2]}, {}) + local reward = self:award({[block.event.shop[buyId][1]] = block.event.shop[buyId][2]}) block.event.status = block.event.status:setv(buyId, 1) self:backReward(reward) return true diff --git a/src/models/RolePlugin.lua b/src/models/RolePlugin.lua index 8e4bbb8..713d954 100644 --- a/src/models/RolePlugin.lua +++ b/src/models/RolePlugin.lua @@ -62,6 +62,7 @@ function RolePlugin.bind(Role) end local function _award(self, itemId, count, params) + local pms = clone(params) local itemData = csvdb["itemCsv"][itemId] local curType = itemData.type local change = {} -- 奖励被转化为了其他奖励 id = count @@ -74,9 +75,9 @@ function RolePlugin.bind(Role) local itemTypeAward = { [ItemType.Hero] = function() - params.type = itemId - ItemStartId.Hero + pms.type = itemId - ItemStartId.Hero for i = 1, count do - self:addHero(params) + self:addHero(pms) end end, [ItemType.AdvItem] = function() --冒险道具不会进入 玩家仓库 @@ -91,9 +92,9 @@ function RolePlugin.bind(Role) elseif itemTypeAward[curType] then itemTypeAward[curType]() else - params.itemId = itemId - params.count = count - self:addItem(params) + pms.itemId = itemId + pms.count = count + self:addItem(pms) end end @@ -103,6 +104,7 @@ function RolePlugin.bind(Role) -- 发奖功能入口 award string id=count or {[id] = count} function Role:award(gift, params) + params = params or {} local tgift = {} if type(gift) == "string" then for _, one in pairs(gift:toTableArray(true)) do @@ -114,7 +116,7 @@ function RolePlugin.bind(Role) local reward, allChange = {}, {} for itemId, count in pairs(tgift) do - local count, change = _award(self, itemId, count, clone(params or {})) + local count, change = _award(self, itemId, count, params) if next(change) then local cr, cc = self:award(change, params) -- 内部转换忽略 for _id, _ct in pairs(cr) do -- libgit2 0.21.2