这个函数会检查目标是否存在传入的 modifier,如果存在,造成 1.5 倍的伤害值,并从目标的 modifiers 列表中移除该 modifier;国、这一部分不用修改
时间: 2024-03-10 16:46:25 浏览: 70
好的,明白了。如果只需要修改函数中的“如果没有相同modifier”的部分,可以这样修改:
```python
def attack_with_modifier(target, modifier):
damage = 100
if modifier in target.modifiers:
damage *= 1.5
target.modifiers.remove(modifier)
else:
damage *= 1.1
target.modifiers.append(modifier)
target.hp -= damage
```
这个函数会检查目标是否存在传入的 modifier,如果存在,造成 1.5 倍的伤害值,并从目标的 modifiers 列表中移除该 modifier;如果不存在,造成 1.1 倍的伤害值,并将该 modifier 添加到目标的 modifiers 列表中。
相关问题
将上述函数改成如果没有相同modifier,则造成1.1倍的伤害值
好的,以下是修改后的函数:
```python
def attack_with_modifier(target, modifier):
damage = 100
if modifier in target.modifiers:
damage *= 1.5
target.modifiers.remove(modifier)
else:
damage *= 1.1
target.hp -= damage
```
这个函数会检查目标是否存在传入的 modifier,如果存在,造成 1.5 倍的伤害值,并从目标的 modifiers 列表中移除该 modifier;如果不存在,造成 1.1 倍的伤害值。
写一个可以刀塔2编辑器中运行的LUA函数:攻击目标时,当其拥有和自身相同modifier_name时,攻击伤害为零,否则造成1.1倍伤害
好的,以下是可以在刀塔2编辑器中运行的 LUA 函数:
```lua
function attack_with_modifier(target, modifier_name)
local damage = 100
if target:HasModifier(modifier_name) then
damage = 0
else
damage = damage * 1.1
end
ApplyDamage({
victim = target,
attacker = self:GetCaster(),
damage = damage,
damage_type = DAMAGE_TYPE_PHYSICAL
})
end
```
这个函数会检查目标是否存在传入的 modifier_name,如果存在,造成 0 伤害;如果不存在,造成 1.1 倍的伤害值。函数中使用了 Dota 2 的 ApplyDamage 函数来造成伤害。注意,这个函数需要在一个技能或单位的脚本中使用,因为它使用了 self:GetCaster() 来获取攻击者。
阅读全文