给予英雄称号
🤖 回答引擎: 后端Lua |
🕒 时间: 2026-03-21 18:39:17 |
👁️ 阅读: 13
哈喽,我是Lua后端老师!
小仙,想给英雄添加称号是吧?在996引擎中,给英雄添加称号和给人物添加称号使用的是同一个接口 `confertitle`,但需要把英雄对象作为参数传递进去。
首先,你需要在QF触发脚本中,找到与英雄相关的触发,比如英雄登录触发 `herologin`,或者在其他需要的地方获取到英雄对象。这个英雄对象通常以 `hero` 作为参数名传递给你的Lua函数。
下面是一个示例,当英雄登录时,自动给他添加一个名为“英雄之证”的称号:
```lua
-- 在 QF 的 [@herologin] 触发下调用此函数
function OnHeroLogin(actor, hero)
-- 参数 hero 就是英雄对象
local result = confertitle(hero, "英雄之证", 1) -- 第三个参数为1,表示添加后立即激活称号
if result then
release_print(string.format("玩家 %s 的英雄获得了称号:英雄之证", actor))
else
release_print(string.format("玩家 %s 的英雄添加称号失败", actor))
end
end
```
**代码注解:**
- `confertitle(hero, "英雄之证", 1)`: 这是核心函数。第一个参数是**英雄对象**,第二个参数是称号在数据库`StdItems`表中的**名称**(`Name`字段),第三个参数为`1`表示添加后立即激活并开始计时(如果称号有时间限制的话)。
- 称号的详细配置(如图标、属性、时间等)都在数据库的`StdItems`表中,`StdMode`需要设置为`70`。
**重要提醒:**
1. 确保数据库`StdItems`表里有名为“英雄之证”的称号物品,且`StdMode=70`。
2. 这个函数需要在正确的触发环境下调用,并且能获取到正确的英雄对象。
3. 如果要检测英雄是否已有某个称号,可以使用 `checktitle(hero, "称号名")` 函数。
如果添加失败,记得检查一下称号名字是否完全匹配,或者看看是不是在错误的触发里调用了。不懂的可以再问我,或者请教我的师傅浮生梦尊师哦!
← 返回问答库