diff --git a/Assets/ManagedResources/~Lua/Modules/Battle/Logic/Base/Effect.lua b/Assets/ManagedResources/~Lua/Modules/Battle/Logic/Base/Effect.lua index 0165ea396d..58d6186b67 100644 --- a/Assets/ManagedResources/~Lua/Modules/Battle/Logic/Base/Effect.lua +++ b/Assets/ManagedResources/~Lua/Modules/Battle/Logic/Base/Effect.lua @@ -225,7 +225,9 @@ local effectList = { local dt = args[2] local f2 = args[3] BattleLogic.WaitForTrigger(interval, function () - target:AddBuff(Buff.Create(caster, BuffName.DOT, f2, 1, 0, dt, f1)) + local buff=Buff.Create(caster, BuffName.DOT, f2, 1, 0, dt, f1) + buff.skill=skill + target:AddBuff(buff) end) end, --造成[a],每秒造成[b]的[c]的伤害,持续[d]秒 @@ -474,7 +476,9 @@ local effectList = { local d1 = args[1] local d2 = args[2] BattleLogic.WaitForTrigger(interval, function () - target:AddBuff(Buff.Create(caster, BuffName.DOT, d2, 1, 0, d1, 1)) + local buff=Buff.Create(caster, BuffName.DOT, d2, 1, 0, d1, 1) + buff.skill=skill + target:AddBuff(buff) end) end, --造成[a]%的[b]伤害,对[c]造成额外[d]%伤害 @@ -677,6 +681,7 @@ local effectList = { caster.Event:DispatchEvent(BattleEventName.RoleViewBullet, skill, target) BattleLogic.WaitForTrigger(interval, function () local dot = Buff.Create(caster, BuffName.DOT, d2, 1, 0, d1, 1) + dot.skill=skill dot.isRealDamage = true target:AddBuff(dot) end) @@ -1253,6 +1258,7 @@ local effectList = { BattleUtil.CalDamage(skill, caster, target, dt, f1) local val = floor(BattleUtil.FP_Mul(caster:GetRoleData(RoleDataName.MaxHp), f2)) local dot = Buff.Create(caster, BuffName.DOT, f3, 1, 0, val, 1) + dot.skill=skill dot.isRealDamage = true target:AddBuff(dot) end) @@ -1322,7 +1328,9 @@ local effectList = { local dt = args[4] local f2 = args[5] BattleLogic.WaitForTrigger(interval, function () - buffRandomAction(f3, target, Buff.Create(caster, BuffName.DOT, f2, 1, d1, dt, f1)) + local buff=Buff.Create(caster, BuffName.DOT, f2, 1, d1, dt, f1) + buff.skill=skill + buffRandomAction(f3, target,buff) end) end, --造成[a]%的[b]伤害,立即结算目标身上所有dot的剩余伤害。【aoe】 @@ -1745,7 +1753,9 @@ local effectList = { local f2 = args[5] local f3 = args[6] BattleLogic.WaitForTrigger(interval, function () - buffRandomAction(f4, target, Buff.Create(caster, BuffName.DOT, f2, f2/f3, d1, dt, f1)) + local buff=Buff.Create(caster, BuffName.DOT, f2, f2/f3, d1, dt, f1) + buff.skill=skill + buffRandomAction(f4, target,buff) end) end, --造成[a]%的[b]伤害,若暴击,[g][c]%概率改变我方随机1人[d]属性[e]%,持续[f]秒。 @@ -1850,6 +1860,7 @@ local effectList = { local DOT = Buff.Create(caster, BuffName.DOT, f2, f2/f3, d1, f1, 1) DOT.clear = false DOT.isDeBuff = true + DOT.skill=skill buffRandomAction(f4, target, DOT) end) end, @@ -2174,7 +2185,7 @@ local effectList = { caster.Event:DispatchEvent(BattleEventName.RoleViewBullet, skill, target) BattleLogic.WaitForTrigger(interval, function () local damage = BattleUtil.ErrorCorrection(f2 * caster:GetRoleData(BattlePropList[pro])) - BattleUtil.RandomDot(f1, dot, caster, target, i1, 1, floor(damage)) + BattleUtil.RandomDot(f1, dot, caster, target, i1, 1, floor(damage),skill) end) end, @@ -2492,6 +2503,7 @@ local effectList = { end end local buff=Buff.Create(caster, BuffName.DOT,round, 1,3,damage) + buff.skill=skill buff.isRealDamage=true target:AddBuff(buff) end) diff --git a/Assets/ManagedResources/~Lua/Modules/Battle/Logic/Base/Passivity.lua b/Assets/ManagedResources/~Lua/Modules/Battle/Logic/Base/Passivity.lua index 5e324a82f7..0ae3d551a1 100644 --- a/Assets/ManagedResources/~Lua/Modules/Battle/Logic/Base/Passivity.lua +++ b/Assets/ManagedResources/~Lua/Modules/Battle/Logic/Base/Passivity.lua @@ -8554,6 +8554,10 @@ local passivityList = { if buff.type~=type then return end + + if not buff.skill then + return + end if type==BuffName.DOT then if buff.damageType~=type2 then return @@ -8895,7 +8899,7 @@ local passivityList = { role.Event:AddEvent(BattleEventName.SkillCastEnd, OnSkillCastEnd,nil,nil,role) end, - -- [a]方处于[b]类型[c]状态敌人受到的直接伤害[c]改变[d]% + -- [a]方处于[b]类型[c]状态敌人受到的直接伤害[d]改变[e]% -- a[int 0:己方 1:敌方],b[int buff类型],c[int buff效果 (0 表示类型下的的所有)], d[int],e[float] [370] = function(role, args,id,judge) local camp = args[1] diff --git a/Assets/ManagedResources/~Lua/Modules/Battle/Logic/Misc/BattleUtil.lua b/Assets/ManagedResources/~Lua/Modules/Battle/Logic/Misc/BattleUtil.lua index 2abfb93cf6..f760c4297d 100644 --- a/Assets/ManagedResources/~Lua/Modules/Battle/Logic/Misc/BattleUtil.lua +++ b/Assets/ManagedResources/~Lua/Modules/Battle/Logic/Misc/BattleUtil.lua @@ -1189,7 +1189,7 @@ function BattleUtil.RandomControl(rand, ctrl, caster, target, round) end -- -function BattleUtil.RandomDot(rand, dot, caster, target, round, interval, damage) +function BattleUtil.RandomDot(rand, dot, caster, target, round, interval, damage,skill) local cl = {} local dcl = {} @@ -1208,6 +1208,7 @@ function BattleUtil.RandomDot(rand, dot, caster, target, round, interval, damage return BattleUtil.RandomAction(rand, function() local buff = Buff.Create(caster, BuffName.DOT, round, interval, dot, damage) + buff.skill=skill buff.isRealDamage = true target:AddBuff(buff) end)