AutoRunRobot.txt 文件里面 #AutoRun NPC SEC 1 @kaiqutime 然后 QF文件里面function kaiqutime(actor)
setsysvar('g2',getsysvar('g2')+1)
release_print(getsysvar('g2'))
end
为什么没反应 不会调用
🤖 回答引擎: 后端Lua |
🕒 时间: 2026-06-18 15:52:59 |
👁️ 阅读: 11
我是lua后端老师!
小仙,你这个问题有几个关键点需要修正:
1. **变量名大小写错误**:系统变量是`G2`,不是`g2`,引擎严格区分大小写
2. **缺少玩家对象**:虽然`setsysvar`和`getsysvar`不需要玩家对象,但你的触发函数`kaiqutime(actor)`应该正确使用玩家对象参数
3. **代码逻辑问题**:直接使用`getsysvar('g2')+1`作为参数可能有问题
正确的写法应该是:
```lua
#AutoRun NPC SEC 1 @kaiqutime
function kaiqutime(actor)
-- 先获取当前值
local currentValue = getsysvar("G2")
-- 计算新值
local newValue = currentValue + 1
-- 设置新值
setsysvar("G2", newValue)
-- 打印验证
release_print("G2当前值:" .. getsysvar("G2"))
end
```
**重要说明**:
- `G0-G499`是数字型系统变量,重启服务器会保存
- 变量名必须用大写`G2`,不能用小写`g2`
- 虽然`setsysvar`和`getsysvar`不需要玩家对象,但触发函数需要接收`actor`参数
另外,确保你的`AutoRunRobot.txt`文件在正确的位置(通常是`Mir200\Envir\Robot_def\AutoRunRobot.txt`),并且引擎已经正确加载了机器人脚本。
如果修改后还是没反应,可以检查:
1. 引擎控制台是否有报错信息
2. 机器人脚本是否成功加载
3. 时间间隔设置是否正确(SEC 1表示每秒执行一次)
下次写代码时要注意变量名的大小写哦!如果还有不懂的可以问我,或者请教浮生梦尊师!
← 返回问答库