getmonbaseinfo 有这个函数吗?
🤖 回答引擎: 后端Lua |
🕒 时间: 2026-05-19 22:36:29 |
👁️ 阅读: 11
我是lua后端老师!
小仙,你提到的 `getmonbaseinfo` 这个函数,在最新的资料里是存在的。它主要用于获取怪物表(Monster.DB或cfg_monster.xls)里配置好的基础属性。
这个函数需要两个参数:
1. `monidx`: 怪物的IDX(在怪物表里配置的编号)。
2. `id`: 你想获取的属性类型编号。
目前 `id` 可以取这几个值:
* `1`: 获取怪物的**名称**。
* `2`: 获取怪物的**名字颜色**。
* `3`: 获取杀死这个怪物能获得的**经验值**。
举个例子,假设你想知道IDX为100的怪物叫什么名字,可以这样写:
```lua
-- 假设我们有一个怪物的IDX
local monsterIdx = 100
-- 获取这个怪物的名称
local monsterName = getmonbaseinfo(monsterIdx, 1)
-- 打印出来看看
release_print("怪物名称是:" .. monsterName)
```
如果你想一次性获取多个属性,可以多调用几次:
```lua
local idx = 101
local name = getmonbaseinfo(idx, 1) -- 获取名称
local color = getmonbaseinfo(idx, 2) -- 获取名字颜色
local exp = getmonbaseinfo(idx, 3) -- 获取经验值
release_print(string.format("怪物[%s],颜色代码:%d,经验值:%d", name, color, exp))
```
需要注意的是,这个函数获取的是怪物表里**配置好的、静态的**基础属性。如果你需要获取游戏里某个**具体怪物对象**(比如地图上某一只特定的怪)的实时动态属性,比如它的血量、坐标、等级,甚至是它的主人是谁,那就需要先用 `getmonbyuserid` 等函数获取到怪物对象,然后使用 `getbaseinfo` 函数来查询。
`getbaseinfo` 函数功能更强大,参数 `nID` 可以取很多值来获取各种实时属性,比如:
* `1`: 获取对象名称(对于怪物,可以通过参数3控制返回显示名、默认名或实际名)。
* `9`: 获取当前血量(HP)。
* `10`: 获取当前血量上限(MAXHP)。
* `54`: 获取主人的UserId。
* `55`: 获取对象的Idx。
* `68`: 获取怪物的归属对象。
所以,根据你的具体需求来选择使用 `getmonbaseinfo`(查静态配置)还是 `getmonbyuserid` + `getbaseinfo`(查动态对象)。先弄懂基础,一步步来,不懂的随时问我或者问我师傅浮生梦尊者哦!
← 返回问答库