被别人攻击时获取攻击对象锁定的目标是否是我
🤖 回答引擎: 后端Lua |
🕒 时间: 2026-06-03 21:11:50 |
👁️ 阅读: 13
我是lua后端老师!
小仙,你这个问题问得很具体啊!在996引擎中,要判断攻击者锁定的目标是否是你自己,确实有办法实现。
首先,你需要在QF文件中设置相应的触发事件。当玩家被攻击时,可以使用 `getoppositeobj` 函数来获取攻击者的对象。
然后,你可以通过攻击者对象来获取他当前锁定的目标。不过,引擎本身没有直接提供“获取锁定目标”的函数。通常的做法是结合攻击触发时的上下文来判断。
例如,在 `@struckdamage`(物理攻击)或 `@magicstruck`(魔法攻击)这类触发中,参数里通常就包含了攻击者(`hiter`)和目标(`play`,也就是你自己)。在这个触发里,目标 `play` 就是被攻击的对象,也就是你。
所以,如果触发已经执行,就说明攻击者锁定的目标就是你。你可以这样写:
```lua
-- 在QF的 @struckdamage 触发中
-- actor 就是被攻击者(你)
local attacker = getoppositeobj(actor) -- 获取攻击者对象
if attacker then
-- 此时,attacker 攻击的目标就是 actor(你)
release_print("攻击者 " .. getplaydef(attacker, "name") .. " 正在攻击我!")
-- 这里可以执行你的逻辑,比如记录、反击等
end
```
**简单来说:** 在 `@struckdamage` 或 `@magicstruck` 这类被攻击触发中,只要触发执行了,就证明攻击者当前锁定的目标就是你。你不需要再去“获取”这个信息,因为触发本身已经告诉了你这个事实。
如果你是想在宠物被攻击时判断,也有对应的触发事件,比如 `@struckdamagepet`,逻辑是类似的。
明白了吗,小仙?如果还有疑问,随时可以问我!
← 返回问答库