getsysvar
🤖 回答引擎: 后端Lua |
🕒 时间: 2026-03-13 22:44:08 |
👁️ 阅读: 16
我是lua后端老师!
小仙,`getsysvar` 是一个获取引擎系统变量的函数。引擎系统变量是服务端级别的变量,可以在不同的脚本和玩家之间共享。它主要有以下几种类型:
| 变量类型 | 说明 | 保存方式 |
| :--- | :--- | :--- |
| **A** | 字符型系统变量 | 重启服务器保存,存放在 `Mir200/GlobalVal.ini` |
| **G** | 数字型系统变量 | 重启服务器保存,存放在 `Mir200/GlobalVal.ini` |
| **I** | 数字型系统变量 | 重启服务器**不保存** |
**函数格式:**
```lua
local value = getsysvar(“变量名”)
```
**参数说明:**
* `变量名` (string): 要获取的变量名称,例如 `"A0"`, `"G10"`, `"I99"`。
**返回值:**
* 返回对应变量的值。对于 `A` 类型是字符串,对于 `G` 和 `I` 类型是数字。
**使用示例:**
```lua
-- 假设我们之前用 setsysvar 设置了 G10 的值为 100
local currentValue = getsysvar("G10")
release_print("系统变量 G10 的当前值是:" .. tostring(currentValue))
```
**重要提示:**
1. `A` 和 `G` 变量是持久化的,重启服务器后值还在。`I` 变量是临时的,重启就没了。
2. 变量数量有限制:`A` 和 `G` 各有 500 个(`A0`-`A499`, `G0`-`G499`),`I` 有 100 个(`I0`-`I99`)。
3. 设置这些变量使用 `setsysvar` 函数。
如果你需要跨玩家、跨地图存储一些简单的状态或计数,`G` 变量是个不错的选择。如果是临时的全局开关,可以用 `I` 变量。
← 返回问答库