路径点插件技术文档

来自Oasis Wiki
Subilan讨论 | 贡献2023年8月15日 (二) 15:18的版本

路径点插件(checkpoint)用于类似于喵窝 World Wings Rally 鞘翅拉力赛的竞赛。支持设置一系列有序的路径点,并将其存储于相应的赛道中。同时可以开设竞赛让玩家参与。

指令

本插件的指令均以 /checkpoint 开头,也可以简写为 /cpt。大部分指令仅管理员可用,下面列出了一般玩家可用的指令。

指令 解释
/cpt about 查看本插件的关于信息。
/cpt join <campaign> 加入指定的竞赛。在开始比赛之前,参赛的玩家必须通过这个指令加入,才能被计算成绩。
/cpt quit 无需带竞赛名称。退出已经加入的竞赛,并清空自己的竞赛数据。
/cpt reset 无需带竞赛名称。清空当前已经加入的竞赛的数据。
/cpt rank <campaign> [pagenum] 显示对应竞赛的排名信息。
/cpt mycampaign 无需带竞赛名称。查看已经加入竞赛的概况。

下面列出的是只有管理员可用的指令。

指令 解释
/cpt build <track> <number> [force?] 从选区创建一个新的路径点。参数 track 对应的是赛道名称,如果不存在会自动创建。参数 number 对应的是路径点在该赛道的位置,从 1 开始。如果对应路径点已存在,必须将 force 设为 true 才能覆盖。
/cpt remove <track> <number> 删除指定的路径点。执行此项需要特别注意,见注意事项的第一条。
/cpt copy <from-track.number> <to-track.number> [force?] 将 from-track.number 复制到 to-track.number。如果复制到的路径不存在会自动创建。例如 /cpt copy track1.2 track2.3 代表将 track1 序号为 2 的点复制到 track2 序号为 3 的点处。如果 to-track.number 已经存在,那么必须把 force 指定为 true 才可执行覆盖。
/cpt xcopy <T1.N1,T2.N2,...> <t1.n1,t2.n2,...> [force?] 将第一个序列里的各个点分别复制到第二个序列中的各个点。例如 /cpt xcopy track1.2,track1.3 track2.1,track2.2 代表将 track1.2 复制到 track2.1,将 track1.3 复制到 track2.2。由于是一一对应的,两个序列的元素数量必须相同。force 参数同上。
/cpt move <from-track> <to-track> <n1,n2,n3...> 将 from-track 中的 n1, n2, n3... 赛道迁移到新的 to-track 中。to-track 必须不含任何赛道。其中在指定序号时,可以使用连续符号:1-7,9 等价于 1,2,3,4,5,6,7,9。同理还可以使用 1-2,4-9 等来表示。
/cpt list <track> [pagenum] 列出 track 中的路径点。
/cpt info <track.number> 单独显示路径点 track.number 的详细信息。
/cpt campaign new <name> [track] 创建一场新的比赛,名为 name,对应的赛道为 track。如果 track 不填,那么自动使用与比赛同名的 track(如果存在)。默认新建的比赛是关闭的。
/cpt campaign setstatus <name> <open|close|private> 设置比赛开启状态,open、close 或者 private。open 状态的比赛,所有人都可以加入、参与;close 状态的比赛,所有人都不能加入、参与;private 的比赛,所有人都不能加入,但是已经加入的人可以参与。
/cpt campaign delete <name> 删除比赛。不影响赛道、玩家统计数据。
/cpt stashselection 重置光灵箭选区。

如何加入一场比赛

首先,需要知道这场比赛的名称,通常由管理员给出。在进入游戏以后,输入指令 /cpt join <比赛名称> 即可加入比赛。加入比赛以后,可以输入 /cpt mycampaign 查询当前竞赛概况。如果竞赛处于开启状态,那么就可以前往第一个路径点开始滑翔了!

当成功到达最后一个路径点时,你的竞赛成绩会被马上储存,并且可以由任何人通过 /cpt rank <比赛名称> 查看到。如果认为这次成绩不够好,可以输入 /cpt reset 清空此次成绩后,重新开始比赛。

如果因特殊原因,不再参加比赛,可以输入 /cpt quit 退出当前参与的比赛。注意此指令也会清空你的比赛数据,因此一般情况不要使用。要想加入其它比赛,必须首先退出已经加入的比赛。但一般管理员会在一次比赛彻底结束以后,通过高级指令帮助所有人一键退出。

管理员:如何创建路径点

若要创建路径点,需要拥有 checkpoint.admin 权限。

手持光灵箭,右键(不用左键)依次单击顶点 1 和顶点 2,然后输入 /cpt build <赛道名称> <序号> 即可创建。对顶点的要求与 Residence、World Edit 等插件类似,须为对角顶点。

如需舍去已选选区,执行 /cpt stashselection 即可。

如需直接覆盖已经存在的路径点而创建,执行 /cpt build <赛道名称> <序号> true 即可。

注意事项

  1. 任何一个赛道内的路径点的序号必须是连续的(必须是从 1 开始,然后依次递增),否则会发生不可预测的错误。这在通过指令删除路径点时需要注意。使用指令 /cpt forcecontinuous <赛道名称> 可以整理此赛道下不连续的序号(顺序不变)。
  2. 在比赛期间,玩家或者服务器掉线会导致未存储的比赛数据的丢失,因此请确保网络顺畅再开始比赛。这一点会在后续更新中逐渐修复。
  3. 现阶段插件为初版,bug 在所难免,因此请积极汇报你遇到的 Bug。汇报方式见文末。

配置文件

  • config.yml 会在后续的版本中提供配置项。
  • selections.yml 用于存储赛道和路径点。
  • campaigns.yml 用于存储竞赛设置。
  • analytics.yml 用于存储玩家竞赛数据。

问题反馈或参与维护

服务器内外用户均可反馈和维护。前往 GitHub 提交 Issue 或者 Pull Request 即可。

https://github.com/oasis-mc/checkpoint