跳到主要内容

1.1

1.1 是本附加包的第 2 个重要版本。在 1.1 版本中,新增了许多实用功能,并对高版本的 Minecraft 做出适配。该版本已在 2026 年 3 月 3 日(2026 年元宵节)发布。主要功能包括:

  • 新的设置 UI 和其他额外的新设置
  • 自定义击杀样式
  • 自主选队
  • 经验模式
  • 疾速模式
  • 新的商店 UI
  • 新地图
  • 性能优化
  • 主动观战
  • 非常多的新的小功能

版本列表

公告列表


Alpha 1.1_01

发布于 25.03.07 。

周末快乐!本周的周末我们将开启两个资源的测试:第一个是《冒险世界:筑梦》的 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 地图重置设置:
        • 地图清除速度(设定地图清除的速度)
        • 地图加载速度(设定地图加载的速度)
      • 等待设置:
        • 【玩家人数下限】
        • 玩家人数上限(设定一局最多能有多少玩家加入到游戏,余下的玩家将被随机设置为旁观者)
        • 【开始游戏的等待时间】
      • 组队设置
        • 组队模式 (暂未实装)
        • 开始前组队 (暂未实装)
        • 玩家自主选队(允许玩家在开始游戏前自主选择其所归属的队伍)
    • 游戏内设置:控制资源生成、复活时间等。
      • 【资源上限设置】
        • 【铁生成上限】
        • 【金生成上限】
        • 【钻石生成上限】
        • 【绿宝石生成上限】
      • 资源生成间隔设置:(是的,现在你可以调整资源生成间隔了!)
        • 铁生成间隔(平均每个铁生成的时长)
        • 金生成间隔(平均每个金生成的时长)
        • 钻石生成间隔(平均每个钻石生成的时长)
        • 绿宝石生成间隔(平均每个绿宝石生成的时长)
        • 单挑模式生成倍率(在单挑模式下,资源生成的速度是 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.jsevents/classic/breakBlock.js
  • 更名events/classic/equipmentTest.jsevents/classic/equipment.js
  • 更名events/classic/heightLimit.jsevents/classic/playerUseBlock.js,并新增了两个函数:
    • playerOpenChest(event) {}:玩家尝试开其他未淘汰的队伍的箱子时,阻止之;
    • safeAreaLimit(event) {}:玩家尝试在安全区(例如队伍岛屿的重生点、资源点)放置方块时,阻止之。
  • 更名events/classic/itemLock.jsevents/classic/items.js,并新增了一个函数removeInvalidItems() {}以清除额外的物品。
  • 新增methods/itemManager.js中新增了getValidItems(entity) {}方法。
  • events/classic/trading.js中移除了有关capture的内容,现在是按照地图设置自动处理的一般情况。
  • 新增methods/positionManager.jspositionManager对象中新增了多个方法:
    • 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,用于控制玩家的击杀样式。
  • 更改 重命名属性runtimeIdgameId,以和BedwarsMap类一致。

BedwarsMap类,methods/bedwarsMap.js的方法

  • 新增 类型声明islandInfoteamIslandColorInfotraderInfospawnerInfo
  • 更改loadInfo属性作出如下更改:
    • 新增loadInfo.loadStage,当前所处的加载阶段。
    • 新增loadInfo.mapClear对象,清除地图的方法和变量,其中包括currentLayertimeCostPerLayerclear()countdown
    • 新增loadInfo.mapReload对象,加载地图的方法和变量,其中包括islandstotalTimecountdownloadStructure()loadBorder()
    • 新增loadInfo.teamIslandColor对象,设置队伍岛屿的羊毛颜色,其中包括isEnabledcountdowncolorsload()
    • 移除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.mcfunctionmaps/(map_name)/team_island.mcfunction
      • 现在相关数据分别记录在loadInfo.mapReload.islandsloadInfo.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.jsvalidMapsFor2Teams等变量改为一个validMaps对象,并新增了一个方法getValidMaps() {}以确定当前设置下有效的地图ID。
  • 移除 spawnerInfo属性下的:
    • spawnerInfo.ironInterval
    • spawnerInfo.goldInterval
    • spawnerInfo.diamondInterval
    • spawnerInfo.emeraldInterval

BedwarsTeam

  • 新增 类型声明validTeamsteamInfo
  • 更改 重命名属性bedInfo.directionbedInfo.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 的方法。
  • 新增 类型声明actionUiButtonInfomodalUiButtonInfo
  • createActionUi(buttonInfo,bodyText,titleText) {}:创建一个ActionForm的 UI。
  • createMessageUi(button1Text,button2Text,bodyText,titleText) {}:创建一个MessageForm的 UI。
  • createModalUi(buttonInfo,titleText,submitText) {}:创建一个ModalForm的 UI。
  • showActionOrMessageUi(ui,showPlayer,playerSelectedFunc,playerCanceledFunc) {}:显示一个ActionFormMessageForm的 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_settingsbedwars:select_teambedwars: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.minWaitingPlayerssettings.beforeGaming.waiting.minPlayerCount
    • settings.gameStartWaitingTimesettings.beforeGaming.waiting.gameStartWaitingTime
    • settings.resourceMaxSpawnTimes.ironsettings.gaming.resourceLimit.iron
    • settings.resourceMaxSpawnTimes.goldsettings.gaming.resourceLimit.gold
    • settings.resourceMaxSpawnTimes.diamondsettings.gaming.resourceLimit.diamond
    • settings.resourceMaxSpawnTimes.emeraldsettings.gaming.resourceLimit.emerald
    • settings.respawnTime.normalPlayerssettings.gaming.respawnTime.normalPlayers
    • settings.respawnTime.rejoinedPlayerssettings.gaming.respawnTime.rejoinedPlayers
    • settings.invalidTeamCouldSpawnResourcessettings.gaming.invalidTeam.spawnResources
    • settings.randomMap.allow2Teamssettings.mapEnabled.classicTwoTeamsEnabledsettings.mapEnabled.captureTwoTeamsEnabled
    • settings.randomMap.allow4Teamssettings.mapEnabled.classicFourTeamsEnabled
    • settings.randomMap.allow8Teamssettings.mapEnabled.classicEightTeamsEnabled
    • settings.creativePlayerCanBreakBlockssettings.miscellaneous.creativePlayerCanBreakBlocks
  • 更改 重命名settingsEvent(event) {}mapSettings(event) {},并更改了其依赖事件,由system.afterEvents.scriptEventReceive改为world.afterEvents.itemUse
  • 新增 selectTeamSettings(event) {}方法,用于设置玩家的自主选队。
  • 新增 killStyleSettings(event) {}方法,用于设置玩家的击杀样式。
  • 新增 settingsBackup() {}方法,用于在玩家设置完成后备份数据。
  • 新增 settingsRecover() {}方法,用于恢复已备份的数据。

翻译文件zh_CN.lang

  • 新增 来自 Hypixel 的部分击杀样式信息。
  • 新增 部分在未来规划中的模式介绍信息。

Alpha 1.1_02

发布于 25.12.05。

周末快乐!时隔 9 个月,我们今天正式推出新的测试版本!这个版本其实主要新在代码上——我们整合了大量的脚本代码到 3 个文件中去,并使用了新的写法和思路。经过实测,该版本在很多方面的的性能水平远远强于 Alpha 1.1_01!

此外,这次得益于新架构,在商店、结构加载方面得到了不小的进步!来看看本次的更新吧~祝你偷床顺利!>:)

主要更改

  • #40 大幅度优化了性能表现,现在的版本在理论上性能会远比 Alpha 1.1_01 时期来的更好,会比 1.0 版本来的更好
  • 将创造模式的判断准则改为了判断是否为管理员玩家
    • 现在只有管理员玩家能默认得到设置物品,以前是创造模式的玩家可以获得
    • 非管理玩家无论何种模式都会默认被调整为冒险模式,以前只要是创造模式就不会调整
    • 并且,非管理玩家在等待期间超界时也会被传送回来,以前只要是创造模式就不会传送
    • #37 现在在游戏内,玩家也能获得设置物品
  • 现在结构采用异步加载
    • 结构加载现在是一个一个岛屿地加载(甚至是一个岛屿的一部分一部分地加载),而不再是所有结构同时加载
    • 现在每个结构都有自己的加载时间,如果结构大小比较大,加载时间就会比较长,反之则会比较短
    • 因此,采用这种异步加载方式,对于某些较小的地图来说,这种加载方式可以兼顾加载速度和性能,对于某些较大的地图来说,虽然加载速度会变慢,但是理论上应该可以在结构加载时提供更好的服务端性能
  • 将包图标改成了床
  • #36 修复了铁生成速率设置的当前值和设置值的单位不一致的漏洞
  • #38 修复了在击杀样式启用的情况下,且未额外选择击杀样式的情况下,可能会导致击杀样式变为undefined的漏洞

商店

alpha_1.1_02_shop

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

设置

alpha_1.1_02_settings

  • 更新了设置页面
  • 得益于 1.21.90 的新版脚本@minecraft/server-ui@2.0.0,现在设置页面有大标题、文本解释和分割线了
  • 现在生成地图界面显示地图的中文名
  • 现在在设置清除地图和加载地图速度为较快、快和非常快后,清除和加载速度分别会达到默认状态的 150%、200% 和 400%
  • 新增了一个新设置:杂项设置 - 备份与恢复设置
    • 用于在应用设置时保存设置内容,并在/reload、重启地图、重启服务器后恢复到以前应用的设置
    • 默认开启
    • 如果关闭这个选项,在/reload、重启地图、重启服务器后将会应用我们的默认设置
  • 在设置页面新增了更新日志界面,可查看该版本和过往版本的更新内容
  • 更新了开发者设置的内容,现在仅开放一项设置:开启调试模式
    • 该模式将自动关闭无效队伍检测,将地图加载清除速度调到最快,并允许单人开启游戏,方便开发者在单人模式下调试

物品

  • 搭桥蛋现在不再会将已搭好的桥清空掉某些部分
  • 搭桥蛋现在不再能在安全区放置方块了
  • 现在梦境守护者的使用能够适应玩家所交互的方块面
    • 例如,如果玩家对准的是一个方块的侧面,现在铁傀儡会在方块的侧面生成而不是顶面
  • 现在爆炸施加向量采用新式算法
    • 以前,爆炸只会对玩家施加 y 方向上的速度,具体表现为抬高,但不添加水平方向的速度
    • 现在,爆炸根据爆炸位置和玩家位置的连线向量进行计算,这意味着爆炸将带来更加强力而真实的冲击效果
    • 例如,以前的火球跳会导致玩家跳的更高,但水平方向上并没有给出太多速度,但现在火球跳可以在玩家有水平速度的情况下施加水平方向向量,这会使得玩家跳的不像以前那么高,但是反而会跳的更远
    • 或者,使用火球偷袭的时候,现在也会更容易把被偷袭的玩家炸离桥面
  • 再次降低了梦境守护者的伤害,伤害没有那么高了
    作者注:这里铁傀儡直接使用了自定义实体而不是原版实体,因为原版铁傀儡的不少伤害是硬编码的——这代表着我们通过修改原版铁傀儡的伤害数值的方法收效甚微,但是使用自定义实体的铁傀儡,在动画上会出现一点不和谐,即表现得不太像原版,但我们已经尝试过尽力还原原版的动画了,希望玩家们可以谅解~
  • #39 得益于新架构,修复了在资源池拾取的物品可能不会堆叠的问题

底层更新

  • 全面重构脚本系统的底层
    • 由于这次底层更改多,因此只介绍主要更新内容
  • 重新合并了其他所有文件为main.jslib.jsdata.js三个文件
    • main.js处理主要逻辑,包含起床战争的多个相关类和功能
    • lib.js是原版方法的工具库,除了在起床战争中应用外,也可能在其他地方应用
    • data.js负责存储有关起床战争的数据、穷举量、类型定义等,不包含任何功能
  • 新增了BedwarsSystem
    • 类似于@minecraft/worldWorld
    • 作为起床战争脚本系统的基础系统,并在地图加载后实例化
    • 在全过程中,系统不应被删除,但可以修改其中的数据
    • 在实例化后,会默认重新加载地图
    • 原来的一些数据都被整合到BedwarsSytem类中,并且所有数据都能够通过BedwarsSystem访问
  • 新增了BedwarsSettings
  • 新增了BedwarsTimeline类和BedwarsEvent
    • 时间线类的本质其实是system.runInterval(),只是额外多存储了一个typeId,用于更方便地销毁时间线
    • 而事件类的本质其实是world的前事件和后事件,额外多存储了eventNametypeId,用于更方便地销毁事件
    • 在不同阶段下,会存在不同的时间线和事件,利用此机制可以方便地向系统注册或销毁时间线或事件
    • 在非必要情况下,现在的脚本系统会尝试销毁不必要的时间线或事件,以提升性能
  • 新增了BedwarsClassicMode类和BedwarsCaptureMode
    • 在创建地图时会同步创建对应的模式类,其中包含游戏运行的主要代码
    • 五个阶段(清除地图、加载地图、等待、游戏中、游戏结束)现在都有一个entry...State() {}方法和exit...State() {}方法,在进入和离开此状态时可以向系统注册时间线、事件,并执行一些代码
    • BedwarsClassicMode类是基础类,其他模式类都是从该类extends出来的,并修改了部分代码
  • 新增了mapData变量
    • 以前,这些地图的数据分别存储在不同文件的不同函数中,在BedwarsMap类初始化后处理数据
    • 现在,所有地图基础数据都以对象的形式存储,并在BedwarsMap类初始化时处理数据
  • 现在地图内重新使用Vector3,而不再使用自建的Vector
  • 现在将原版的所有方法整合到了lib.js
  • 添加了 9 种目录类方块和物品,用于物品商店中

已知漏洞

当一个无床的队伍在最后一个玩家退出游戏时,除非该玩家回到游戏,否则游戏会无法结束。

Alpha 1.1_03

发布于 26.01.16。

寒假快乐!在本次的新版本中,我们解决了上个版本的一些问题,并引入了大家心心念念的新模式——经验模式!

经验模式在其他服务器中也称无限火力模式,玩家在这个模式中得到的不是各种各样的资源,而是经验,不同的资源将得到不同的经验,可以使用经验在商店购买物品。

祝你在新的经验模式中偷床顺利!>:)

alpha_1.1_03_shop

经验模式

  • 隆重推出——经验模式!
  • 在设置中,合并了资源上限设置和资源间隔设置为「资源设置」
  • 玩家获取的铁锭、金锭、绿宝石会转化为经验
    • 默认情况下,1 铁锭会转化为 1 等级,1 金锭会转化为 10 等级,而 1 绿宝石会转化为 100 等级
    • 钻石不会转化为经验
    • 在新的「资源设置」中新增了铁锭价值、金锭价值、绿宝石价值三个选项,以调整在经验模式中一个资源所价值的等级
  • 在经验模式下,物品商店接收经验,而非铁锭、金锭和绿宝石
    • 物品的售价是随着铁锭价格、金锭价格、绿宝石价格而等比例放大的
    • 默认情况下,在经典模式卖 1 个铁锭的物品,现在需要 1 等级购买,卖 1 个金锭的物品需要 10 等级购买,卖 1 个绿宝石的物品需要 200 等级购买
    • 例如,在经典模式卖 6 个绿宝石的钻石套,现在需要 1200 经验购买
    • 部分物品可能拥有自己独特的售价
    • 在「资源设置」中新增了铁锭价格、金锭价格、绿宝石价格三个选项,以调整在经典模式中的售价如何等比例地增长
      • 例如,在经典模式中为 3 绿宝石的剑,如果设置绿宝石价格为 500,则最后将售价 1500 经验
  • 在商店新增了可共享的铁锭、金锭和绿宝石,扔出这些物品再拾起即可获取对应的经验值,在商店中的价格随着这三样物品的价值的变动而变动
  • 团队升级商人没有变化,依旧接收钻石
  • 调整了经验模式的资源生成速率
    • 默认情况下,队伍岛的资源生成速率放缓到经典模式的 0.5 倍,而中岛的资源生成速率加快到经典模式的 1.5 倍,这样,中岛的资源生成效率要快于队伍岛
    • 钻石的生成速率没有变化
    • 在「资源设置」新增了经验模式生成队伍岛资源速度倍率和经验模式生成绿宝石速度倍率两个设置,用于调整资源生成速率
  • 在「资源设置」新增了经验模式损失资源的设置,决定在玩家死亡后将损失多少经验,并给予击杀者,可选项有全部损失、损失一半和不损失
  • 在设置中,新增了启用二队、四队、八队经验模式的开关,并允许单独生成对应的经验模式
  • 在「资源设置」中新增了队伍资源生成点共享资源的设置,以允许玩家在队伍资源生成点获取资源时可以不用抢夺,而是所有人均可共享,默认为开启,但目前还没有实装功能

商人交易

  • 现在不再允许两个玩家同时打开一个商人的 UI,如果检查到此情况会立刻关闭这两名玩家的 UI

自主选队

  • #48 重新设计了自主选队的机制,现在在游戏前基于一个 NPC 进行自主选队
  • 这样做,可以保证自主选队的 UI 及时更新
  • 并且也补全了有关玩家退出时的检查机制

设置

  • #59 在杂项设置中新增了恢复饥饿值间隔设置,默认为 3 秒恢复一次(上个版本是 10 秒恢复一次)

漏洞修复

  • #49 修复了在游玩过程中可能会出现的一些日志报错
  • #50 修复了商店可以扔出标签页物品的问题
  • #51 修复了无床队伍的最后一名玩家退出后不会触发队伍淘汰的问题
  • #52 修复了在有玩家购买魔法牛奶后,会导致所有食物均附加魔法牛奶效果的问题
  • #53 修复了含水床无法检查的问题
  • #57 现在在地图兰花中,绿队的队旗可以成功替换了
  • 修复了在生成地图阶段尝试生成其他地图会导致地图强制生成并后续流程锁死的问题
  • 修复了已被淘汰的队伍在因为某些原因被二次淘汰后,会导致其他存活队伍被淘汰的问题
  • 修复了玩家在点击床设置重生点后,再死亡会在床的位置重生而非在地图正上方重生的问题
  • 调整了地图瀑布的出生点,以解决全部队伍都无法围床 3 层的问题
  • 调整了地图瀑布的地图下限并更改了超界算法,以解决搭桥蛋和末影珍珠提前清除的问题

技术性

  • BedwarsSystem类新增entryNextStage()方法,调用时自动移除全部时间线和事件,并进入下一个阶段
  • 移除了BedwarsMode类的exit...Stage()方法,现在使用BedwarsSystem.entryNextStage()进入下一个阶段
  • 抽象了BedwarsClassicMode类为BedwarsMode类,并令BedwarsClassicMode类继承自BedwarsMode
    • 目前,其他Bedwars...Mode类仍然继承自BedwarsClassicMode
  • BedwarsItemTrader类、BedwarsUpgradeTrader类、BedwarsItemShopitem类、BedwarsUpgradeShopitem类、BedwarsMap类、BedwarsTeam类和BedwarsPlayer对各个模式各自抽象了经典模式、夺点模式和经验模式的类
  • BedwarsMode类新增了beforeEntry...Stage()方法和afterEntry...Stage()方法,以在进入此阶段前和此阶段后执行代码,可用于其他模式
  • 优化了商人替换物品的逻辑

Alpha 1.1_04

发布于 26.01.28。

寒假……我们好像已经祝过大家寒假快乐了。那就祝我生日快乐吧(∠・ω< )⌒☆!昨天是我的农历生日,在管理群内部的测试中留下了很美好的回忆:

birthday_23

嗯,扯远了,我们还是来看看远处的起床战争吧!在这次的更新中,我们进一步还原了疾速模式的起床战争!这是 Hypixel 的一个快速模式,旨在速战速决。同时,这是 1.1 Alpha 阶段的最后一个版本,代表我们预计的大功能已经全部加入到游戏中了!之后,我们将进入 1.1 的 Beta 时代,以添加其他小功能为主,比如大家十分期待的主动观战功能!

祝你在被层层保护的床中仍然能偷床顺利!>:)

疾速模式

  • 正式推出——疾速模式!
  • 所有队伍的床都默认得到 3 层保护:木板 → 羊毛 → 防爆玻璃
  • 所有资源的生成速度全部拉满,所有队伍都默认获得 4 级锻炉
  • 开始游戏后 15 分钟床自毁,床自毁后 15 分钟游戏结束
  • 为疾速模式新增了一个新设置「疾速模式生成速度倍率」,以调整疾速模式下各队金锭和铁锭的生成速度,默认值为 x0.5
  • 玩家可以右键任意一种剑开启搭桥模式,在搭桥模式下玩家放置羊毛后会在玩家放置羊毛的方向上每 0.1 秒延伸 1 个羊毛,合计延伸 5 个羊毛
    • 在竖直向上搭时,不会延伸羊毛
  • 在搭桥模式下,再次使用剑关闭搭桥模式
  • 疾速模式禁用了黑曜石
  • 在设置中新增了启用疾速模式的支持

新地图

  • 新增了 7 张 4 队地图:
    • Picnic(Treenan):野餐
    • Swashbuckle:海盗船
    • Obelisk:方尖碑
    • Ashore:海岸
    • Lectus:竞技场
    • Stonekeep:石头城堡
    • Invasion:入侵

游戏内容

  • 更改了铁锻炉的图标为熔炉
  • 在杂项设置中新增了一个新设置「信息板末行信息」,用于更改游戏右侧信息板末尾一行显示的内容,这对开服务器的服主可能会比较有用
  • #62 降低了绿宝石的默认价格,由 x200 经验改为了 x150 经验
  • #63 提高了铁傀儡在经验模式中的价格,现在为 300 经验(是上个版本的 2.5 倍)
  • #65 在杂项设置中新增了一个新设置「购买物品通知」,用于控制在购买物品类物品后是否通知玩家,不影响团队升级类物品
  • #66 现在末影龙的落点高度是根据地图的最低高度而设定的,而非锁定在(0,60,0)落点

漏洞修复

  • #64 现在被淘汰的玩家在二度离开游戏后,不再会重复播报队伍被淘汰;并且二度返回游戏后不再会重复播报该玩家已死亡
  • #67 修复了两处可能的报错
  • #70 修复了在设置中先将开始人数下限调至大于房间人数后恢复默认设置,会使游戏无法开始的问题
  • 修复了有玩家在等待期间进入或退出游戏后,会重置等待倒计时的问题,现在仅会在进入等待阶段后、以及人数不足后重置等待倒计时
  • 修复了有玩家在等待期间退出游戏导致人数不足后,不会提示玩家的问题

底层更新

  • 优化了lib.replaceBlock()函数的实现,现在在指定大于 32768 方块的区域后不再会报错,而是会对大区域做切割,从而破除 32768 方块的限制

1.1 - Pre 1

发布于 26.02.25。

新年快乐!我们计划在元宵节发布 1.1 的正式版本,而今天我们正式将 1.1 的第一个预发布版本端上来了!今天的更新中,我们带来了你可能感兴趣的两个新功能 —— 主动旁观和旁观传送功能!前者是《冒险小世界:剑之试炼》已经加入过的一个功能,它允许玩家在对战前就自主选择是否参与这一局对战,而后者则是我们为旁观者方便追踪玩家动向而推出的全新功能!

祝你在新版本中偷床顺利 >:)

1.1_pre_1

旁观模式

  • #7 新增主动旁观模式!
    • 可以在「设置 - 旁观模式设置」中启用,以允许主动旁观
    • 在开启了旁观模式的情况下,玩家可以使用一个新物品以打开主动旁观的设置 UI,在此 UI 中玩家可以选择不旁观、仅下局旁观、或之后的所有游戏都旁观
    • 选择了仅下局旁观之后的所有游戏都旁观的玩家,会在开始游戏后自动归为旁观模式
    • 开启主动旁观后不能选队,已选队伍的信息会消失
    • 如果在开启了主动旁观的情况下,房主禁用了主动旁观功能,则会警告已开启了主动旁观的玩家,之后的游戏需注意参与
  • #46 现在旁观者可以抬头以打开传送 UI!
    • 可以在「设置 - 旁观模式设置」中启用,以允许旁观传送
    • 便于玩家观察某个玩家的行动

漏洞修复

  • #80 修复了无法破坏蕨的问题
  • #84 修复了每当玩家变化且人数不足时就会警告人数不足的问题
  • #85 修复了使用铁傀儡右键箱子会放置铁傀儡的问题
  • #86 修复了床自毁会提示所有玩家的问题,现在不再对旁观玩家提示床自毁
  • #87 修复了在手机端可以先将商店物品放到空栏位再直接拿出的问题
  • 修复了在地图屋顶中可以冲毁铁轨和花盆的问题
  • 修复了在地图乐园中可以冲毁地毯的问题

技术性

概述

  • 更新了资源包的 UUID,请所有使用此资源包的玩家注意重新安装包,我们建议所有玩家彻底删除旧版包并使用新版的包
  • 将资源包的版本切换为1.1.5
  • 现在使用标签分辨不同旁观模式设置的玩家:
    • spectatorMode:none或无spectatorMode:前缀标签的玩家:不旁观
    • spectatorMode:nextGame:仅下局旁观,当游戏开始后将自动移除此标签
    • spectatorMode:always:之后的所有游戏都旁观

库文件

  • 新增 lib.FormButtonComponent.visible: boolean | undefined属性,以便控制显示的按钮是否需要显示出来,默认值为true

起床战争主文件

  • 新增 BedwarsSystem.isReleaseVersion: boolean属性,用于指定此版本是否为稳定版本,这会影响某些设置的显示
  • 新增 BedwarsSystem.informAllPlayers(message: string | minecraft.RawMessage | (string | minecraft): void静态方法,用于对所有玩家播放通知类消息
  • 新增 BedwarsSystem.getPlayers(): minecraft.Player[]方法,用于获取非主动旁观的玩家
  • 新增 BedwarsSystem.getPlayerAmount(): number方法,用于获取非主动旁观的玩家人数
  • 新增 BedwarsSettings.gaming.spectatorMode属性,以控制旁观玩家的可用功能,有如下属性:
    • spectateActivelyEnabled: boolean:是否启用主动旁观模式
    • headUpTeleportEnabled: boolean:是否启用旁观传送功能
  • 新增 BedwarsSettings.gaming.killBonus属性,以控制击杀奖励(但未实装相关功能),有如下属性:
    • enabled: boolean:是否给予击杀者以击杀奖励
    • mode: number:击杀奖励模式,0:直接给予资源,1:玩家的全部物品直接散落
    • loseLevelTierInExpMode: 0 | 1 | 2:经验模式损失资源,损失的资源将给予击杀者,0:不损失,1:损失一半,2:完全损失
    • playerCanThrowItemsInVoid: boolean:虚空玩家可扔物品
  • 新增 BedwarsSettings.BedwarsSettings.showSpectatorModeSettingsUI(player: minecraft.Player, system: BedwarsSystem): void静态方法,用于显示旁观模式的 UI
  • 新增 BedwarsMap.getAllPlayerData(options: PlayerDataOptions | undefined): BedwarsPlayer[]方法,用于获取所有起床战争玩家的信息
    • options: PlayerDataOptions | undefined:用于筛选特定的玩家信息,可用条件包括:
      • 处于特定队伍内(includeTeams?: data.BedwarsTeamType[] | undefined),指定后将会额外筛选队伍,否则不筛选
      • 不处于特定队伍内(excludeTeams?: data.BedwarsTeamType[] | undefined),指定后将会额外筛选队伍,否则不筛选
      • 包含死亡玩家(includeDeadPlayer?: boolean | undefined),默认值为true
      • 包含淘汰玩家(includeEliminated?: boolean | undefined),默认值为true
      • 包含旁观玩家(includeSpectator?: boolean | undefined),默认值为true,需注意另外四项不筛选旁观玩家,如果不选定旁观玩家需单独指定此项
      • 只包含已淘汰玩家(onlyIncludeEliminated?: boolean | undefined),默认值为false
  • 新增 BedwarsMap.addSpectator(player: minecraft.Player): void方法,用于新增旁观玩家
  • 更名 BedwarsMap.getBedwarsPlayer()BedwarsMap.getPlayerData()
  • 新增 BedwarsMode.removeSelectedTeam(player: minecraft.Player, resetNpcItems?: boolean): void方法,用于移除玩家的选队信息,并可选是否重置 NPC 的物品
  • 新增 BedwarsMode.timelineSpectatorHeadUpTeleport(): void方法,为旁观传送的主逻辑
  • 新增 BedwarsPlayer.setEliminated(): void方法,设置玩家为已淘汰
  • 移动BedwarsMode.nextEvent移动到BedwarsMap类下
  • 新增 多个触发游戏事件的方法
    • BedwarsMap.triggerDiamondTier2Event(): void:触发事件:钻石生成点 II 级
    • BedwarsMap.triggerDiamondTier3Event(): void:触发事件:钻石生成点 III 级
    • BedwarsMap.triggerEmeraldTier2Event(): void:触发事件:绿宝石生成点 II 级
    • BedwarsMap.triggerEmeraldTier3Event(): void:触发事件:绿宝石生成点 III 级
    • BedwarsMap.triggerBedDestructionEvent(): void:触发事件:床自毁
    • BedwarsMap.triggerDeathMatchEvent(): void:触发事件:绝杀模式
  • 新增 BedwarsMap.updateNextEvent(id?: "diamond_2" | "emerald_2" | "diamond_3" | "emerald_3" | "bed_destruction" | "death_match" | "game_over" | undefined, name?: "钻石生成点 II 级" | "绿宝石生成点 II 级" | "钻石生成点 III 级" | "绿宝石生成点 III 级" | "床自毁" | "绝杀模式" | "游戏结束" | undefined, countdown?: number): void,以更新下一个事件的信息
  • 更改BedwarsMode.functionWaiting()时间线化,现在人数检测是每秒进行一次,而非玩家退出或进入时进行一次
    • 这是因为随着多项设置的更新,比如等待设置、主动旁观设置等,原来的人数判断逻辑变得越来越复杂,故而采用循环检查的方式,虽然会带来一点额外的性能负载,但我们坚信这不会对您的服务器或设备造成任何影响

1.1 - RC 1

发布于 26.03.01。

发布此发布候选版以为后天的正式发布做准备。欢迎继续测试此版本,我们将修复已被发现的严重问题或容易处理的小问题,如果此版本未发现以上问题,将作为正式版发布!

漏洞修复

  • #82 修复了在被铁傀儡、蠹虫攻击后,不会解除隐身效果的问题
  • #94 现在开始游戏后不再提示无效队伍已被淘汰
  • #95 现在使用特定资源包一次性扔出所有商店物品后,不再导致商店物品可被获取

技术性

库文件

  • 新增 lib.FormLabelComponent.visible: boolean | undefined属性,以便控制显示的标签是否需要显示出来,当前仅限 active 类 UI 可用,默认值为true

起床战争主文件

  • 更改BedwarsTeam.setEliminated()新增了一个showMessage?: boolean参数,以便控制队伍在被淘汰后是否显示消息
  • 新增 BedwarsPlayer.removeInvisibilityEffect(): boolean,以尝试移除玩家的隐身状态,并返回是否成功移除

1.1

发布于 26.03.03。相比于 RC 1 版本,此版本修复了制作人未同步的问题和一处报错问题。

欢迎你来查看本次带来的大更新!上一次我们也是在元宵节发布了 1.0 版本,并为大家带来了接近 Hypixel 的起床战争体验。而今天,我们在 1.0 的基础上还带来了许多新的内容!其中有不少并不是 Hypixel 原版的内容,而是我们根据大家的反馈所自创的。

首先是两个全新的模式,一个是经验模式 —— 是的,我们引入了呼声超高的的经验模式!你可以收集资源以获取经验,并用经验来购买物品,这样理论上,你就可以在家挂出一套神装了。另一个则是 Hypixel 的梦幻模式中的疾速模式,在疾速模式中快速搭方块并迅速消灭敌人,RUSHHHHHH!!!

一些细节性的小更新我们也没有落下!比如……击杀样式,在击杀玩家后显示独特的信息以彰显你的实力。呼声超高的自主选队也正式实装,在开始游戏前你就可以选择加入哪个队伍了!此外还有新地图、主动旁观、旁观传送、安全点、爆炸算法、防开其他队伍箱子等功能,还有最关键的性能优化,应有尽有!

感谢我们测试群内诸多群友的大力支持!同时还要感谢 GitHub 上各位不在本群的玩家(@Koeaka、@jiasas888等)的测试,我们才能发现更多的问题!

希望大家喜欢这次更新,祝你在全新的版本中偷床顺利! >:)

经验模式

alpha_1.1_03_shop

  • 隆重推出——经验模式
  • 玩家获取的铁锭、金锭、绿宝石会转化为经验
    • 默认情况下,1 铁锭会转化为 1 等级,1 金锭会转化为 10 等级,而 1 绿宝石会转化为 100 等级
    • 钻石不会转化为经验
  • 在经验模式下,物品商店接收经验,而非铁锭、金锭和绿宝石
    • 物品的售价是随着铁锭价格、金锭价格、绿宝石价格而等比例放大的
    • 默认情况下,在经典模式卖 1 个铁锭的物品,现在需要 1 等级购买,卖 1 个金锭的物品需要 10 等级购买,卖 1 个绿宝石的物品需要 150 等级购买
    • 例如,在经典模式卖 6 个绿宝石的钻石套,现在需要 900 经验购买
    • 部分物品可能拥有自己独特的售价
  • 在商店新增了可共享的铁锭、金锭和绿宝石,扔出这些物品再拾起即可获取对应的经验值,在商店中的价格随着这三样物品的价值的变动而变动
  • 团队升级商人没有变化,依旧接收钻石
  • 调整了经验模式的资源生成速率
    • 默认情况下,队伍岛的资源生成速率放缓到经典模式的 0.5 倍,而中岛的资源生成速率加快到经典模式的 1.5 倍,这样,中岛的资源生成效率要快于队伍岛
    • 钻石的生成速率没有变化

疾速模式

  • 正式推出——疾速模式
  • 所有队伍的床都默认得到 3 层保护:木板 → 羊毛 → 防爆玻璃
  • 所有资源的生成速度全部拉满,所有队伍都默认获得 4 级锻炉
  • 开始游戏后 15 分钟床自毁,床自毁后 15 分钟游戏结束
  • 玩家可以右键任意一种剑开启搭桥模式,在搭桥模式下玩家放置羊毛后会在玩家放置羊毛的方向上每 0.1 秒延伸 1 个羊毛,合计延伸 5 个羊毛
    • 在竖直向上搭时,不会延伸羊毛
  • 在搭桥模式下,再次使用剑关闭搭桥模式
  • 疾速模式禁用了黑曜石

商店

alpha_1.1_02_shop

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

设置

alpha_1.1_02_settings

  • 隆重介绍:新的设置菜单
  • 以前的/scriptevent命令被全部移除,转而使用设置菜单代替
  • 新增了一个物品:设置,右键使用设置物品调出设置菜单
  • 管理员玩家能够默认获得此物品
  • 现在设置能够在设置完成后自动备份数据,能够在/reload、重启地图、重启服务器前恢复以前设置的数据,因此现在设置不再会因上述原因而重置
  • 设置菜单分为 7 个子项,并完全继承以前的设置命令功能
    • 游戏前设置:控制游戏前的运行逻辑,例如地图重置、等待时
      • 地图重置设置:
        • 新增 2 个设置:地图清除速度地图加载速度,以设定在开始游戏前地图清除和加载的速度
        • 可以分别调整为 7 个挡位:非常慢、慢、较慢、中等、快、较快、非常快,速度分别是中等的 25%、50%、75%、100%、150%、200%、400%
        • 对于个人设备或高性能设备,可以选用较快挡位或快的挡位,而对于性能稍差的服务器,可以选用较慢或慢的挡位
        • 在预期人数较多的时候,我们建议采用比较慢的速度以保证性能
      • 等待设置:
        • 迁移了原有的玩家人数下限(2~16 人),玩家人数少于此数量时游戏不会开始
        • 迁移了原有的开始游戏的等待时间(5~180 秒),玩家人数足够后将在多久后开始游戏
        • 新增玩家人数上限(8~80 人),以设定一局最多能有多少玩家加入到游戏,余下的玩家将被随机设置为旁观者
      • 组队设置
        • 新增玩家自主选队,默认关闭以和 Hypixel 匹配,有关自主选队详见后文
        • 如果需要的话,你可以联系房主,让 ta 开启这个设置
    • 游戏内设置:控制资源生成、复活时间等
      • 资源设置
        • 迁移了原有的 4 个设置:铁生成上限(8~400 个)、金生成上限(1~50 个)、钻石生成上限(1~50 个)、绿宝石生成上限(1~50 个)
        • 新增 4 个设置:铁锭间隔(2~40 游戏刻)、金锭间隔(20~300 游戏刻)、钻石间隔(25~60 秒)、绿宝石间隔(30~90 秒),是的,现在你可以调整资源生成间隔了!
        • 新增 6 个设置:铁锭价值(1~10 经验等级)、金锭价值(5~50 经验等级)、绿宝石价值(50~500 经验等级)、铁锭价格(1~10 经验等级)、金锭价格(5~50 经验等级)、绿宝石价格(50~500 经验等级)
          • 资源价值决定经验模式中获得一个资源会获得多少经验等级,例如,将铁锭价值设置为 5 时,则获得一块铁锭将获得 5 经验等级
          • 而资源价格则决定在经验模式中,经典模式的铁锭物品的售价如何等比例地增长,例如,在经典模式中为 3 绿宝石的剑,如果设置绿宝石价格为 500,则最后将售价 1500 经验
        • 新增单挑模式生成倍率(10%~200%),表示在单挑模式下,资源生成的速度是 4 队模式的多少倍
        • 新增疾速模式生成速度倍率(10%~200%),控制在疾速模式下,铁锭和金锭是经典模式的多少倍
        • 新增经验模式生成队伍岛资源速度倍率(10%~200%)和经验模式生成绿宝石速度倍率(50%~1000%),分别控制在经验模式下,铁锭和金锭、绿宝石生成的速度是经典模式的多少倍
        • 新增经验模式损失资源(全部损失、损失一半、不损失),决定在玩家死亡后将损失多少经验,并给予击杀者
      • 重生时间设置
        • 迁移了原有的 2 个设置:普通玩家重生时长(0~30 秒)、重进玩家重生时长(0~30 秒)
      • 击杀样式设置
        • 新增启用击杀样式,默认开启,有关击杀样式详见后文
        • 新增随机击杀样式,每局为每个玩家随机分配击杀样式,而不是令他们自己选择
      • 无效队伍设置
        • 新增无效队伍检测,是否在游戏开始后检测无效队伍,如果关闭则一开始不会移除掉没有玩家的队伍
        • 迁移了原有的无效队伍能否生成资源
      • 旁观模式设置
        • 新增启用主动旁观,默认关闭以和 Hypixel 匹配,有关主动旁观详见后文
        • 新增启用旁观传送,默认关闭以和 Hypixel 匹配,有关旁观传送详见后文
        • 如果需要的话,你可以联系房主,让 ta 开启这些设置
    • 地图启用设置:控制何种地图能够生成
      • 迁移了原有的 4 个设置:启用经典 2 队模式地图、启用经典 4 队模式地图、启用经典 8 队模式地图、启用夺点 2 队模式地图
      • 新增 6 个设置:启用经验 2 队模式地图启用经验 4 队模式地图启用经验 8 队模式地图启用疾速 2 队模式地图启用疾速 4 队模式地图启用疾速 8 队模式地图
      • 都是默认开启的,如果你想只玩经验模式则可以关闭其他模式的地图
    • 生成地图:立即生成地图
    • 杂项设置:
      • 迁移了原有的破坏原版方块
      • 新增虚空扔物品,默认关闭,控制掉入虚空的玩家是否能够扔出物品
      • 新增备份与恢复设置,默认开启,在每次应用设置时都会试图保存设置,并在服务器重启后恢复已应用的设置,关闭它会导致每次重启都变回默认设置
      • 新增恢复饥饿值间隔(1~10 秒),控制每隔多久尝试恢复一次玩家的饥饿值
      • 新增信息板末行信息,控制信息板最后一行显示的内容,这对服务器的服主会比较利好,可以借此设置更改为自己服务器的群号、地址等
      • 新增购买物品通知,默认开启,控制每次购买物品是否进行一次通知并发出叮的声音
    • 关于
      • 介绍制作人和关于我们的页面
    • 更新日志
      • 粗略介绍过往版本的更新日志
  • 目前有一些设置项未实装功能,我们可能会在之后的版本中实装它们的功能,但并不做 100% 的保证

性能优化

  • 重构了所有代码,并大幅度优化了性能表现,现在的版本在理论上性能会比 1.0 版本来的更好
  • 现在结构采用异步加载
    • 结构加载现在是一个一个岛屿地加载(甚至是一个岛屿的一部分一部分地加载),而不再是所有结构同时加载
    • 现在每个结构都有自己的加载时间,如果结构大小比较大,加载时间就会比较长,反之则会比较短
    • 因此,采用这种异步加载方式,对于某些较小的地图来说,这种加载方式可以兼顾加载速度和性能,对于某些较大的地图来说,虽然加载速度会变慢,但是理论上应该可以在结构加载时提供更好的服务端性能

地图

  • 新增了 8 张 4 队地图
    • Eastwood:伊斯特伍德
    • Picnic(Treenan):野餐
    • Swashbuckle:海盗船
    • Obelisk:方尖碑
    • Ashore:海岸
    • Lectus:竞技场
    • Stonekeep:石头城堡
    • Invasion:入侵
  • 新增 3 张 8 队地图
    • Waterfall:瀑布
    • Playground:乐园
    • Lighthouse:灯塔
  • 现在所有的地图都有特定的最低建造高度上限
  • 现在所有的地图都有特定的治愈池范围
  • 现在所有的单挑模式的地图的铁锭、金锭生成速度都是 4 队模式或 2 队模式生成速度的 60 %,您可以见下表以查看我们所作出的更改,但这是可以在设置中更改的
1.0 版本1.1 版本
4 队模式和 2 队模式的铁生成间隔6 游戏刻6 游戏刻
单挑模式的铁生成间隔20 游戏刻6 / 0.6 = 10 游戏刻
4 队模式和 2 队模式的金生成间隔75 游戏刻75 游戏刻
单挑模式的金生成间隔120 游戏刻75 / 0.6 = 125 游戏刻
  • 现在所有的单挑模式每次都生成 3 个铁而非 1 个

击杀样式

  • 隆重介绍:10 种全新的击杀样式
    • 其中,9 种来自于 Hypixel 原版
    • 另一种则是我们整的活 —— 新三国!>:) 再让我听到新三国的梗,我就扎聋我自己的耳朵!
  • 你可以在开始游戏前进行设置
  • 如果地图设置启用了击杀样式设置(游戏内设置 - 击杀样式设置 - 启用击杀样式),每个玩家都将获得一个设置物品
  • 现在铁傀儡、蠹虫的击杀也算作击杀数,并且拥有专门的击杀信息

自主选队

  • 隆重介绍:自主选队
  • 如果地图设置启用了玩家自主选队(游戏前设置 - 组队设置 - 玩家自主选队),将在大厅生成一个 NPC 以用于玩家选队,玩家将可以在开始前自主选择自己要加入的队伍!
  • 自主选队时,也只允许一个队伍比另一个队伍最多多出 1 名玩家
    • 因此,类似于3 3 3 1的队伍分布也是不允许的
  • 界面将会显示都有哪些玩家选择了对应的队伍

旁观模式

  • 新增主动旁观模式
    • 可以在「设置 - 游戏内设置 - 旁观模式设置」中启用,以允许主动旁观
    • 在开启了主动旁观的情况下,玩家可以使用一个新物品以打开主动旁观的设置 UI,在此 UI 中玩家可以选择不旁观、仅下局旁观、或之后的所有游戏都旁观
    • 选择了仅下局旁观之后的所有游戏都旁观的玩家,会在开始游戏后自动归为旁观模式
    • 开启主动旁观后不能选队,已选队伍的信息会消失
    • 如果在开启了主动旁观的情况下,房主禁用了主动旁观功能,则会警告已开启了主动旁观的玩家,之后的游戏需注意参与
  • 现在旁观者可以抬头以打开传送 UI
    • 可以在「设置 - 游戏内设置 - 旁观模式设置」中启用,以允许旁观传送
    • 便于玩家观察某个玩家的行动

物品

  • 现在弓击中敌方后会提示敌方剩余的血量
  • 搭桥蛋现在不再会将已搭好的桥清空掉某些部分
  • 现在玩家不再能在资源点、商人或队伍出生点等安全区附近放置方块
  • 搭桥蛋现在也不再能在安全区放置方块了
  • 现在梦境守护者的使用能够适应玩家所交互的方块面
    • 例如,如果玩家对准的是一个方块的侧面,现在铁傀儡会在方块的侧面生成而不是顶面
  • 现在爆炸施加向量采用新式算法
    • 以前,爆炸只会对玩家施加 y 方向上的速度,具体表现为抬高,但不添加水平方向的速度
    • 现在,爆炸根据爆炸位置和玩家位置的连线向量进行计算,这意味着爆炸将带来更加强力而真实的冲击效果
    • 例如,以前的火球跳会导致玩家跳的更高,但水平方向上并没有给出太多速度,但现在火球跳可以在玩家有水平速度的情况下施加水平方向向量,这会使得玩家跳的不像以前那么高,但是反而会跳的更远
    • 或者,使用火球偷袭的时候,现在也会更容易把被偷袭的玩家炸离桥面
  • 再次降低了梦境守护者的伤害,伤害没有那么高了
    作者注:这里铁傀儡直接使用了自定义实体而不是原版实体,因为原版铁傀儡的不少伤害是硬编码的——这代表着我们通过修改原版铁傀儡的伤害数值的方法收效甚微,但是使用自定义实体的铁傀儡,在动画上会出现一点不和谐,即表现得不太像原版,但我们已经尝试过尽力还原原版的动画了,希望玩家们可以谅解~
  • 得益于新架构,修复了在资源池拾取的物品可能不会堆叠的问题

游戏内容

  • 更改了游戏开始前的等待信息板
    • 人数信息现在显示为 当前人数/上限人数 ;
    • 在等待更多玩家进入时,“等待中...”的后面现在会显示还需要多少玩家进入;
    • 现在会显示版本了
  • 将创造模式的判断准则改为了判断是否为管理员玩家
    • 现在只有管理员玩家能默认得到设置物品,以前是创造模式的玩家可以获得
    • 非管理玩家无论何种模式都会默认被调整为冒险模式,以前只要是创造模式就不会调整
    • 并且,非管理玩家在等待期间超界时也会被传送回来,以前只要是创造模式就不会传送
  • 现在其他队伍的玩家不再能开启其他队伍的箱子,除非该队伍已被淘汰
  • 提高了本模组的最低版本需求到 1.21.100
  • 将包图标改成了床
  • 更改了铁锻炉的图标为熔炉
  • 现在末影龙的落点高度是根据地图的最低高度而设定的,而非锁定在(0,60,0)落点

漏洞修复

  • 修复了灰队的铁傀儡无法辨认剩余时长的问题
  • 修复了末影珍珠的出界检测会包括顶面的问题,这个问题可能导致向上扔的末影珍珠被吞掉
  • 修复了在弓击中同队玩家时会多次响起音效的问题
  • 修复了在最高处或最低处平搭依然会阻止搭路的问题
  • 修复了启用创造模式玩家可破坏方块的设置后,生存模式的玩家也能破坏方块的问题
  • 修复了含水床无法检查的问题
  • 现在被淘汰的玩家在二度离开游戏后,不再会重复播报队伍被淘汰;并且二度返回游戏后不再会重复播报该玩家已死亡
  • 修复了无法破坏蕨的问题
  • 修复了使用铁傀儡右键箱子会放置铁傀儡的问题
  • 修复了床自毁会提示所有玩家的问题,现在不再对旁观玩家提示床自毁
  • 修复了在地图屋顶中可以冲毁地毯、铁轨和花盆的问题
  • 修复了在地图乐园中可以冲毁地毯的问题
  • 修复了在被铁傀儡、蠹虫攻击后,不会解除隐身效果的问题
  • 现在开始游戏后不再提示无效队伍已被淘汰