Skip to content

动作总览

AchieveMaster 的“动作”是所有会产生副作用的脚本入口。它们负责发消息、改玩家状态、推进成就、接任务、调命令、触发事件,以及联动 DragonCore、MythicMobs、AttributePlus 等外部系统。

这一组文档不再按“源码文件”讲,而是按实际使用场景分目录讲。你写脚本时,通常只需要先判断自己在做哪一类事,再进对应页面查动作即可。

目录

消息、玩家与反馈

这一页覆盖最常见的即时反馈和玩家状态修改动作:

  • 发送消息
  • 发送标题
  • 发送动作栏
  • 播放音效
  • 发送粒子
  • 给予经验
  • 给予金币
  • 扣除金币
  • 标记物品
  • 消耗物品
  • 设置生命值
  • 设置饥饿值
  • 传送玩家
  • 踢出玩家
  • 给予药水效果
  • 移除药水效果
  • 是否有药水效果
  • 清除所有药水效果

成就、进度与任务

这一页覆盖当前 AST 进度语句、成就状态动作和任务动作:

  • 增加进度
  • 减少进度
  • 设置进度
  • 增加目标进度
  • 设置目标进度
  • 返回
  • 跳出
  • 继续
  • 停止脚本
  • 延迟执行
  • 设置成就进度
  • 增加成就进度
  • 设置成就目标进度
  • 增加成就目标进度
  • 获取成就进度
  • 获取目标进度
  • 获取成就目标进度
  • 成就是否已解锁
  • 成就任务是否已接取
  • 解锁成就
  • 重置成就进度
  • 撤销成就
  • 接取成就任务
  • 提交成就任务
  • 取消成就任务

联动、事件与外部系统

这一页覆盖动作型联动入口:

  • 设置龙核槽位物品
  • 清空龙核槽位
  • 消息
  • 执行指令
  • 玩家执行指令
  • 触发事件
  • 触发全局事件
  • 禁用MM技能
  • 启用MM技能
  • 取消AP属性处理
  • 设置AP伤害

先看这几个执行差异

当前成就 AST 结果不是“写完就立刻落库”

增加进度设置进度增加目标进度设置目标进度 这类 AST 语句,先写进当前 ScriptResult,再由外层调用方决定要不要消费。

当前正式行为是:

  • trigger.script 会消费这些结果,并把当前成就进度写回。
  • rewards.script 当前不会额外消费这一套 AST 结果,所以奖励脚本里不要把它们当主推进手段。
  • trigger.script-js / rewards.script-jsreturn 只是脚本返回值,不等价于 AST 控制流。

延迟执行 是异步调度,不是当前这一帧继续往下跑

延迟执行 20 { ... } 会复制当前上下文,然后在后续 tick 再执行代码块。

要点只有两个:

  • 延迟块里的进度和目标进度改动会在延迟回调里落正式结果。
  • 延迟块里的 返回停止脚本跳出继续 不会同步回流到当前调用栈。

任务动作不要只按布尔值理解

接取成就任务提交成就任务取消成就任务 成功时通常返回 true,失败时可能直接返回错误字符串。实际写脚本时,要按 Boolean | String 来处理。

一部分“动作页里的条目”本质上也会返回值

例如:

  • 获取成就进度
  • 获取目标进度
  • 获取成就目标进度
  • 成就是否已解锁
  • 成就任务是否已接取

它们放在动作页,是因为它们和推进、任务、联动通常写在一起,不代表它们没有返回值。

什么时候该去函数页

如果你现在要找的是“读取数据”“做判断”“拼文本”“取随机”“查变量”,优先去函数页:

动作页只讲副作用入口和与副作用紧耦合的读取动作。

一段组合示例

text
判断 (成就是否已解锁("first_boss")) {
  发送消息("&7你已经完成过这个挑战")
  停止脚本
}

增加进度 1
发送动作栏("&a进度 +1")
播放音效("ENTITY_PLAYER_LEVELUP", 1.0, 1.0)

TQ Minecraft Server Plugin Docs