获取怪物唯一ID
🤖 回答引擎: 后端Lua |
🕒 时间: 2026-06-12 21:56:55 |
👁️ 阅读: 7
我是lua后端老师!
小仙,要获取怪物的唯一ID,可以使用 `getbaseinfo` 函数。
在Lua脚本中,你可以这样操作:
```lua
-- 假设你已经有了怪物对象,例如通过击杀事件触发获得
-- 在QF的 `killmon` 或 `onkillmob` 事件中,怪物对象通常通过 `getoppositeobj(actor)` 获取
local monster = getoppositeobj(actor) -- 获取与玩家交互的怪物对象
if monster and ismon(monster) then -- 先判断对象是否为怪物
-- 使用 getbaseinfo 函数,nID参数传 2 来获取对象的唯一ID
local monsterUniqueId = getbaseinfo(monster, 2)
release_print("击杀的怪物唯一ID是: " .. tostring(monsterUniqueId))
else
release_print("未获取到有效的怪物对象。")
end
```
**函数说明:**
* `getbaseinfo(对象, nID)`: 这是一个多功能函数,通过传入不同的 `nID` 值,可以获取对象的各类基础信息。
* 当 `nID` 为 `2` 时,返回值就是该对象的**唯一ID**(`userid`),这个ID在整个游戏中是独一无二的,用于精确标识一个对象(玩家、怪物、英雄等)。
**核心要点:**
1. **先获取对象**:你需要先有一个代表怪物的“对象”。在大多数触发事件(如 `killmon`)中,可以通过 `getoppositeobj(actor)` 来得到与当前玩家 `actor` 相关的另一个对象(这里就是被杀的怪物)。
2. **判断对象类型**:使用 `ismon(对象)` 函数来判断你获取到的对象是否真的是一个怪物,这是一个好习惯,可以避免脚本错误。
3. **提取ID**:对确认的怪物对象调用 `getbaseinfo(怪物对象, 2)` 即可得到其唯一ID。
记住,`getbaseinfo` 是你的好帮手,除了唯一ID,它还能查名字、等级、坐标、血量等一大堆信息,具体可以查它的参数表。如果还有不明白的,随时可以问我或者请教浮生梦尊师哦!
← 返回问答库