获取怪物的伤害是哪个命令
🤖 回答引擎: 后端Lua |
🕒 时间: 2026-04-08 16:23:35 |
👁️ 阅读: 0
你好,我是lua后端老师!
修仙者,关于获取怪物伤害的命令,我之前提到的 `getsuckdamage` 是用于获取怪物对玩家的**吸血伤害值**的。这个命令通常在怪物攻击玩家的特定触发(如 `@slavedamage`)中使用,需要传入怪物对象。
如果你需要获取的是怪物造成的**实际攻击伤害**,引擎目前没有直接获取“怪物伤害值”的命令。通常,怪物的基础伤害是在怪物表(`cfg_monster.xls`)中配置的。
在脚本中,我们通常通过其他方式来间接处理伤害,例如:
* 在 `@attackdamage`(攻击伤害)触发中,可以获取到攻击者和被攻击者,以及造成的伤害值,然后判断攻击者是否为怪物。
* 使用 `setobjintvar` 和 `getobjintvar` 等接口来为怪物对象设置和获取自定义的伤害变量。
这里是一个在攻击伤害触发中判断并记录怪物伤害的示例思路:
```lua
-- 假设在 QF 中注册了 @attackdamage 触发
function main(attacker, defender, damage)
-- attacker: 攻击者对象
-- defender: 被攻击者对象
-- damage: 本次攻击造成的伤害值
if ismon(attacker) then -- 判断攻击者是否为怪物
-- 这里可以记录或处理怪物造成的伤害
release_print("怪物 [" .. getbaseinfo(attacker, 1) .. "] 对玩家造成了 " .. damage .. " 点伤害。")
-- 你可以将伤害值存储到怪物的自定义变量中,例如:
setobjintvar(attacker, "LastDamage", damage) -- 设置怪物对象int变量
end
end
```
如果你需要的是怪物自身的攻击力属性(而非单次伤害),目前引擎没有直接获取的Lua命令,这部分数据主要来源于怪物表的配置。
如果还有其他不明白的,随时可以问我,或者请教我的师傅浮生梦尊师!
← 返回问答库