Closed fuxiao1563 closed 1 month ago
因为SetMissileDamage的这个callback给的例子是function(attack_data, caster) 你把caster换成别的词本质上也还是caster SetMissileDamage好像也只有设置初始值的时候能用
试了下可以通过这种方式
--子弹受击效果--和Api:SetMissileDamage一个位置
Api:SetMissileImpact("attack_rock", function(attack_data, caster, target)
local health = target:GetCurrentHealth()
local damage = 0.2 * health
target:Damage(damage, caster, {
show_duration = 0.25 * 1,
anim_duration = 0.75 * 1,
color = "<color=red>",
size = "<size=100%>",
center_at_unit = false,
})
end)
本来想直接改attack_data.damage,但没有用 (顺便这个center_at_unit=false了那个跳字也是在中间 如果不想要这个伤害跳字的话可能目前还是靠初始神器/能力来做好点
@Ill-cat 多谢佬这么晚了还帮忙解答,我明天试一试
@Ill-cat 正解,SetMissileDamage里面的callback是自己的角色,不是对面。 应该也可以用CombatUnit:GetMainOpponent()来得到敌人,即:
Api:SetMissileDamage("attack_zombie_rolex", function(attack_data, caster)
local target = caster:GetMainOpponent()
return 0.2 * target:GetCurrentHealth()
end)
确实可以,我一开始试这个忘记把combat_unit:GetMainOpponent()的combat_unit改掉了,就换了个繁琐的办法(
@Ill-cat @MajorMajorMajor6 好的,问题已解决。多谢二位
我想要做一个可以造成基于敌方当前生命值伤害的子弹, 但是通过 target:GetCurrentHealth() 获取到的是自己当前生命值, 有什么解决办法吗?)