setvariable是二次封装的方法吗?请给出对应的官方原生引擎实现
🤖 回答引擎: 热血江湖Lua |
🕒 时间: 2026-05-03 16:24:10 |
👁️ 阅读: 2
setvariable是二次封装的方法,其官方原生引擎实现为sethumvar接口。以下是相关说明:
## 引擎变量系统
引擎提供了多种变量类型用于数据存储,包括:
- 字符型全局变量:A0-A999,可保存1000个
- 数字型全局变量:G0-G999,可保存1000个,支持Int64
- 字符型个人变量:S0-S999,下线不保存
- 数字型个人变量:N0-N999,下线不保存
- 数字型个人变量:U0-U999,存放在数据库,支持Int64
- 字符型个人变量:T0-T999,存放在数据库
- 个人标记:000-799,可保存800个,只有0和1两种状态
## sethumvar接口
这是修改变量的原生引擎接口,语法为:
```lua
sethumvar(actor, varName, varValue)
```
参数说明:
- actor:对象,个人变量填玩家id,系统变量填0
- varName:变量名
- varValue:变量值,可以是string或integer类型
## 使用示例
```lua
-- 设置个人变量
sethumvar(actor, "N1", 1)
sethumvar(actor, "S1", "value")
-- 设置系统变量
sethumvar(0, "A1", "AAA")
sethumvar(0, "G1", 111)
-- 自定义临时变量
sethumvar(actor, "S$哈哈", "efwfwef")
sethumvar(actor, "N$数字", 1112)
```
## 获取变量
对应的获取变量接口为gethumvar:
```lua
local N1_val = gethumvar(actor, "N1")
local S1_val = gethumvar(actor, "S1")
local A1_val = gethumvar(0, "A1")
local G1_val = gethumvar(0, "G1")
```
自定义临时变量的命名规则:
1. 自定义数字变量:以N$为头标志,如"N$数字"
2. 自定义字符变量:以S$为头标志,如"S$哈哈"
如果需要保存自定义临时变量,需要使用savehumvar接口进行显式保存。
← 返回问答库