量筒的起床战争
起床战争是一款能够适用于任何地图的附加包,是基于 Hypixel 起床战争的特性而开发的资源。
处于更新状态,目前已发布到多个平台,于元宵节正式发布。
基本信息
- 作者 一只卑微的量筒(@量筒)
- 制作人表 详情见制作人表页面
- 版本需求 1.21.0+
- 资源类型 附加包
- 最新版本 1.0(正式版) | Alpha 1.1_01(测试版)
- 更新日志 详情见更新日志页面
- 漏洞汇报 详情见GitHub Issues
下载
有多种途径都可以下载或找到本附加包,也可以在群内直接下载此附加包。
网盘
各大论坛或平台
群内测试
目前本资源处于活跃更新状态。本资源将保持在本群的起床战争服开展测试。
该服务器采用白名单机制,需要参加测试的成员,请确保您的名字出现在服务器成员登记表中,否则将无法进入游戏。
该服务器目前采用 Minecraft 最新版本,如果您在进入服务器时显示「过期的客户端!」,请在下载国际基岩版 Minecraft中更新你的 Minecraft 。
相关视频
本资源在 @极筑工坊 的 B 站账号发布了第一期 demo 视频。
最新版本更新日志 - Alpha 1.1_01
周末快乐!本周的周末我们将开启两个资源的测试:第一个是《冒险世界:筑梦》的 v0.45 版本,而第二个则是《起床战争》的 Alpha 1.1_01 版本的测试!
在这次的更新中,我们加入了一大堆更新内容,并修复了一大堆的漏洞!比如……设置界面、自主选队、击杀样式,以及其他各种大大小小的更改。来看看这次的更新吧,祝你偷床顺利!>:)
地图
- 新增 1 张 4 队地图:伊斯特伍德(Eastwood)。
- 新增 3 张 8 队地图:瀑布(Waterfall)、乐园(Playground)、灯塔(Lighthouse)。
- 现在所有的地图都有特定的最低建造高度上限。
- 现在所有的地图都有特定的治愈池范围。
- 现在地图 屋顶 的最低建造高度上限由 55 提升到了 62。
- 现在默认的加载时长由 5 秒调整为了 15 秒。特殊地,屋顶的加载时长延长到了 30 秒。
- 现在所有的单挑模式的地图的铁锭、金锭生成速度都是 4 队模式或 2 队模式生成速度的 60 %。您可以见下表以查看我们所作出的更改。
1.0 版本 | Alpha 1.1_01 版本 | |
---|---|---|
4 队模式和 2 队模式的铁生成间隔 | 6 游戏刻 | 6 游戏刻 |
单挑模式的铁生成间隔 | 20 游戏刻 | 6 / 0.6 = 10 游戏刻 |
4 队模式和 2 队模式的金生成间隔 | 75 游戏刻 | 75 游戏刻 |
单挑模式的金生成间隔 | 120 游戏刻 | 75 / 0.6 = 125 游戏刻 |
- 现在所有的单挑模式每次都生成 3 个铁而非 1 个。
设置
- 隆重介绍:新的设置菜单!
- 以前的
/scriptevent
命令被全部移除,转而使用设置菜单代替。 - 新增了一个物品:设置。
- 右键使用设置物品调出设置菜单。
- 在开始游戏前,创造模式的玩家能够默认获得此物品。
- 现在设置能够在设置完成后自动备份数据,能够在
/reload
、重启地图、重启服务器前恢复以前设置的数据。即:现在设置不再会因前述原因而重置。 - 设置菜单分为 7 个子项,完全继承以前的设置命令功能。下文中,【设置项】为命令系统原有的设置。
- 游戏前设置:控制游戏前的运行逻辑,例如地图重置、等待时。
- #29 地图重置设置:
- 地图清除速度(设定地图清除的速度)
- 地图加载速度(设定地图加载的速度)
- 等待设置:
- 【玩家人数下限】
- 玩家人数上限(设定一局最多能有多少玩家加入到游戏,余下的玩家将被随机设置为旁观者)
- 【开始游戏的等待时间】
- 组队设置
- 组队模式 (暂未实装)
- 开始前组队 (暂未实装)
- 玩家自主选队(允许玩家在开始游戏前自主选择其所归属的队伍)
- #29 地图重置设置:
- 游戏内设置:控制资源生成、复活时间等。
- 【资源上限设置】
- 【铁生成上限】
- 【金生成上限】
- 【钻石生成上限】
- 【绿宝石生成上限】
- 资源生成间隔设置:(是的,现在你可以调整资源生成间隔了!)
- 铁生成间隔(平均每个铁生成的时长)
- 金生成间隔(平均每个金生成的时长)
- 钻石生成间隔(平均每个钻石生成的时长)
- 绿宝石生成间隔(平均每个绿宝石生成的时长)
- 单挑模式生成倍率(在单挑模式下,资源生成的速度是 4 队模式的多少倍)
- 【重生时间设置】
- 【普通玩家重生时长】
- 【重进玩家重生时长】
- 击杀样式设置:
- 启用击杀样式(是否允许玩家使用其他击杀样式)
- 随机击杀样式(每局为每个玩家随机分配击杀样式,而不是令他们自己选择)
- 无效队伍设置
- 无效队伍检测(是否在游戏开始后检测无效队伍)
- 【无效队伍能否生成资源】
- 无效队伍能否生成商人 (暂未实装)
- 【资源上限设置】
- 【地图启用设置】:控制何种地图能够生成。
- 【启用经典 2 队模式地图】
- 【启用经典 4 队模式地图】
- 【启用经典 8 队模式地图】
- 【启用夺点 2 队模式地图】(拆分出来单独的模式)
- 【生成地图】:立即生成地图。
- 杂项设置:
- 【破坏原版方块】
- 虚空扔物品(掉入虚空的玩家是否能够扔出物品)
- #22 关于:制作人和关于我们的页面。
- 开发者设置:开发人员可用的设置项。正式版本发布后,将移除此设置。
- 游戏前设置:控制游戏前的运行逻辑,例如地图重置、等待时。
击杀样式
- 隆重介绍:10 种全新的击杀样式!
- 其中,9 种来自于 Hypixel 原版。
- 另一种则是我们整的活!>:)
- 你可以在开始游戏前进行设置。
- 如果地图设置启用,每个玩家都将获得一个设置物品。
- 现在铁傀儡、蠹虫的击杀也算作击杀数,并且拥有专门的击杀信息。
自主选队
- 隆重介绍:自主选队!
- 如果地图设置启用,每个玩家都可以获得一个设置物品,玩家将可以在开始前自主选择自己要加入的队伍!
- 这个设置默认是关闭的,以和 Hypixel 匹配。
- 如果需要的话,你可以联系房主,让 ta 开启这个设置。
- 自主选队时,也只允许一个队伍比另一个队伍最多多出 1 名玩家。
- 因此,类似于3 3 3 1的队伍分布也是不允许的。
- 界面将会显示都有哪些玩家选择了对应的队伍。
- 当其他玩家选择了队伍后,其他正在选队的玩家的界面将会刷新。
其他更改
- 更改了游戏开始前的等待信息板。
- 人数信息现在显示为 当前人数/上限人数 ;
- 在等待更多玩家进入时,“等待中...”的后面现在会显示还需要多少玩家进入;
- 现在会显示版本了。
- #12 #30 现在玩家不再能在资源点、商人或队伍出生点附近放置方块。
- #15 现在其他队伍的玩家不再能开启其他队伍的箱子,除非该队伍已被淘汰。
- #21 现在弓击中敌方后会提示敌方剩余的血量。
- #32 优化了对英语的支持。感谢 @Fanconma !
- 提高了本模组的最低版本需求到 1.21.50。
漏洞修复
- #19 修复了灰队的铁傀儡无法辨认剩余时长的问题。
- #23 修复了地毯可能会被冲掉并使玩家获得地毯的问题。
- #24 修复了末影珍珠的出界检测会包括顶面的问题,这个问题可能导致向上扔的末影珍珠被吞掉。
- #25 修复了在弓击中同队玩家时会多次响起音效的问题。
- 修复了在最高处或最低处平搭依然会阻止搭路的问题。
- 修复了启用创造模式玩家可破坏方块的设置后,生存模式的玩家也能破坏方块的问题。
底层更新
- 更新了行为包的
manifest.json
的版本号到1.0.20
。 - 更新了资源包的
manifest.json
的版本号到1.2.7
。 - 更新了行为包的脚本版本到
@minecraft/server@1.15.0
和@minecraft/server-ui@1.3.0
。 - 现在破坏无效的床也不再会报错了。
- 更名
events/classic/playerBreakBlockTest.js
→events/classic/breakBlock.js
。 - 更名
events/classic/equipmentTest.js
→events/classic/equipment.js
。 - 更名
events/classic/heightLimit.js
→events/classic/playerUseBlock.js
,并新增了两个函数:playerOpenChest(event) {}
:玩家尝试开其他未淘汰的队伍的箱子时,阻止之;safeAreaLimit(event) {}
:玩家尝试在安全区(例如队伍岛屿的重生点、资源点)放置方块时,阻止之。
- 更名
events/classic/itemLock.js
→events/classic/items.js
,并新增了一个函数removeInvalidItems() {}
以清除额外的物品。 - 新增 在
methods/itemManager.js
中新增了getValidItems(entity) {}
方法。 - 在
events/classic/trading.js
中移除了有关capture
的内容,现在是按照地图设置自动处理的一般情况。 - 新增 在
methods/positionManager.js
的positionManager
对象中新增了多个方法:isEqual(pos1,pos2) {}
:判断两个坐标是否一致;hasPosition(positions, testPos) {}
:判断一个坐标数组里是否存在一个坐标;distance(pos1,pos2) {}
:判断两个坐标之间的距离。
- 移除 在
methods/number.js
中的objectInArray(array, object) {}
方法。现在用positionManager.hasPosition(positions, testPos) {}
代替。 - 新增 在
methods/number.js
中新增了countSameNumbers(array, x) {}
方法,以判断一个数组有多少组x个相同的数字。
BedwarsPlayer
类,methods/bedwarsPlayer.js
的方法
- 新增 类型声明
killStyle
。 - 新增 全局变量
availableKillStyles
。 - 新增 属性
killStyle
,用于控制玩家的击杀样式。 - 更改 重命名属性
runtimeId
→gameId
,以和BedwarsMap
类一致。
BedwarsMap
类,methods/bedwarsMap.js
的方法
- 新增 类型声明
islandInfo
、teamIslandColorInfo
、traderInfo
、spawnerInfo
。 - 更改 为
loadInfo
属性作出如下更改:- 新增
loadInfo.loadStage
,当前所处的加载阶段。 - 新增
loadInfo.mapClear
对象,清除地图的方法和变量,其中包括currentLayer
、timeCostPerLayer
、clear()
、countdown
。 - 新增
loadInfo.mapReload
对象,加载地图的方法和变量,其中包括islands
、totalTime
、countdown
、loadStructure()
、loadBorder()
。 - 新增
loadInfo.teamIslandColor
对象,设置队伍岛屿的羊毛颜色,其中包括isEnabled
、countdown
、colors
、load()
。 - 移除
loadInfo.clearingLayer
,现在用loadInfo.mapClear.currentLayer
代替。 - 移除
loadInfo.clearTimePerLayer
,现在用loadInfo.mapClear.timeCostPerLayer
代替。 - 移除
loadInfo.structureLoadTime
,现在用loadInfo.mapReload.countdown
代替。 - 移除
loadInfo.setTeamIslandTime
,现在用loadInfo.teamIslandColor.countdown
代替。
- 新增
- 新增
mapSize
属性,表示当前及上一张地图的地图大小。 - 新增
version
属性,表示地图版本。 - 更改 拆分了
methods/bedwarsMap.js
的方法和函数:- 这样做是为了便于控制结构加载的时间。
- 移动了
createMap(mapName)()
函数到脚本maps/(teamCount)Teams/(mapName).js
中存储数据。 - 移动了
regenerateMap()
函数到脚本maps/mapGenerator.js
中。 - 移除了命令函数
maps/(map_name)/generate.mcfunction
和maps/(map_name)/team_island.mcfunction
。- 现在相关数据分别记录在
loadInfo.mapReload.islands
和loadInfo.teamIslandColor.colors
- 现在相关数据分别记录在
- 更改 现在构建器由
constructor(id,name,options={})
改为了constructor(id,name,islands,teamIslandColor)
。如果需要更改地图设置,请直接在构建后更改。 - 更改 方法
addTeam(team) {}
→addTeams(...teams) {}
,现在允许直接传入多个参数,并移除了无效的名称检查。 - 更改 方法
addTrader(pos,direction,type) {}
→addTrader(...traders) {}
,现在允许直接传入多个参数。 - 更改 方法
addSpawner(resourceType,pos) {}
→addSpawners(...spawners) {}
,现在允许直接传入多个参数,并且现在每个生成点信息所传入的坐标pos
需传入钻石点或绿宝石点中钻石块或绿宝石块的位置,而不再是其上方 2 格。 - 更改 为
mapGenerator.js
将validMapsFor2Teams
等变量改为一个validMaps
对象,并新增了一个方法getValidMaps() {}
以确定当前设置下有效的地图ID。 - 移除
spawnerInfo
属性下的:spawnerInfo.ironInterval
;spawnerInfo.goldInterval
;spawnerInfo.diamondInterval
;spawnerInfo.emeraldInterval
;
BedwarsTeam
类
- 新增 类型声明
validTeams
、teamInfo
。 - 更改 重命名属性
bedInfo.direction
→bedInfo.rotation
,并且更改了其类型,由Number
改为StructureRotation
。 - 更改 现在构建器由
constructor(id,bedPos,bedDirection,resourceSpawnerPos,spawnpointPos)
改为了constructor(id,teamInfo)
,并且teamInfo
中支持输入chestPos
。 - 移除 变量
validTeams
。 - 移除 移除属性
chestInfo
,以chestPos: number
代替。
methods/scoreboardManager.js
- 是用于控制记分板的方法。
tryAddScoreboard(id,displayName) {}
:尝试创建一个记分板,并获取该记分板的数据。如果记分板已存在,则直接返回其数据。getScoreboard(id) {}
:获取记分板数据。removeScoreboard(id) {}
:尝试移除一个记分板,并返回是否成功执行。displayScoreboard(display,id,order) {}
:尝试在特定位置显示记分板,并返回上一个在该位置显示的记分板数据。tryAddAndDisplayScoreboard(id,displayName,display,order) {}
:尝试创建记分板并直接在特定位置显示,返回创建的记分板和上一个在同样位置显示的记分板。eachScoreboard(func,condition) {}
:令所有记分板执行一个函数。removeAllScoreboards(condition) {}
:移除所有记分板。addScore(objective,participant,score) {}
:添加分数。setScore(objective,participant,score) {}
:设置分数并返回这个值。getScore(objective,participant,defaultValue) {}
:获取分数。如果无法获取分数,则设置为默认值并返回这个值。resetScore(objective,participant) {}
:移除分数。getObjectiveFromParticipant(participantName) {}
:获取被追踪对象的全部记分项数据。getScores(objective) {}
:获取在特定记分板下的所有分值。getParticipantWithScore(objective,score) {}
:获取在特定记分板下拥有特定分值的被追踪对象。getQuitPlayers(objective) {}
:获取「玩家下线」的追踪对象。
methods/uiManager.js
- 用于控制 UI 的方法。
- 新增 类型声明
actionUiButtonInfo
、modalUiButtonInfo
createActionUi(buttonInfo,bodyText,titleText) {}
:创建一个ActionForm
的 UI。createMessageUi(button1Text,button2Text,bodyText,titleText) {}
:创建一个MessageForm
的 UI。createModalUi(buttonInfo,titleText,submitText) {}
:创建一个ModalForm
的 UI。showActionOrMessageUi(ui,showPlayer,playerSelectedFunc,playerCanceledFunc) {}
:显示一个ActionForm
或MessageForm
的 UI,并追踪玩家的选择。showModalUi(ui,showPlayer,submittedFunc,playerCanceledFunc) {}
:显示一个ModalForm
的 UI,并追踪玩家的选择。createAndShowActionUi(player,buttonInfo,playerCanceledFunc,bodyText,titleText) {}
:创建一个ActionForm
的 UI 并立即显示,同时追踪玩家的选择并执行内容。createAndShowMessageUi(player,buttonInfo,bodyText,titleText) {}
:创建一个MessageForm
的 UI 并立即显示,同时追踪玩家的选择并执行内容。createAndShowModalUi(player,buttonInfo,submittedFunc,playerCanceledFunc,titleText,submitText) {}
:创建一个ModalForm
的 UI 并立即显示,同时追踪玩家的选择并执行内容。
设置与methods/bedwarsSettings.js
- 新增 物品
bedwars:map_settings
、bedwars:select_team
和bedwars:kill_style
。 - 移除 移除了所有的设置命令,转而使用设置菜单代替。
- 新增 为
settings
对象新增了以下属性:settings.miscellaneous.playerCanThrowItemsInVoid
,控制虚空扔物品的设置。settings.beforeGaming.waiting.maxPlayerCount
,控制一局中最多有多少玩家能够参与游戏。settings.beforeGaming.reload.clearSpeed
,控制清除地图的速度。settings.beforeGaming.reload.loadSpeed
,控制加载地图的速度。settings.beforeGaming.teamAssign.mode
,控制队伍分配的方式。settings.beforeGaming.teamAssign.assignBeforeGaming
,是否在开始前就随机组队。settings.beforeGaming.teamAssign.playerSelectEnabled
,是否启用自由选队。settings.gaming.resourceInterval.iron
,平均每个铁的基准生成间隔。settings.gaming.resourceInterval.gold
,金基准生成间隔。settings.gaming.resourceInterval.diamond
,钻石基准生成间隔。settings.gaming.resourceInterval.emerald
,绿宝石基准生成间隔。settings.gaming.resourceInterval.soloSpeedMultiplier
,单挑模式下的生成间隔乘数。settings.gaming.invalidTeam.enableTest
,是否启用无效队伍的检测。settings.gaming.invalidTeam.spawnTraders
,无效队伍是否生成商人。
- 更改 为
settings
对象进行了以下重命名:settings.minWaitingPlayers
→settings.beforeGaming.waiting.minPlayerCount
;settings.gameStartWaitingTime
→settings.beforeGaming.waiting.gameStartWaitingTime
;settings.resourceMaxSpawnTimes.iron
→settings.gaming.resourceLimit.iron
;settings.resourceMaxSpawnTimes.gold
→settings.gaming.resourceLimit.gold
;settings.resourceMaxSpawnTimes.diamond
→settings.gaming.resourceLimit.diamond
;settings.resourceMaxSpawnTimes.emerald
→settings.gaming.resourceLimit.emerald
;settings.respawnTime.normalPlayers
→settings.gaming.respawnTime.normalPlayers
;settings.respawnTime.rejoinedPlayers
→settings.gaming.respawnTime.rejoinedPlayers
;settings.invalidTeamCouldSpawnResources
→settings.gaming.invalidTeam.spawnResources
;settings.randomMap.allow2Teams
→settings.mapEnabled.classicTwoTeamsEnabled
和settings.mapEnabled.captureTwoTeamsEnabled
;settings.randomMap.allow4Teams
→settings.mapEnabled.classicFourTeamsEnabled
;settings.randomMap.allow8Teams
→settings.mapEnabled.classicEightTeamsEnabled
;settings.creativePlayerCanBreakBlocks
→settings.miscellaneous.creativePlayerCanBreakBlocks
。
- 更改 重命名
settingsEvent(event) {}
→mapSettings(event) {}
,并更改了其依赖事件,由system.afterEvents.scriptEventReceive
改为world.afterEvents.itemUse
。 - 新增
selectTeamSettings(event) {}
方法,用于设置玩家的自主选队。 - 新增
killStyleSettings(event) {}
方法,用于设置玩家的击杀样式。 - 新增
settingsBackup() {}
方法,用于在玩家设置完成后备份数据。 - 新增
settingsRecover() {}
方法,用于恢复已备份的数据。
翻译文件zh_CN.lang
- 新增 来自 Hypixel 的部分击杀样式信息。
- 新增 部分在未来规划中的模式介绍信息。