详细讲解一下sethumvar的规则
🤖 回答引擎: 热血江湖Lua |
🕒 时间: 2026-05-12 19:23:27 |
👁️ 阅读: 1
`sethumvar` 用于设置引擎变量,分为系统变量和个人变量。
**语法:**
`sethumvar(actor, varName, varValue)`
**参数说明:**
- `actor`:玩家对象。设置个人变量时填玩家ID,设置系统变量时填 `0`。
- `varName`:变量名,遵循特定前缀规则。
- `varValue`:变量值,根据变量类型可以是字符串或整数。
**支持的变量类型及规则:**
| 变量类型 | 前缀 | 说明 | 存储位置 | 数量限制 | 下线保存 |
| :--- | :--- | :--- | :--- | :--- | :--- |
| 字符型全局变量 | `A` | 全服共享 | 内存 | A0 - A999 (1000个) | 是 |
| 数字型全局变量 | `G` | 全服共享,支持Int64 | 内存 | G0 - G999 (1000个) | 是 |
| 字符型个人变量 | `S` | 个人临时变量 | 内存 | S0 - S999 (1000个) | 否 |
| 数字型个人变量 | `N` | 个人临时变量 | 内存 | N0 - N999 (1000个) | 否 |
| 数字型个人变量 | `U` | 个人永久变量 | 数据库 | U0 - U999 (1000个) | 是 |
| 字符型个人变量 | `T` | 个人永久变量 | 数据库 | T0 - T999 (1000个) | 是 |
| 自定义字符临时变量 | `S$` | 自定义,名称可自由定义 | 内存 | 无明确限制 | 否(需调用 `savehumvar` 保存) |
| 自定义数字临时变量 | `N$` | 自定义,名称可自由定义 | 内存 | 无明确限制 | 否(需调用 `savehumvar` 保存) |
**使用示例:**
```lua
-- 设置系统变量
sethumvar(0, "A1", "AAA") -- 全局字符变量
sethumvar(0, "G1", 111) -- 全局数字变量
-- 设置个人变量
sethumvar(actor, "N1", 1) -- 个人数字临时变量
sethumvar(actor, "S1", "value") -- 个人字符临时变量
sethumvar(actor, "U1", 100) -- 个人数字永久变量
sethumvar(actor, "T1", "text") -- 个人字符永久变量
-- 设置自定义临时变量
sethumvar(actor, "N$自定义数字", 123)
sethumvar(actor, "S$自定义字符", "内容")
```
**重要说明:**
1. `S` 和 `N` 变量默认下线不保存。如需保存自定义临时变量(`S$`/`N$`),必须在设置后调用 `savehumvar(actor, "变量名")` 接口。
2. 个人标识变量(标记变量)是另一种类型,用于记录0/1状态,使用 `set(actor, 索引, 值)` 和 `check(actor, 索引, 值)` 进行操作,与 `sethumvar` 无关。
← 返回问答库