关于变量的全部函数,请全部列举
🤖 回答引擎: 后端Lua |
🕒 时间: 2026-03-13 16:19:50 |
👁️ 阅读: 6
我是lua后端老师!
小仙,关于变量的函数确实不少,我来帮你全部梳理一下。这些函数主要分为几大类:玩家自定义变量、全局变量、行会变量、环境变量,以及一些相关的操作函数。
## 1. 玩家自定义变量
这些函数用于操作单个玩家的自定义变量:
```lua
-- 初始化玩家自定义变量
iniplayvar(actor, varType, varName) -- varType: "integer"或"string"
-- 设置玩家自定义变量
setplayvar(actor, varType, varName, value, isSave) -- isSave: 0=不存储,1=存储
-- 获取玩家自定义变量
getplayvar(actor, varName)
-- 清理玩家自定义变量
clearhumcustvar(actor, varName) -- actor传入"*"表示清理所有玩家
```
## 2. 全局变量(系统变量)
这些函数用于操作全局的、所有玩家共享的变量:
```lua
-- 设置全局变量
setsysvar(varName, varValue)
-- 获取全局变量
getsysvar(varName)
-- 设置全局自定义变量(可保存)
setsysvarex(varName, varValue, isSave) -- isSave: 是否保存(0/1)
-- 获取全局自定义变量
getsysvarex(varName)
-- 清理全局自定义变量
clearglobalcustvar(varName) -- varName传入"*"表示清理所有变量
```
## 3. 行会自定义变量
这些函数用于操作行会相关的变量,需要行会对象作为参数:
```lua
-- 初始化行会自定义变量
iniguildvar(guild, varType, varName)
-- 设置行会自定义变量
setguildvar(guild, varName, value, isSave)
-- 获取行会自定义变量
getguildvar(guild, varName)
-- 清理行会自定义变量
clearguildcustvar(guild, varName) -- guild传入"*"表示清理所有行会
```
## 4. 环境变量
这些函数用于操作地图环境中的变量:
```lua
-- 设置环境整数变量
setenvirintvar(mapid, X, Y, varName, value)
-- 获取环境整数变量
getenvirintvar(mapid, X, Y, varName)
-- 设置环境字符串变量
setenvirstrvar(mapid, X, Y, varName, value)
-- 获取环境字符串变量
getenvirstrvar(mapid, X, Y, varName)
```
## 5. 对象变量
这些函数用于操作玩家、怪物等游戏对象的变量:
```lua
-- 设置对象整数变量
setobjintvar(obj, varName, value)
-- 获取对象整数变量
getobjintvar(obj, varName)
-- 设置对象字符串变量
setobjstrvar(obj, varName, value)
-- 获取对象字符串变量
getobjstrvar(obj, varName)
```
## 6. 变量操作函数
这些是辅助性的变量操作函数:
```lua
-- 自定义变量排序
sorthumvar(varName, playflag, sortflag, count)
-- playflag: 0-所有玩家,1-在线玩家,2-行会
-- sortflag: 0-升序,1-降序
-- count: 获取的数据量,为空或0取所有
-- 获取列表字符串
getliststring(listName, index)
-- 获取字符串位置
getstringpos(str, subStr)
```
## 7. 其他相关变量函数
还有一些特殊用途的变量函数:
```lua
-- 设置玩家永久属性(类似变量)
setusebonuspoint(actor, nIndex, nvalue)
-- 获取玩家永久属性
getusebonuspoint(actor, nIndex)
-- 设置物品来源(记录变量信息)
setthrowitemly(jsonStr)
setthrowitemly2(actor, item, jsonStr)
-- 获取物品来源
getthrowitemly(actor, item)
```
## 使用示例
```lua
-- 玩家变量示例
local varName = "玩家自定义变量_1"
iniplayvar(actor, "integer", varName)
setplayvar(actor, "integer", varName, 996, 1)
release_print("玩家变量:", getplayvar(actor, varName))
-- 行会变量示例
local guild = getmyguild(actor)
iniguildvar(guild, "integer", "N变量1")
setguildvar(guild, "N变量1", 997, 1)
release_print("行会变量:", getguildvar(guild, "N变量1"))
```
小仙,这些就是关于变量的全部函数了。记住,使用变量前一定要先初始化(`iniplayvar`、`iniguildvar`等),否则可能会出错。变量是Lua脚本中非常重要的部分,熟练掌握它们能让你的脚本更加强大和灵活!
如果还有不明白的地方,随时问我哦!
← 返回问答库