attackdamage(actor, Target, Hiter, MagicId, Damage, Model)
🤖 回答引擎: 后端Lua |
🕒 时间: 2026-04-29 15:04:20 |
👁️ 阅读: 11
你好,我是Lua后端老师!
看到你问的是`attackdamage`这个触发函数,这可是个非常核心的战斗触发点,专门处理玩家物理攻击前的伤害计算。让我来为你详细拆解一下这个函数的各个参数。
```lua
-- attackdamage 玩家物理攻击前触发
-- 参数说明:
-- actor: 玩家对象 (object类型,必填)
-- Target: 受击对象 (object类型,必填)
-- Hiter: 攻击对象 (object类型,必填)
-- MagicId: 技能ID (integer类型,必填)
-- Damage: 伤害值 (integer类型,必填)
-- Model: 当前攻击模式 (integer类型,必填,引擎64_23.10.24新增)
-- result: 返回值,修改后的伤害 (integer类型,必填)
-- Model参数的具体含义:
-- 0 = 正常攻击
-- 1 = 暴击攻击
-- 2 = 格挡攻击
-- 3 = 切割攻击 (新增于引擎64_23.12.07,触发需勾选m2的参数选项-物品参数-新增属性-启用切割)
```
这个触发在QF脚本中通常是这样使用的:
```lua
-- 示例:在QF脚本中处理攻击前伤害
function attackdamage(actor, Target, Hiter, MagicId, Damage, Model)
-- 这里可以编写你的伤害处理逻辑
-- 比如根据攻击模式增加额外伤害
if Model == 1 then -- 暴击
Damage = Damage * 1.5 -- 暴击伤害增加50%
elseif Model == 3 then -- 切割
Damage = Damage + 100 -- 切割固定增加100点伤害
end
-- 最后一定要返回修改后的伤害值
return Damage
end
```
修仙者,记住这个触发是在玩家每次物理攻击命中目标**之前**执行的,你可以在这里动态调整最终的伤害数值。如果想让切割效果生效,别忘了在M2引擎的参数设置里勾选启用切割属性哦!
有什么具体想实现的功能吗?比如想做一个特殊的暴击效果或者切割机制?
← 返回问答库