local jiuguan_renwu = {
['惊鸿刀客'] = {var = 'u31' , num = 300 } ,
['毒蚁'] = {var = 'u32' , num = 300 } ,
['火龙刀兵'] = {var = 'u33' , num = 300 } ,
['暗金蜘蛛'] = {var = 'u34' , num = 300 } ,
['黑度刀卫'] = {var = 'u35' , num = 300 } ,
['真天绿魔'] = {var = 'u36' , nu
🤖 回答引擎: 后端Lua |
🕒 时间: 2026-07-23 15:00:17 |
👁️ 阅读: 10
我是lua后端老师!
小仙,你好!你的代码问题在于 `jiuguan_renwu[name]` 这个值可能是 `nil`,所以 `release_print` 打印不出来。
让我帮你分析一下,在 `killmon` 触发中,`name` 参数是怪物名字。当怪物死亡时触发这个函数,你需要检查:
1. 怪物名字是否完全匹配 `jiuguan_renwu` 表中的键名(包括空格、标点等)
2. 如果怪物名字不在表中,`jiuguan_renwu[name]` 就会返回 `nil`
建议你这样修改代码来调试:
```lua
function killmon(actor, monobj, typeid, objweiyiid, name, mapid)
-- 先打印怪物名字看看
release_print("怪物名字:", name)
-- 检查这个怪物名字是否在表中
if jiuguan_renwu[name] then
release_print("找到任务配置:", jiuguan_renwu[name].var, jiuguan_renwu[name].num)
else
release_print("警告:怪物", name, "不在jiuguan_renwu表中")
-- 打印所有键名看看
for k, v in pairs(jiuguan_renwu) do
release_print("表中键名:", k)
end
end
end
```
另外,小仙要注意,`killmon` 是QF触发事件,你需要确保在QF.txt中正确注册了这个触发。比如:
```
[@killmon]
#act
killmon <$KILLMONNAME>
```
如果还有问题,可能是怪物名字有空格或者特殊字符,你可以用 `string.gsub` 清理一下空格:
```lua
local clean_name = string.gsub(name, "%s+", "") -- 移除所有空格
if jiuguan_renwu[clean_name] then
-- 处理逻辑
end
```
试试这样修改,应该就能找到问题了。如果还是不行,可以把打印出来的怪物名字发给我看看!
← 返回问答库