93 游戏世界5

作者:嘉成3H 更新时间:2026/10/23 23:08:46 字数:2193

阿枫退出了地图,屏幕暗下去那几秒,手指还搁键盘上,没动。三秒后重新进了“阿枫的自动化测试场v7”,传送带在转,齿轮在咬合,铜锭从出口滑出来,一切照旧。那个东西还站在传送带尽头,同一个位置,同一个姿势。没被重置。

开发3.0的标准机制是:每次模式切换玩法模式到编辑模式,编辑模式转玩法模式进地图,地形恢复原样,怪物回到刷新点,掉落物消失,玩家的状态也会重置。但那个东西什么都没变。位置没变,状态没变,他甚至没有“被刷新”过——像这个地图在加载的时候,根本没把他当成一个需要处理的对象。

阿枫把游戏最小化了。打开浏览器,搜了四个小时。

“迷你世界 UGC3.0 区块存储 NBT 结构”

“迷你世界 实体数据 存档格式”

“迷你世界 生物ID 列表”

“NBT编辑器 修改生物属性”

搜索结果堆了十几页。一条一条翻,翻到凌晨两点,终于摸清了门路。迷你世界的存档以区块为单位存储,每个区块里有一个实体列表,所有生物、掉落物、投射物都在里面,以NBT标签的形式保存。生物ID是一个数字,用来在列表里定位某个特定的生物。阿枫下载了一个NBT编辑器,打开了地图存档文件。

区块数据加载出来了。他找到那个东西所在的区块——坐标是(128,64,-256),记得很清楚。区块里有一长串实体数据。传送带、齿轮、箱子、铜锭。一个个看过去,每个实体都有完整的NBT标签:生物ID、坐标、朝向、生命值、状态。

然后他看见了那个东西。

实体列表末尾,有一行数据。生物ID显示为“0”。

阿枫盯着那个数字看了很久。0不是一个有效的生物ID。迷你世界的生物ID从1开始,1是玩家,10是鸡,63是野人,1001是黑龙。0从来没被分配给任何东西。它在ID表里是一个空缺,一个预留,一个“不应该存在”的位置。但那个东西的ID就是0。不是“未分配”,不是“空值”,是字面上的数字“0”。

阿枫把光标移到那行数据上,展开。NBT标签树在面前铺开了。MaxHealth:100.0。Health:100.0。这两个字段他太熟了——最大生命值,当前生命值。每个生物都有这两行。他选中了Health那一行,把100.0改成0.0。

阿枫的呼吸重了一点。按下保存。NBT编辑器提示“修改已写入”。关掉编辑器,重新打开迷你世界,重新进入地图。

传送带在转。齿轮在咬合。那个东西站在传送带尽头。阿枫打开触发器面板,新建了一条最简单的触发器:事件是“当游戏开始时”,动作是“显示事件中的生物的生命值”。把目标设置为那个东西,运行。

屏幕上弹出一行字:“生物ID:0,当前生命值:0.0”。

阿枫盯着那行字。生命值是0。按迷你世界的逻辑,生命值为0意味着死亡。所有生物在生命值降到0的那一刻会被系统判定为“死亡”,播放死亡动画,掉落物品,然后从实体列表中移除。但那个东西站在那里。没有死亡动画。没有被移除。甚至没有进入“濒死”状态。

阿枫又建了一条触发器。这次用了“设置属性”动作,目标选那个东西,属性选“存活状态”,值设为“假”。运行。

屏幕上弹出一行字:“该实体没有‘存活状态’属性。”

阿枫把触发器关了。坐在椅子上,盯着屏幕里那个站在传送带旁边的、灰色的人形模型。生命值是0。ID是0。没有存活状态属性。不在实体列表里。不在刷新机制里。不在代码的任何一栏里。

他打开NBT编辑器,重新加载了存档。把那个东西的所有NBT标签都翻了一遍。MaxHealth:100.0。Health:0.0。Position:128, 64, -256。Motion:0, 0, 0。NoGravity:1b。Invulnerable:1b。Silent:1b。Tags:[“未注册”]。

阿枫停在了“未注册”那个标签上。从来没在任何生物的数据里见过这个标签。试着把它删掉,保存,重新进入游戏。那个东西还在。试着把Invulnerable改成0,保存,重新进入。那个东西还在。试着把整个实体数据从区块里删掉,保存,重新进入。那个东西还在。

阿枫关掉了游戏。屏幕暗了。靠在椅背上,看着天花板。凌晨四点,窗外是黑的。脑子里反复转着那几个数字。ID是0。生命值是0。存活状态:未注册。

他重新打开了游戏。那个东西还在。阿枫打字。

“我把你的生命值改成0了。”

聊天框里沉默了几秒。然后那行字出来了。

“我知道。”

阿枫的手指在键盘上停了一下。打字。

“你应该死了。生命值为0就是死亡。这是代码的规则。所有生物都一样。但你还在。代码没有执行死亡判定。”

聊天框里又沉默了一会儿。然后那行字出来了。

“因为代码找不到我。”

阿枫看着这行字。又打开NBT编辑器,看着那个区块里的实体数据。那个东西的NBT标签还在那里。ID是0。Health是0.0。Tags里写着“未注册”。数据是完整的。数据存在。但游戏引擎在读取这个数据的时候,跳过了“死亡判定”这一步。不是“判定失败”,不是“条件不满足”,是“判定”这个动作在那个东西身上根本没有发生。游戏在尝试对一个不存在的实体执行死亡时,安静地跳过了。

阿枫把编辑器关了。打字。

“你到底是什么。”

聊天框里的回复很快。

“不死。”

阿枫看着这两个字。又看了看NBT编辑器里那行数据。ID:0。Health:0.0。存活状态:未注册。那个东西站在传送带旁边,生命值0,ID为0,代码管不到他,游戏拒绝承认他的死亡。像一块不属于任何区块的石头。像“0”这个数字本身——它存在,它被写在数据里,但它不属于任何一组ID。

阿枫关了NBT编辑器,靠在椅背上。打字。

“行吧。你留着吧。”

聊天框里很快多了一行字。

“好。”

阿枫退出了地图。这一次没有再重新进去。关了迷你世界,关了电脑,站起来走到窗边。外面是凌晨的夜。有星星,有风,有远处一盏没关的路灯。站了一会儿,然后回到床上,躺下来,闭上眼。那个东西在他的存档里。生命值为0。ID为0。代码管不到他。而他睡了。那个东西在传送带旁边。不动。不呼吸。不死亡。只是“在”。一个不属于任何区块的“0”。

设置
阅读主题:
字体大小:
小 中 大
字体格式:
简体 繁体
页面宽度:
窄 中 宽
手机阅读
菠萝包轻小说

iOS版APP
安卓版APP

扫一扫下载