From 92d7d6acf4944bfb856b9920ef7c6ca6c3632b01 Mon Sep 17 00:00:00 2001 From: zhouhaihai Date: Wed, 6 May 2020 14:30:37 +0800 Subject: [PATCH] 加一些数据保护 --- src/actions/FriendAction.lua | 14 +++++++++----- src/adv/Adv.lua | 9 +++++++-- src/adv/AdvBattle.lua | 1 + src/adv/AdvBuff.lua | 4 +++- 4 files changed, 20 insertions(+), 8 deletions(-) diff --git a/src/actions/FriendAction.lua b/src/actions/FriendAction.lua index c322ba7..0f03f82 100644 --- a/src/actions/FriendAction.lua +++ b/src/actions/FriendAction.lua @@ -316,11 +316,15 @@ function _M.handleApplyRpc(agent, data) end redisproxy:pipelining(function (red) - red:ZREM(FRIEND_APPLY_KEY:format(roleId), table_unpack(needAdd)) - red:HMSET(FRIEND_KEY:format(roleId), table_unpack(needAddMy)) - for _, objectId in pairs(needAdd) do - red:ZREM(FRIEND_APPLY_KEY:format(objectId), roleId) - red:hsetnx(FRIEND_KEY:format(objectId), roleId, newTag)--告知对放有新好友 + if next(needAdd) then + red:ZREM(FRIEND_APPLY_KEY:format(roleId), table_unpack(needAdd)) + for _, objectId in pairs(needAdd) do + red:ZREM(FRIEND_APPLY_KEY:format(objectId), roleId) + red:hsetnx(FRIEND_KEY:format(objectId), roleId, newTag)--告知对放有新好友 + end + end + if next(needAddMy) then + red:HMSET(FRIEND_KEY:format(roleId), table_unpack(needAddMy)) end end) local myInfo = role:friendSInfo() diff --git a/src/adv/Adv.lua b/src/adv/Adv.lua index b0e0ebb..f187a26 100644 --- a/src/adv/Adv.lua +++ b/src/adv/Adv.lua @@ -1048,8 +1048,13 @@ local function chooseCommon(self, room, block, chooseData, choose, tag) local count = effect[3] or 1 local reward = {} for i = 1, count do - local item = csvdb["event_dropCsv"][effect[2]]["range"]:randWeight(true) - reward[item[1]] = (reward[item[1]] or 0) + item[2] + local dropData = csvdb["event_dropCsv"][effect[2]] + if dropData then + local item = dropData["range"]:randWeight(true) + reward[item[1]] = (reward[item[1]] or 0) + item[2] + else + skynet.error(string.format("[ERROR]: event_dropCsv no id %s in %s id: %s", effect[2], tag, chooseData.id)) + end end self:backReward(self:award(reward, {log = {desc = "chooseEvent", key1 = tag, int1 = chooseData.id}}), {roomId = room.roomId, blockId = block.blockId}) end, diff --git a/src/adv/AdvBattle.lua b/src/adv/AdvBattle.lua index 7fe5141..09b0e7f 100644 --- a/src/adv/AdvBattle.lua +++ b/src/adv/AdvBattle.lua @@ -292,6 +292,7 @@ function Battle:battleBegin(roomId, blockId, params) local enemy = self:getEnemy(roomId, blockId) if not enemy then return end local player = params.player + if not player then return end -- 玩家没死就是怪死了 if player.hp > 0 then enemy:hurt(enemy.hp, self.player, {hurtType = 5}) diff --git a/src/adv/AdvBuff.lua b/src/adv/AdvBuff.lua index fdb9487..abdf092 100644 --- a/src/adv/AdvBuff.lua +++ b/src/adv/AdvBuff.lua @@ -81,7 +81,9 @@ local function commonAttCond(_Buff, attrName) effectCount = self.owner.battle.adv.level elseif self.buffData.effectValue4 == 2 then local buff = self.owner.battle.player:getBuffById(tonumber(self.buffData.effectValue5)) - effectCount = buff.layer + if buff then + effectCount = buff.layer + end end return self.buffData.effectValue2 * effectCount end -- libgit2 0.21.2