变量模块
通过以下两种变量,CraftX 为用户提供了完善的变量管理能力,满足不同场景下的使用需求
自定义变量
- 配置:
plugins\CraftX\variable - 特点:可配置默认值、范围及定时任务。
- 适用场景:货币系统、玩家数据记录、称号管理等需要规范化管理的变量场景。
配置
yaml
摩拉:
name: "摩拉"
default: 0
# 转账条件,支持使用 core 表达式。 "true" 表示不限制
pay-condition: true
绑定点券:
default: 0
pay-condition: true
# 绑定货币
bind: "points"
绑定金币:
default: 0
pay-condition: true
bind: "points"
绑定摩拉:
default: 0
pay-condition: true
bind: "摩拉"
成就点:
name: "成就点"
default: 0yaml
体力:
name: "体力"
# 默认值
default: 160
# 最大值,默认无限制
max: 160
# 最小值,默认无限制
min: 0
# 定时任务
task:
# 默认每五分钟恢复1点体力
体力恢复:
cron: "0 0/5 * * * ?"
# n 是原数值变量
value: "n+1"
# 每天十二点重置体力
体力重置:
cron: "0 0 0 ? * ?"
value: "160"yaml
"称号":
name: "称号"
# 默认称号
default: "&a普通玩家"
# 按照条件生效默认值,玩家离线时不生效
default-rules:
"&bVIP1":
- "permission('vip.vip1')"
"&bVIP2":
- "permission('vip.vip2')"yaml
"恶魔士兵击杀":
name: "恶魔士兵击杀"指令:
/variable pay <玩家> <变量名> <数值> # 数值转账
/variable add <玩家> <变量名> <数值> # 增加变量值
/variable take <玩家> <变量名> <数值> # 扣除变量值
/variable remove <玩家> <变量名> # 删除变量值
/variable set <玩家> <变量名> <数据> # 设置变量值
/variable info <玩家> # 变量详情
/variable lead <变量> <页数> # 变量排行
/variable reset <player/variable> <玩家名/变量名> # 重置数据
/variable backup # 备份数据
/variable import <文件名> <玩家名(可选)> # 导入备份变量
| 内容 | 变量 |
|---|---|
| 变量名 | %variable_name_变量名% |
| 变量数据 | %variable_info_变量名% |
| 变量最大值 | %variable_max_变量名% |
| 变量最小值 | %variable_min_变量名% |
| 变量全服统计 | %variable_count_变量名% |
全服统计基于 SQL,不适合高频使用。需频繁读写请启用 Redis 并使用公共变量
表达式:
javascript
variable.get('摩拉') // 获取变量值
variable.add('摩拉', 50) // 增加变量值
variable.take('摩拉', 50) // 扣除变量值
variable.set('摩拉', 50) // 设置变量值
variable.remove('摩拉') // 删除变量值
variable.has('摩拉', 1000) // 是否拥有指定数量临时变量
- 特点:无需预设参数等创建工作,直接通过指令或表达式动态操作,支持数据过期时间。
- 适用场景:快速处理临时数据,灵活应对动态需求。
指令:
/tempvar get <玩家> <变量名> # 获取变量值
/tempvar add <玩家> <变量名> <数值> <时间(可选)> # 增加变量值
/tempvar take <玩家> <变量名> <数值> <时间(可选)> # 扣除变量值
/tempvar set <玩家> <变量名> <数据> <时间(可选)> # 设置变量值
/tempvar remove <玩家> <变量名> <数据> # 删除变量值
/tempvar info <玩家> # 变量详情
/tempvar lead <变量> <页数> # 变量排行变量
| 内容 | 变量 |
|---|---|
| 玩家变量数据 | %tempvar_info_变量名% |
| 全服变量统计 | %tempvar_count_变量名% |
全服统计基于 SQL,不适合高频使用。需频繁读写请启用 Redis 并使用公共变量
表达式:
javascript
tempvar.get('摩拉') // 获取变量值
tempvar.add('摩拉', 50) // 增加变量值
tempvar.take('摩拉', 50) // 扣除变量值
tempvar.remove('摩拉') // 删除变量值
tempvar.set('摩拉', 50) // 设置变量值
tempvar.set('冷却组1', 1, 10000) // 设置临时变量值,单位: 毫秒
tempvar.expire('冷却组1') // 剩余到期时间,单位: 毫秒
tempvar.expire('冷却组1', 100000) // 设置到期时间,单位: 毫秒