Skip to content

脚本概览

DM 的脚本系统内容并不少。副本流程、机关联动、刷怪节奏、状态控制、奖励发放、运营处理,基本都能落到脚本层。

这套系统平时看起来像是分散在很多 yml 里,实际能力面可以拆成四层:

  • 语法层:负责脚本结构本身,支持赋值、判断、循环、概率分支、异常处理、延迟执行。
  • 变量层:负责状态组织,区分副本公共变量、玩家个人变量、上下文读取值、外部输入值。
  • 读取层:包括普通函数和大量 对象.方法() 读取写法,用来做判断、计算、拼文本。
  • 动作层:负责推动副本运转,处理刷怪、开门、切阶段、传送、发奖励、改状态。

常见脚本入口

  • main.yml 的事件绑定、进入条件、通关条件、通关脚本
  • 阶段.yml 的开始脚本、通关脚本、开始玩家脚本、通关玩家脚本
  • 区域.yml 的进入脚本
  • 怪物组.yml 的生成脚本、全灭脚本、玩家脚本
  • 奖励.yml 的奖励脚本
  • 模块.yml 的复活、保护、结算、层进、竞速、临时背包等玩法脚本
  • 交互.yml全息.yml 的触发脚本
  • /dm script 的临时执行脚本

脚本能力面

当前版本能确认的高频能力,至少包括这些方向:

  • 语言语法:if / else if / elsechance / failforswitchrequiretry / catchthrowdelayreturn / break / continue
  • 常规函数:数学、随机、字符串、集合、时间、逻辑、类型转换、玩家读取、调试输出、变量读写
  • 读取型对象:副本.*()阶段.*()怪物组.*()区域.*()交互.*()障碍物.*()全息.*()变量.PAPI()
  • 基础动作:消息、标题、音效、粒子、命令、传送、怪物、区域、阶段、货币、物品、属性、复活
  • 扩展动作:CraftX、AchieveMaster、SoulRingX、LyWarehouse 接入动作
  • 模块动作:层进、竞速、中途结算、奖励加成、冷却递增、死亡抉择、临时背包

一段典型机制脚本

text
if 怪物组.全灭("第一波") {
    副本.设置变量("Boss已开启", true)
    障碍物.关闭("Boss门组")
    消息.全体("&cBoss 房已开启")
    怪物组.生成("Boss组")
}

这类写法同时用到了三层:

  • 怪物组.全灭("第一波") 负责读取条件
  • 副本.设置变量("Boss已开启", true) 负责记状态
  • 障碍物.关闭消息.全体怪物组.生成 负责推进流程

建议阅读顺序

  1. 语法与表达式
  2. 变量与作用域
  3. 内置函数与读取型方法
  4. 内置动作

用脚本做副本时的整理习惯

  • 公共机制状态统一放副本变量。
  • 个人层数、个人积分、个人任务进度统一放玩家变量。
  • 条件判断多用读取型方法,副作用多用动作。
  • 长脚本先拆清阶段,再补细节。
  • 复杂机制先跑通流程,再加表现和随机分支。

TQ Minecraft Server Plugin Docs