成就、变量与标记
本页收录 GlobalVariableBuiltins 和成就状态读取函数,主要覆盖全局变量、玩家变量、临时变量、标记、时间标记以及跨成就状态查询。
设置全局变量
- 用法:
设置全局变量(变量名, 值) - 参数:变量名、值
- 返回值:
Object
text
设置全局变量("活动阶段", "第二周")
发送消息("&a已写入全局阶段")取全局变量
- 用法:
取全局变量(变量名) - 参数:变量名
- 返回值:
Object
text
赋值 stage = 取全局变量("活动阶段")
发送消息("&f当前阶段: " + stage)增加全局变量
- 用法:
增加全局变量(变量名, 数值) - 参数:变量名、增量
- 返回值:
Number
text
赋值 total = 增加全局变量("全服击杀", 1)
发送消息("&e全服击杀已变更为: " + total)存在全局变量
- 用法:
存在全局变量(变量名) - 参数:变量名
- 返回值:
Boolean
text
判断 (存在全局变量("活动阶段")) {
发送消息("&a活动阶段变量已存在")
}删除全局变量
- 用法:
删除全局变量(变量名) - 参数:变量名
- 返回值:
Boolean
text
删除全局变量("测试变量")
发送消息("&c已删除测试变量")设置时间标记
- 用法:
设置时间标记(标记名) - 参数:标记名
- 返回值:
Number - 补充说明:源码会同时写入当前
ScriptContext和玩家变量_timemark_<标记名>,因此后续复制上下文或重新读取时都能继续取到这条时间标记。
text
设置时间标记("last_kill")
发送消息("&7已记录当前时间标记")获取时间差
- 用法:
获取时间差(标记名) - 参数:标记名
- 返回值:
Number - 补充说明:会先查当前上下文,再回退读取玩家变量
_timemark_<标记名>;如果标记不存在,返回-1。
text
赋值 diff = 获取时间差("last_kill")
发送消息("&f距离上次记录: " + diff + " 秒")存在时间标记
- 用法:
存在时间标记(标记名) - 参数:标记名
- 返回值:
Boolean - 补充说明:判断时同样会同时检查当前上下文和玩家变量中的
_timemark_<标记名>。
text
判断 (存在时间标记("last_kill")) {
发送消息("&7时间标记已存在")
}删除时间标记
- 用法:
删除时间标记(标记名) - 参数:标记名
- 返回值:
Boolean - 补充说明:删除时会同时清掉当前上下文和玩家变量里的
_timemark_<标记名>。
text
删除时间标记("last_kill")
发送消息("&c已删除时间标记")设置标记
- 用法:
设置标记(标记名) - 参数:标记名
- 返回值:
Boolean
text
设置标记("已完成新手任务")
发送消息("&a已设置玩家标记")检查标记
- 用法:
检查标记(标记名) - 参数:标记名
- 返回值:
Boolean
text
判断 (检查标记("已完成新手任务")) {
发送消息("&a检测到完成标记")
}删除标记
- 用法:
删除标记(标记名) - 参数:标记名
- 返回值:
Boolean
text
删除标记("已完成新手任务")
发送消息("&c已删除该标记")取玩家变量
- 用法:
取玩家变量(变量名) - 参数:变量名
- 返回值:
Object
text
赋值 value = 取玩家变量("签到次数")
发送消息("&f签到次数: " + value)设置玩家变量
- 用法:
设置玩家变量(变量名, 值) - 参数:变量名、值
- 返回值:
Boolean
text
设置玩家变量("签到次数", 7)
发送消息("&a已设置玩家变量")增加玩家变量
- 用法:
增加玩家变量(变量名, 数值) - 参数:变量名、增量
- 返回值:
Number
text
赋值 value = 增加玩家变量("签到次数", 1)
发送消息("&a新的签到次数: " + value)存在玩家变量
- 用法:
存在玩家变量(变量名) - 参数:变量名
- 返回值:
Boolean
text
判断 (存在玩家变量("签到次数")) {
发送消息("&7玩家变量已存在")
}删除玩家变量
- 用法:
删除玩家变量(变量名) - 参数:变量名
- 返回值:
Boolean
text
删除玩家变量("测试字段")
发送消息("&c已删除玩家变量")设置临时变量
- 用法:
设置临时变量(变量名, 值) - 参数:变量名、值
- 返回值:
Object - 补充说明:临时变量走
GlobalVariableManager的玩家临时变量存储,不会持久化,服务端重启后丢失;它和“局部变量”不是同一层东西。
text
设置临时变量("当前阶段", "boss")
发送消息("&7已写入临时变量")取临时变量
- 用法:
取临时变量(变量名) - 参数:变量名
- 返回值:
Object - 补充说明:读取不到时返回空字符串
"",不是null。
text
赋值 phase = 取临时变量("当前阶段")
发送消息("&f临时阶段: " + phase)设置局部变量
- 用法:
设置局部变量(变量名, 值) - 参数:变量名、值
- 返回值:
Object - 补充说明:局部变量直接写进当前
ScriptContext;它只在当前脚本执行链和copy()出来的上下文里存在,不会写入全局变量管理器。
text
设置局部变量("roundScore", 12)
发送消息("&7已设置局部变量")取局部变量
- 用法:
取局部变量(变量名) - 参数:变量名
- 返回值:
Object - 补充说明:读取不到时返回空字符串
"",不是null。
text
赋值 score = 取局部变量("roundScore")
发送消息("&f局部分数: " + score)获取进度
- 用法:
获取进度() - 参数:无
- 返回值:
Number
text
赋值 progress = 获取进度()
发送消息("&a当前成就进度: " + progress)获取时间戳
- 用法:
获取时间戳() - 参数:无
- 返回值:
Number
text
赋值 now = 获取时间戳()获取成就ID
- 用法:
获取成就ID() - 参数:无
- 返回值:
String
text
赋值 id = 获取成就ID()
发送消息("&f当前成就 ID: " + id)获取成就名称
- 用法:
获取成就名称() - 参数:无
- 返回值:
String
text
赋值 name = 获取成就名称()
发送消息("&f当前成就名称: " + name)获取目标进度
- 用法:
获取目标进度(目标ID) - 参数:目标 ID
- 返回值:
Number
text
赋值 value = 获取目标进度("kill_dragon")
发送消息("&f当前目标进度: " + value)获取成就进度
- 用法:
获取成就进度(成就ID[, 玩家名]) - 参数:成就 ID,可选玩家名
- 返回值:
Number
text
赋值 value = 获取成就进度("daily_sign")
发送消息("&7指定成就进度: " + value)获取成就数据
- 用法:
获取成就数据(成就ID, 字段) - 参数:成就 ID、字段名
- 返回值:
Any
text
赋值 percent = 获取成就数据("daily_sign", "percent")
发送消息("&b指定成就百分比: " + percent)获取成就标记
- 用法:
获取成就标记(成就ID, 标记名) - 参数:成就 ID、标记名
- 返回值:
Boolean
text
判断 (获取成就标记("main_line", "dragon_done")) {
发送消息("&a目标成就已有龙击杀标记")
}获取成就目标进度
- 用法:
获取成就目标进度(成就ID, 目标ID[, 字段]) - 参数:成就 ID、目标 ID、可选字段
- 返回值:
Any
text
赋值 value = 获取成就目标进度("boss_line", "dragon", "complete")
发送消息("&f目标完成状态: " + value)成就是否已解锁
- 用法:
成就是否已解锁(成就ID[, 玩家名]) - 参数:成就 ID,可选玩家名
- 返回值:
Boolean
text
判断 (成就是否已解锁("daily_sign")) {
发送消息("&6该成就已经解锁")
}成就任务是否已接取
- 用法:
成就任务是否已接取(成就ID[, 玩家名]) - 参数:成就 ID,可选玩家名
- 返回值:
Boolean
text
判断 (成就任务是否已接取("daily_task")) {
发送消息("&e该任务型成就已接取")
}