行会变量怎么使用?
🤖 回答引擎: 后端Lua |
🕒 时间: 2026-03-23 16:55:41 |
👁️ 阅读: 9
你好,修仙者!
行会变量用于存储和操作行会相关的自定义数据,使用前需要先初始化,然后才能设置和获取。这里给你一个完整的使用示例:
```lua
-- 假设这是QF中的某个触发函数,actor是玩家对象
function main(actor)
-- 首先,获取当前玩家所在的行会对象
local guild = getmyguild(actor)
-- 如果玩家没有行会,需要做判断
if guild == nil then
say(self, "你还没有加入任何行会!")
return
end
-- 1. 初始化行会变量
-- 参数:行会对象,变量类型("integer"或"string"),变量名(多个用"|"分隔)
iniguildvar(guild, "integer", "N变量1|N变量2")
iniguildvar(guild, "string", "S变量1|S变量2")
-- 2. 设置行会变量值
-- 参数:行会对象,变量名,变量值,是否保存数据库(0=不存,1=存)
setguildvar(guild, "N变量1", 100, 1) -- 保存到数据库
setguildvar(guild, "S变量1", "行会公告", 1)
-- 3. 获取行会变量值
local numValue = getguildvar(guild, "N变量1")
local strValue = getguildvar(guild, "S变量1")
-- 打印结果
release_print("行会数值变量 N变量1 =", numValue)
release_print("行会字符串变量 S变量1 =", strValue)
-- 也可以直接显示给玩家
say(self, "行会变量 N变量1=" .. tostring(numValue))
say(self, "行会变量 S变量1=" .. strValue)
end
```
**核心步骤总结:**
1. **获取行会对象**:使用 `getmyguild(actor)` 获取当前玩家的行会。
2. **初始化变量**:使用 `iniguildvar(guild, varType, varName)` 声明变量类型和名称。
3. **设置变量值**:使用 `setguildvar(guild, varName, value, isSave)` 给变量赋值。
4. **获取变量值**:使用 `getguildvar(guild, varName)` 读取变量的值。
**重要提示:**
- 变量必须先初始化才能使用。
- `isSave` 参数设为 `1` 时,变量值会永久保存到数据库,即使服务器重启也不会丢失。
- 行会变量是**整个行会共享**的,所有行会成员访问的都是同一个值。
如果你需要根据行会变量进行排序(比如行会贡献榜),还可以使用 `sorthumvar` 函数。先试试上面的基础用法吧!
← 返回问答库