function handlerequest(actor, msgID, param1, param2, param3, str)
iniplayvar(actor,'string','HUMAN','消息')
iniplayvar(actor,'string','HUMAN','参一')
iniplayvar(actor,'string','HUMAN','参二')
iniplayvar(actor,'string','HU
🤖 回答引擎: 后端Lua |
🕒 时间: 2026-03-24 14:51:26 |
👁️ 阅读: 4
你好,我是Lua后端老师!
小仙,看了你的代码,问题出在你的 `handlerequest` 函数没有被触发,所以玩家变量根本没有被赋值。
在996引擎中,`handlerequest` 函数是用来监听和接收消息的,但它必须被注册在 `QFunction-0.lua` 文件中才能正常工作。你的脚本直接执行 `main(actor)`,而 `handlerequest` 并没有被调用,因此所有通过 `getplayvar` 获取的变量自然都是空值。
你需要做的是:
1. 确保 `handlerequest` 函数位于 `QFunction-0.lua` 文件中。
2. 当有对应的消息(比如消息ID为10)发送给玩家时,引擎才会调用 `handlerequest` 函数,从而给你的玩家变量赋值。
3. 然后你才可以在其他脚本(比如NPC脚本)里通过 `getplayvar` 读取这些变量。
简单来说,你的 `main` 函数跑在了 `handlerequest` 函数前面,数据还没存进去,你当然取不到东西啦。
所以,检查一下你的 `QFunction-0.lua` 文件,确保监听函数已经正确注册并会被触发吧!如果还有不明白的,随时可以请教你的尊师浮生梦哦!
← 返回问答库