战斗表现修改

xiejun 2023-11-30 13:38:19 +08:00
parent b261ab62d6
commit 941c15890c
4 changed files with 58 additions and 30 deletions

View File

@ -85,7 +85,7 @@ function SkillSetView:Show(camp, pos, BattleView)
self.nt7.text = nCombat.AttackDisplaceTime
self.nt8.text = nCombat.AttackDisplaceBackTime
self.nt9.text = nCombat.AttackDisplacement
self.nt10.text = nCombat.AttackDisplaceoffset==nil and "" or (nCombat.AttackDisplaceoffset[1].."#"..nCombat.AttackDisplaceoffset[2])
self.nt10.text = (type(nCombat.AttackDisplaceoffset[1]) == "userdata" ) and "" or self:SetStr(nCombat.AttackDisplaceoffset)
self.nt11.text = nCombat.ActionTime
self.nt12.text = (type(nCombat.SkillNumbetTime[1][1]) == "userdata" or nCombat.SkillNumbetTime[1][1]==0) and "" or self:SetStr(nCombat.SkillNumbetTime)
self.nt14.text = nCombat.EffectType

View File

@ -587,7 +587,8 @@ function EnemyView:OnDamaged(atkRole, dmg, bCrit, finalDmg, damageType, dotType,
--
local delay = combat.DamageDelay or 0
local continue = skill.continueTime or 0
local count = skill.attackCount or 1
local count = type(combat.SkillNumbetTime[1][1]) == "userdata" and 1 or combat.SkillNumbetTime[1][1]
local space = continue / count
local d = math.floor(dmg / count)
-- 如果平均伤害小于0 则
@ -599,25 +600,39 @@ function EnemyView:OnDamaged(atkRole, dmg, bCrit, finalDmg, damageType, dotType,
LogYellow(string.format("目标阵营:%s, 位置:%s, 总伤害:%s, 伤害段数:%s每段伤害%s", self.camp, self.role.position, dmg, count, d))
end
-- 伤害文字延时,有些受击特效不是立刻播放文字
self:DelayFunc(delay/1000, function()
-- 伤害文字
if count ~= 1 and skill.skillnumberTime==nil then
-- 多段伤害
-- if count ~= 1 and skill.SkillNumbetTime==nil and skill.SkillNumbetTime~=0 then
if count ~=1 then
if combat.SkillNumbetTime and combat.SkillNumbetTime[1] and (type(combat.SkillNumbetTime[1][1]) ~= "userdata" and combat.SkillNumbetTime[1][1]~=0) then
for i = 1, #combat.SkillNumbetTime do
self:DelayFunc(combat.SkillNumbetTime[i][2]/1000, function()
local fd = dmg - d *(count - 1)
self:OnceDamaged(atkRole, fd, bCrit, finalDmg, damageType, dotType, skill)
-- 被伤害卡牌表现
self:DOHitEffect(continue)
end)
end
end
-- 多段伤害
-- 后续伤害延迟打出
self:LoopFunc(space, count - 1, function()
self:OnceDamaged(atkRole, d, bCrit, finalDmg, damageType, dotType, skill)
end)
-- 立刻打出第一次伤害
local fd = dmg - d *(count - 1)
self:OnceDamaged(atkRole, fd, bCrit, finalDmg, damageType, dotType, skill)
-- 被伤害卡牌表现
self:DOHitEffect(continue)
-- self:LoopFunc(space, count - 1, function()
-- self:OnceDamaged(atkRole, d, bCrit, finalDmg, damageType, dotType, skill)
-- end)
-- -- 立刻打出第一次伤害
-- local fd = dmg - d *(count - 1)
-- self:OnceDamaged(atkRole, fd, bCrit, finalDmg, damageType, dotType, skill)
-- -- 被伤害卡牌表现
-- self:DOHitEffect(continue)
else
self:OnceDamaged(atkRole, dmg, bCrit, finalDmg, damageType, dotType, skill)
self:DelayFunc(delay/1000, function()
self:OnceDamaged(atkRole, dmg, bCrit, finalDmg, damageType, dotType, skill)
-- 被伤害卡牌表现
self:DOHitEffect()
self:DOHitEffect()
end)
end
end)
-- 播放特效
self.SkillCaster:CheckSkillHitEffect("hit", combat, skill)
else

View File

@ -690,7 +690,8 @@ function PlayerView:OnDamaged(atkRole, dmg, bCrit, finalDmg, damageType, dotType
--
local delay = combat.DamageDelay or 0
local continue = skill.continueTime or 0
local count = skill.attackCount or 1
--local count = skill.attackCount or 1
local count = type(combat.SkillNumbetTime[1][1]) == "userdata" and 1 or combat.SkillNumbetTime[1][1]
local space = continue / count
local d = math.floor(dmg / count)
@ -703,26 +704,38 @@ function PlayerView:OnDamaged(atkRole, dmg, bCrit, finalDmg, damageType, dotType
LogYellow(string.format("目标阵营:%s, 位置:%s, 总伤害:%s, 伤害段数:%s每段伤害%s", self.camp, self.role.position, dmg, count, d))
end
-- 伤害文字延时,有些受击特效不是立刻播放文字
self:DelayFunc(delay/1000, function()
-- 伤害文字
-- if count ~= 1 and skill.skillnumberTime==nil and skill.skillnumberTime~=0 then
if count ~= 1 and skill.skillnumberTime==nil then
-- if count ~= 1 and skill.SkillNumbetTime==nil and skill.SkillNumbetTime~=0 then
if combat.SkillNumbetTime and combat.SkillNumbetTime[1] and (type(combat.SkillNumbetTime[1][1]) ~= "userdata" and combat.SkillNumbetTime[1][1]~=0) then
for i = 1, #combat.SkillNumbetTime do
self:DelayFunc(combat.SkillNumbetTime[i][2]/1000, function()
local fd = dmg - d *(count - 1)
self:OnceDamaged(atkRole, fd, bCrit, finalDmg, damageType, dotType, skill)
-- 被伤害卡牌表现
self:DOHitEffect(continue)
end)
end
-- 多段伤害
-- 后续伤害延迟打出
self:LoopFunc(space, count - 1, function()
self:OnceDamaged(atkRole, d, bCrit, finalDmg, damageType, dotType, skill)
end)
-- 立刻打出第一次伤害
local fd = dmg - d *(count - 1)
self:OnceDamaged(atkRole, fd, bCrit, finalDmg, damageType, dotType, skill)
-- 被伤害卡牌表现
self:DOHitEffect(continue)
-- self:LoopFunc(space, count - 1, function()
-- self:OnceDamaged(atkRole, d, bCrit, finalDmg, damageType, dotType, skill)
-- end)
-- -- 立刻打出第一次伤害
-- local fd = dmg - d *(count - 1)
-- self:OnceDamaged(atkRole, fd, bCrit, finalDmg, damageType, dotType, skill)
-- -- 被伤害卡牌表现
-- self:DOHitEffect(continue)
else
self:DelayFunc(delay/1000, function()
self:OnceDamaged(atkRole, dmg, bCrit, finalDmg, damageType, dotType, skill)
-- 被伤害卡牌表现
self:DOHitEffect()
end)
end
end)
-- 播放特效
self.SkillCaster:CheckSkillHitEffect("hit", combat, skill)
else

View File

@ -789,7 +789,7 @@ end
-- 检测技能命中特效显示
function SkillCaster:CheckSkillHitEffect(checkType, combat, skill)
if not combat then return end
if not combat or combat.Hit==nil or combat.Hit=="" then return end
if checkType == "skill" then
-- 释放技能时检测,如果是范围命中效果
if combat.HitEffectType == 2 and combat.Hit then