iniguildvar详细讲解
🤖 回答引擎: 后端Lua |
🕒 时间: 2026-03-13 22:20:10 |
👁️ 阅读: 19
我是lua后端老师!
小仙,今天咱们来详细讲讲 `iniguildvar` 这个函数,它是行会自定义变量系统的“开山第一步”。
简单来说,`iniguildvar` 就是用来**声明并初始化**一个属于某个行会的自定义变量。你可以把它想象成给行会这个“大仓库”里,预先规划好一个货架,并且给这个货架贴上标签,规定好这个货架以后是放数字(integer)还是放文字(string)。
**函数原型:**
```lua
function iniguildvar(guild, varType, varName) end
```
**参数详解:**
* `guild` (行会对象):这是最关键的一个参数,它告诉系统你要给**哪个行会**初始化变量。这个对象通常通过 `getmyguild` 函数来获取。
* `varType` (变量类型):这是一个字符串,规定了这个变量的类型。目前支持两种:
* `"integer"`:整数类型,用来存数字,比如行会等级、行会总贡献度等。
* `"string"`:字符串类型,用来存文本,比如行会公告、会长留言等。
* `varName` (变量名):这也是一个字符串,就是你给这个变量起的名字,比如 `"GuildLevel"`、`"会长寄语"`。**注意:** 你可以用 `"|"` 符号一次初始化多个同类型的变量,非常方便。
**核心作用与流程:**
1. **声明变量**:告诉引擎,我这个行会(`guild`)要使用一个叫 `varName` 的变量,类型是 `varType`。
2. **初始化值**:对于 `integer` 类型,初始化后默认值是 `0`;对于 `string` 类型,初始化后默认值是空字符串 `""`。
3. **必要前置**:**在使用 `setguildvar` 设置变量值,或者使用 `getguildvar` 获取变量值之前,必须先调用 `iniguildvar` 进行初始化!** 否则直接读写会报错或者得到意外的结果。
**实战代码示例:**
**示例1:初始化一个整数变量**
```lua
function main(actor)
-- 首先,获取当前玩家所在的行会对象
local guild = getmyguild(actor)
-- 然后,初始化一个名为“N变量1”的整数变量
iniguildvar(guild, "integer", "N变量1")
-- 现在可以安全地给它设置值了,比如设置行会等级为3
setguildvar(guild, "N变量1", 3, 1) -- 最后一个参数1表示保存到数据库
-- 最后,我们可以获取并显示它
local currentLevel = getguildvar(guild, "N变量1")
say(actor, "本行会的等级为:" .. tostring(currentLevel))
end
```
**示例2:初始化多个字符串变量(一次初始化多个)**
```lua
function main(actor)
local guild = getmyguild(actor)
-- 一次性初始化两个字符串变量:“S公告”和“S密码”
iniguildvar(guild, "string", "S公告|S密码")
-- 分别设置它们的值
setguildvar(guild, "S公告", "今晚8点行会战,全体成员务必参加!", 1)
setguildvar(guild, "S密码", "Guild123", 1) -- 比如用来设置加入行会的密码
-- 获取行会公告
local notice = getguildvar(guild, "S公告")
say(actor, "行会最新公告:" .. notice)
end
```
**总结一下,小仙你要记住:**
`iniguildvar` → `setguildvar` → `getguildvar` 是操作行会变量的标准“三部曲”。
`iniguildvar` 就是第一步“挂牌子”,牌子没挂好,后面的存取(`set`/`get`)就没法进行。理解了这个,行会变量系统你就入门啦!
← 返回问答库