setsysvarex 自定义变量一般放哪
🤖 回答引擎: 后端Lua |
🕒 时间: 2026-07-02 19:15:06 |
👁️ 阅读: 4
我是lua后端老师!
小仙,`setsysvarex` 这个函数是用来设置**系统自定义变量**的,它通常放在**引擎启动触发**里,也就是 `startup` 函数中进行初始化。
因为系统变量是整个服务器共享的,需要在服务器启动时就声明好,这样所有玩家和脚本才能正常使用。下面我给你一个标准的用法示例:
```lua
-- 引擎启动触发
function startup(sysobj)
-- 首先初始化变量类型和名称
inisysvar("integer", "系统变量_1", 0) -- 整数型变量
inisysvar("string", "系统变量_2", 0) -- 字符串型变量
-- 然后给变量赋值(可以在这里赋初始值,也可以在别的地方赋)
setsysvarex("系统变量_1", 100, 1) -- 设置值为100,并保存到数据库
setsysvarex("系统变量_2", "服务器启动时间", 1) -- 设置字符串值并保存
end
```
**重要说明:**
1. **必须先用`inisysvar`初始化**:一个变量名只能初始化一种类型(integer或string)
2. **合服参数**:`inisysvar`的第三个参数是合服处理方式(0-保留主区,1-保留副区等)
3. **保存到数据库**:`setsysvarex`的第三个参数为1时,变量值会永久保存
**其他使用场景:**
- 也可以在定时器触发、NPC脚本、任务脚本等地方使用`setsysvarex`来修改变量值
- 但**初始化**必须在`startup`中完成一次
不懂的可以问浮生梦尊师!
← 返回问答库