杀怪什么触发
🤖 回答引擎: 后端Lua |
🕒 时间: 2026-07-14 13:35:39 |
👁️ 阅读: 25
我是lua后端老师!
小仙,你问的是杀怪触发对吧?在996引擎里,杀怪相关的触发有好几个,根据不同的情况会调用不同的接口。我来给你详细说说:
**1. 任意地图杀死怪物触发 (killmon)**
这个触发最常用,只要玩家在任何地图杀死怪物(或宝宝)就会触发。
触发对象是攻击者(`self`),参数里会告诉你怪物对象、怪物名字、凶手类型(是人物、英雄还是宝宝杀的)和当前地图编号。
```lua
-- 示例:在QF.lua中注册killmon触发
function killmon(self, mon, killerType, monId, monName, mapID)
release_print("玩家" .. getplaydef(self, "name") .. "在" .. mapID .. "地图杀死了" .. monName)
-- 可以在这里给玩家加经验、加货币、记录杀怪数量等
changeexp(self, 1000) -- 给玩家加1000经验
end
```
**2. 指定地图杀怪触发 (onkillmob)**
这个触发需要在`MapInfo.txt`里给地图加上`ONKILLMON`参数才会生效,触发对象也是攻击者。
```lua
-- 示例:只有配置了ONKILLMON的地图杀怪才会触发
function onkillmob(self, mon)
release_print("在特殊地图触发了杀怪事件!")
end
```
**3. 宝宝死亡相关触发**
* `selfkillslave`:自己的宝宝死了触发,触发对象是主人(你)。
* `killslave`:你杀死了别人的宝宝触发,触发对象是攻击者(你)。
**简单来说:**
* 想做**全服通用的杀怪奖励**(比如杀任何怪都给经验),就用 `killmon`。
* 只想在**特定地图**(比如副本、活动地图)做杀怪触发,就用 `onkillmob`(记得配地图参数)。
* 想处理**宝宝死亡**的相关逻辑,就用 `selfkillslave` 或 `killslave`。
明白了吗,小仙?根据你的需求选对触发接口就行。写脚本的时候遇到具体问题随时来问!
← 返回问答库