量筒的起床战争
起床战争是一款能够适用于任何地图的附加包,是基于 Hypixel 起床战争的特性而开发的资源。
处于更新状态,目前已发布到多个平台,于元宵节正式发布。
基本信息
- 作者 一只卑微的量筒(@量筒)
- 制作人表 详情见制作人表页面
- 版本需求 1.21.0+
- 资源类型 附加包
- 最新版本 1.0(正式版) | Alpha 1.1_02(测试版)
- 更新日志 详情见更新日志页面
- 漏洞汇报 详情见GitHub Issues
下载
有多种途径都可以下载或找到本附加包,也可以在群内直接下载此附加包。
网盘
各大论坛或平台
群内测试
目前本资源处于活跃更新状态。本资源将保持在本群的起床战争服开展测试。
该服务器采用白名单机制,需要参加测试的成员,请确保您的名字出现在服务器成员登记表中,否则将无法进入游戏。
该服务器目前采用 Minecraft 最新版本,如果您在进入服务器时显示「过期的客户端!」,请在下载国际基岩版 Minecraft中更新你的 Minecraft 。
相关视频
本资源在 @极筑工坊 的 B 站账号发布了第一期 demo 视频。
最新版本更新日志 - Alpha 1.1_02
周末快乐!时隔 9 个月,我们今天正式推出新的测试版本!这个版本其实主要新在代码上——我们整合了大量的脚本代码到 3 个文件中去,并使用了新的写法和思路。经过实测,该版本在很多方面的的性能水平远远强于 Alpha 1.1_01!
此外,这次得益于新架构,在商店、结构加载方面得到了不小的进步!来看看本次的更新吧~祝你偷床顺利!>:)
主要更改
- #40 大幅度优化了性能表现,现在的版本在理论上性能会远比 Alpha 1.1_01 时期来的更好,会比 1.0 版本来的更好
- 将创造模式的判断准则改为了判断是否为管理员玩家
- 现在只有管理员玩家能默认得到设置物品,以前是创造模式的玩家可以获得
- 非管理玩家无论何种模式都会默认被调整为冒险模式,以前只要是创造模式就不会调整
- 并且,非管理玩家在等待期间超界时也会被传送回来,以前只要是创造模式就不会传送
- #37 现在在游戏内,玩家也能获得设置物品
- 现在结构采用异步加载
- 结构加载现在是一个一个岛屿地加载(甚至是一个岛屿的一部分一部分地加载),而不再是所有结构同时加载
- 现在每个结构都有自己的加载时间,如果结构大小比较大,加载时间就会比较长,反之则会比较短
- 因此,采用这种异步加载方式,对于某些较小的地图来说,这种加载方式可以兼顾加载速度和性能,对于某些较大的地图来说,虽然加载速度会变慢,但是理论上应该可以在结构加载时提供更好的服务端性能
- 将包图标改成了床
- #36 修复了铁生成速率设置的当前值和设置值的单位不一致的漏洞
- #38 修复了在击杀样式启用的情况下,且未额外选择击杀样式的情况下,可能会导致击杀样式变为
undefined的漏洞
商店

- 全新的商店设计!
- 将以前的“方块与物品”和“武器与盔甲”商人合二为一,成为物品商店
- 商人 UI 现在采用非共享 UI,不同的玩家将看到不同的内容,感谢 Panda 的非共享 UI 商人思路!
- 现在物品商店采用类似于 Hypixel 的标签页设计,包含 9 大分类:快速购买、方块、近战、盔甲、工具、远程、药水、实用道具、轮换物品
- 现在镐子和斧头不再摊开放置了,而是在一个格子之内
- 大幅度优化了商店的性能和表现
- 现在除非和商人交互,否则不会再误锁物品栏,并且只要和商人交易后小角度切换视角即可解锁物品栏
- 修复了梯子定价为 4 个金锭的问题,改为了 4 个铁锭
- 将商店的高等级盔甲改为了靴子(以前是胸甲)
- 将“这是个陷阱!”更名为“失明陷阱”
- 将“报警陷阱”更名为“显影陷阱”
- 移除了“末影龙增益”团队升级,改为了“缓冲靴子”
- 同时,现在夺点模式不再自动获取“末影龙增益”团队升级
- 现在商店物品的提示框也和 Hypixel 保持了高度一致
- 现在团队升级在已解锁后或陷阱排满后会显示出来,而不是显示为花费
设置

- 更新了设置页面
- 得益于 1.21.90 的新版脚本
@minecraft/server-ui@2.0.0,现在设置页面有大标题、文本解释和分割线了 - 现在生成地图界面显示地图的中文名
- 现在在设置清除地图和加载地图速度为较快、快和非常快后,清除和加载速度分别会达到默认状态的 150%、200% 和 400%
- 新增了一个新设置:杂项设置 - 备份与恢复设置
- 用于在应用设置时保存设置内容,并在
/reload、重启地图、重启服务器后恢复到以前应用的设置 - 默认开启
- 如果关闭这个选项,在
/reload、重启地图、重启服务器后将会应用我们的默认设置
- 用于在应用设置时保存设置内容,并在
- 在设置页面新增了更新日志界面,可查看该版本和过往版本的更新内容
- 更新了开发者设置的内容,现在仅开放一项设置:开启调试模式
- 该模式将自动关闭无效队伍检测,将地图加载清除速度调到最快,并允许单人开启游戏,方便开发者在单人模式下调试
物品
- 搭桥蛋现在不再会将已搭好的桥清空掉某些部分
- 搭桥蛋现在不再能在安全区放置方块了
- 现在梦境守护者的使用能够适应玩家所交互的方块面
- 例如,如果玩家对准的是一个方块的侧面,现在铁傀儡会在方块的侧面生成而不是顶面
- 现在爆炸施加向量采用新式算法
- 以前,爆炸只会对玩家施加 y 方向上的速度,具体表现为抬高,但不添加水平方向的速度
- 现在,爆炸根据爆炸位置和玩家位置的连线向量进行计算,这意味着爆炸将带来更加强力而真实的冲击效果
- 例如,以前的火球跳会导致玩家跳的更高,但水平方向上并没有给出太多速度,但现在火球跳可以在玩家有水平速度的情况下施加水平方向向量,这会使得玩家跳的不像以前那么高,但是反而会跳的更远
- 或者,使用火球偷袭的时候,现在也会更容易把被偷袭的玩家炸离桥面
- 再次降低了梦境守护者的伤害,伤害没有那么高了
作者注:这里铁傀儡直接使用了自定义实体而不是原版实体,因为原版铁傀儡的不少伤害是硬编码的——这代表着我们通过修改原版铁傀儡的伤害数值的方法收效甚微,但是使用自定义实体的铁傀儡,在动画上会出现一点不和谐,即表现得不太像原版,但我们已经尝试过尽力还原原版的动画了,希望玩家们可以谅解~ - #39 得益于新架构,修复了在资源池拾取的物品可能不会堆叠的问题
底层更新
- 全面重构脚本系统的底层
- 由于这次底层更改多,因此只介绍主要更新内容
- 重新合并了其他所有文件为
main.js、lib.js、data.js三个文件main.js处理主要逻辑,包含起床战争的多个相关类和功能lib.js是原版方法的工具库,除了在起床战争中应用外,也可能在其他地方应用data.js负责存储有关起床战争的数据、穷举量、类型定义等,不包含任何功能
- 新增了
BedwarsSystem类- 类似于
@minecraft/world的World类 - 作为起床战争脚本系统的基础系统,并在地图加载后实例化
- 在全过程中,系统不应被删除,但可以修改其中的数据
- 在实例化后,会默认重新加载地图
- 原来的一些数据都被整合到
BedwarsSytem类中,并且所有数据都能够通过BedwarsSystem访问
- 类似于
- 新增了
BedwarsSettings类 - 新增了
BedwarsTimeline类和BedwarsEvent类- 时间线类的本质其实是
system.runInterval(),只是额外多存储了一个typeId,用于更方便地销毁时间线 - 而事件类的本质其实是
world的前事件和后事件,额外多存储了eventName和typeId,用于更方便地销毁事件 - 在不同阶段下,会存在不同的时间线和事件,利用此机制可以方便地向系统注册或销毁时间线或事件
- 在非必要情况下,现在的脚本系统会尝试销毁不必要的时间线或事件,以提升性能
- 时间线类的本质其实是
- 新增了
BedwarsClassicMode类和BedwarsCaptureMode类- 在创建地图时会同步创建对应的模式类,其中包含游戏运行的主要代码
- 五个阶段(清除地图、加载地图、等待、游戏中、游戏结束)现在都有一个
entry...State() {}方法和exit...State() {}方法,在进入和离开此状态时可以向系统注册时间线、事件,并执行一些代码 BedwarsClassicMode类是基础类,其他模式类都是从该类extends出来的,并修改了部分代码
- 新增了
mapData变量- 以前,这些地图的数据分别存储在不同文件的不同函数中,在
BedwarsMap类初始化后处理数据 - 现在,所有地图基础数据都以对象的形式存储,并在
BedwarsMap类初始化时处理数据
- 以前,这些地图的数据分别存储在不同文件的不同函数中,在
- 现在地图内重新使用
Vector3,而不再使用自建的Vector类 - 现在将原版的所有方法整合到了
lib.js中 - 添加了 9 种目录类方块和物品,用于物品商店中
已知漏洞
当一个无床的队伍在最后一个玩家退出游戏时,除非该玩家回到游戏,否则游戏会无法结束。