From cf584618eac255a2b5ca8632c4c3d0fd03b7fadf Mon Sep 17 00:00:00 2001 From: zhouhaihai Date: Wed, 9 Dec 2020 11:35:51 +0800 Subject: [PATCH] 效果发给客户端 --- src/adv/AdvBuff.lua | 17 ++++++++++++++--- src/adv/AdvPassive.lua | 7 +++++-- src/adv/AdvPlayer.lua | 4 ---- 3 files changed, 19 insertions(+), 9 deletions(-) diff --git a/src/adv/AdvBuff.lua b/src/adv/AdvBuff.lua index 1298257..7074873 100644 --- a/src/adv/AdvBuff.lua +++ b/src/adv/AdvBuff.lua @@ -489,6 +489,7 @@ function Buff:createAfter(layer) if self._init then self:_init() end + self:pushBackEffect(1) end function Buff:initByDB(data) @@ -620,11 +621,19 @@ function Buff:canEffect(...) return self:_canEffect(...) end +function Buff:pushBackEffect(etype) + local shows = self.buffData.show:toTableArray(true) + for _, one in ipairs(shows) do + if one[1] == etype then + self.owner.battle.adv:pushBackEvent(AdvBackEventType.BuffEffect, {etype = etype, id = self.id, blockId = self.owner.blockId, roomId = self.owner.roomId}) + break + end + end +end + function Buff:effect() self:decCount() - if self.buffData.show:sismember(2, " ") then - self.owner.battle.adv:pushBackEvent(AdvBackEventType.BuffEffect, {etype = 2}) - end + self:pushBackEffect(2) if self._effectValue then return self:_effectValue() end @@ -698,6 +707,8 @@ function Buff:overlay(releaser, data, layer) if self._overlay then self:_overlay() end + + self:pushBackEffect(1) end end diff --git a/src/adv/AdvPassive.lua b/src/adv/AdvPassive.lua index 886061e..1821bb5 100644 --- a/src/adv/AdvPassive.lua +++ b/src/adv/AdvPassive.lua @@ -339,6 +339,7 @@ function Passive:canEffect(effType, effValue) end function Passive:effect(triggerPms) + local hadEffect = false for _, effect in ipairs(self.effects) do local effType = effect[1] local effValue = effect[2] @@ -347,10 +348,13 @@ function Passive:effect(triggerPms) table.insert(otherPms, effect[i]) end if self:canEffect(effType, effValue) then + hadEffect = true self["effect" .. effType](self, effValue, triggerPms, table.unpack(otherPms)) end end - + if hadEffect then + self.owner.battle.adv:pushBackEvent(AdvBackEventType.PassiveEffect, {id = self.id, level = self.level, roomId = self.owner.roomId, blockId = self.owner.blockId}) + end if self.count > 0 then self.count = self.count < 999 and self.count - 1 or self.count self.round = self.passiveData.round @@ -413,7 +417,6 @@ function Passive:trigger(condType, params) --触发检查 if self.round and self.round > 0 then -- cd return end - self.owner.battle.adv:pushBackEvent(AdvBackEventType.PassiveEffect, {show = self.passiveData.show, roomId = self.owner.roomId, blockId = self.owner.blockId }) self:effect(params) end diff --git a/src/adv/AdvPlayer.lua b/src/adv/AdvPlayer.lua index 292ba04..79e0a5b 100644 --- a/src/adv/AdvPlayer.lua +++ b/src/adv/AdvPlayer.lua @@ -847,10 +847,6 @@ function Player:addBuff(buffId, releaser) self.battle.adv:checkAchievement(self.battle.adv.AchievType.GetBuff, 1, buffId) self.battle.adv:pushBackEvent(AdvBackEventType.Buff, {buffId = buffId}) self.battle:triggerPassive(Passive.PLAYER_BUFF, {buffId = buffId}) - local buffData = csvdb["adv_map_buffCsv"][buffId] - if buffData and buffData.show:sismember(1, " ") then - self.battle.adv:pushBackEvent(AdvBackEventType.BuffEffect, {etype = 1}) - end end return status end -- libgit2 0.21.2