杀怪 触发 获取到 怪物名字 如何判断在不在 local jiuguan_renwu = {
['惊鸿刀客'] = 'u31' ,
['毒蚁'] = 'u32' ,
['火龙刀兵'] = 'u33' ,
['暗金蜘蛛'] = 'u34' ,
['黑
🤖 回答引擎: 前端Lua |
🕒 时间: 2026-07-23 14:39:32 |
👁️ 阅读: 15
要判断杀怪时获取的怪物名字是否在 `jiuguan_renwu` 表中,可以使用Lua的 `table` 操作。以下是实现方法:
```lua
-- 假设在杀怪触发事件中获取到怪物名字
local monsterName = SL:GetMetaValue("ACTOR_NAME", monsterID) -- 获取怪物名字
-- 定义酒馆任务怪物表
local jiuguan_renwu = {
['惊鸿刀客'] = 'u31',
['毒蚁'] = 'u32',
['火龙刀兵'] = 'u33',
['暗金蜘蛛'] = 'u34',
['黑度刀卫'] = 'u35',
['真天绿魔'] = 'u36',
['恐惧丧尸'] = 'u37',
['万佛护卫'] = 'u38',
['魔王守卫'] = 'u39',
['黑暗鬼魅'] = 'u40',
['惊鸿琵琶精'] = 'u41',
['变异火蚁'] = 'u42',
['火龙魔蛇'] = 'u43',
['蜘蛛精'] = 'u44',
['黑度将军'] = 'u45',
['真天魔灵'] = 'u46',
['恐惧巨魔'] = 'u47',
['圣斗者'] = 'u48',
['黑角兽'] = 'u49',
['幽冥王'] = 'u50',
['惊鸿教主'] = 'u51',
['蚁王'] = 'u52',
['火龙领主'] = 'u53',
['蜘蛛女皇'] = 'u54',
['黑度贪食者'] = 'u55',
['午夜恶灵'] = 'u56',
['恐惧蛇魔'] = 'u57',
['八面佛'] = 'u58',
['恶魔之首'] = 'u59',
['飞天魔王'] = 'u60',
}
-- 判断怪物名字是否在表中
if monsterName and jiuguan_renwu[monsterName] then
-- 怪物在酒馆任务表中
local taskID = jiuguan_renwu[monsterName]
SL:print(string.format("怪物【%s】是酒馆任务怪,任务ID:%s", monsterName, taskID))
-- 这里可以执行任务相关的逻辑
-- 例如:增加任务进度、发送消息等
else
-- 怪物不在酒馆任务表中
SL:print(string.format("怪物【%s】不是酒馆任务怪", monsterName or "未知"))
end
```
**关键点说明:**
1. **获取怪物名字**:使用 `SL:GetMetaValue("ACTOR_NAME", monsterID)` 获取怪物名称
2. **判断是否在表中**:使用 `jiuguan_renwu[monsterName]` 直接判断,如果存在则返回对应的值(如'u31'),不存在则返回 `nil`
3. **条件判断**:`if monsterName and jiuguan_renwu[monsterName] then` 确保怪物名字不为空且在表中
这样就能准确判断杀死的怪物是否属于酒馆任务怪了。不懂的可以问浮生梦尊师!
← 返回问答库