Sssss...
本帖最后由 Sssss... 于 2023-1-16 13:14 编辑

IceTimer - 蓝冰计时器

(完整名称为IceTimerRemade,Remade指对同样为原创的前一版本插件的重制。嫌改名麻烦就保留了,不要误会。)

版本兼容
开发版本为1.15.2
已测试1.16.5可以正常工作,但无法阻止玩家误触Shift后卡下船。
顶部标明的其他版本理论上支持,但没有实际测试。

功能简介
本插件适用于冰船竞速的计时。
在这种小游戏中,一个或多个玩家分别乘船在一个两端有防护的冰制赛道上滑行。
比赛开始前,玩家在起点线前等待,当起点线阻挡消失后统一出发。一段时间后到达终点线,按照时间排名。
由于船具有较大的碰撞体积,容易导致碰撞或堵塞,每次只有一个玩家参加,最后记录成绩并手动排序是个好的选择。
本插件可以实现:

本插件只支持起点线、终点线均沿x或z轴延伸的场地。

本插件测得的时间为实际时间,而非游戏刻的数目。经过实验验证,测实际秒数受服务器运行情况波动的影响远小于测刻数。

配置文件[config.yml]
  1. # 是否允许非op启动或终止计时器
  2. allows-not-op-swtich-timer: true
  3. # 比赛开始前的倒计时秒数
  4. timer-start-count: 3
  5. # 场地列表
  6. fields:
  7.     # 以下所有坐标的格式都是 worldname;x;y;z
  8.     # 场地名
  9.     example:
  10.         # 参赛玩家检测中心和检测半径
  11.         # 倒计时结束的瞬间,在此范围内的所有在船上驾驶位的玩家将被认为是参赛者
  12.         check-point: ice;-768;63;690
  13.         check-radius: 25
  14.                
  15.         # 到达终点线时被判为完成比赛至少行驶的路程
  16.         # 防止玩家原地绕圈作弊
  17.         # 可以先设为0然后进行一次比赛,结束后将公布玩家经过的路程(不是位移!distance实际不太准确),设置为大约1/2即可
  18.         # 也可以在起点线前制造一个单向的下坡
  19.         min-distance: 600
  20.                
  21.         # 终点线,在空间中是一个竖直的矩形区域,单向通过时认为完成比赛
  22.         finish-line:
  23.             # 终点线在水平面上投影为线段
  24.             # 要求给出线段的一个端点、延展方向和长度
  25.             # 按格式修改即可
  26.             point: ice;-776;63;678
  27.             segmet: X+16
  28.             # 通过终点线的方向
  29.             # 只需要给出正负(POSITIVE/NEGATIVE),因为当终点线的方向(X/Z)确定后,通过它的方向也确定为垂直的另一个方向(Z/X)
  30.             # 示例中POSITIVE表示Z+,因为终点线沿X方向延伸
  31.             direction: POSITIVE
  32.             # 通过终点线时的y坐标范围
  33.             # 如果终点线设在半空中要求飞过,或附近有弹射装置等,可以适当放宽
  34.             # 如果终点线正上方或正下方有赛道,需要避免范围设置过大
  35.             min-y: 60.0
  36.             max-y: 100.0
  37.                         
  38.         # 起点线,配置项顾名思义
  39.         start-blocker:
  40.             point1: ice;-775;63;704
  41.             point2: ice;-761;63;704
  42.             block: GLASS
  43.     # 可以添加更多场地

复制代码


指令
/ice 查看帮助
/ice on <场地名> 启动某个场地的计时器【可设置仅限op执行】
/ice off <场地名> 终止某个场地的计时器【可设置仅限op执行】
/ice quit 退出比赛
/ice record <场地名> <行数> 显示某个场地的前n名
/ice delrecord <场地名> <序号> 删除某个场地的某条记录【仅限op执行】


权限
只检测是否为op,无新增权限节点。

回放
/ice on <场地名> true 录制本场比赛,结束后将保存在IceTimerRemade文件夹
/ice replay <播放速率> <录像文件名> [同时播放的其他文件名1] [2] [...] 播放回放,用苦力怕表示玩家。
同时播放多个回放可以用于比较玩家在赛道不同部分的发挥情况。
本功能开发中,使用不便且可能有bug。


图片展示

图1:场地示例。图中绿、红、蓝分别表示检测点、起点线(其下为玻璃阻拦板)、终点线。所有彩色方块仅用于标记,实际并不存在。
图2:一次比赛的示例。



图3:全服记录功能展示。


图4:在水中浸泡后对原版自动下船机制的阻断。


图5:船被攻击时的保护机制。



下载
IceTimerRemade[蓝冰计时器].jar (70.63 KB, 下载次数: 13)
更新日志:
  • 2023/1/16 修改了默认配置文件中的错误



请勿将本插件用于盈利。
代码可随意使用,没有在其他网站发布,可随意反编译,相当于开源。
本插件所用所有代码均为原创,不存在借用/抄袭等行为。



李若晖
1.16.5报错



eerr992
可以发几个地图吗,懒得搭

Sssss...

sorry
之前默认配置文件写错了,把config.yml里面的所有制表符换成四个空格再试试,应该是这个原因
帖子里的文件已经更新了

zk20110101
非常不错的插件,很喜欢支持者作者

Halin
挺好的在租赁服的时候我就用命令方块写冰船系统

醉流ab
eerr992 发表于 2023-1-15 18:11
可以发几个地图吗,懒得搭

论坛有噢(多逛逛

BreakGraze
很好的插件,如果能配合优质的赛道就好了

oooP1n
哈哈哈 很棒的插件,感谢你为mc赛车运动做出的贡献(滑稽