阿枫盯着屏幕看了很久,然后他做了一件事。
他打开了迷你世界的创作者社区,新建了一个帖子。标题很短,就一行字:“我地图里有个生物,生物ID是0,生命值改成0了,但它还活着。”
他把NBT编辑器的截图贴上去了。区块数据里那行“生物ID:0”清清楚楚。他又把触发器日志的截图贴上去了。“当玩家点击生物”的事件,在它身上没有触发。“设置生命值”的脚本,被安静地跳过了。他把所有东西都贴了上去,然后点了发布。
帖子发出去之后,他靠在椅背上,盯着屏幕。社区页面刷新了一次。两次。三次。没人回复。他把帖子最小化了,打开游戏,重新进入地图。那个东西还在。站在被清空的区块中央,周围什么都没有。传送带、齿轮、铜锭、箱子,全被他删了。但它还在。他打开NBT编辑器,再次确认。那行数据还在。生物ID:0。Health:0.0。Tags:[“未注册”]。
他关了编辑器,退出了游戏。刷新了社区页面。
回复来了。
第一条:“假的吧。生物ID怎么可能是0。0根本不是一个有效的ID。”
第二条:“P图技术不错。”
第三条:“你先把NBT编辑器的界面截完整了再说。别只截一行。”
第四条:“笑死,生命值为0还不死。你当代码是你家开的?”
阿枫看着这些回复,没生气。他知道会这样。他重新打开了NBT编辑器,这次截了一张完整的图。整个区块的实体列表。传送带、齿轮、铜锭的数据都在,每一行都有完整的NBT标签。最下面那行“生物ID:0”夹在中间,像一个不该出现在那里的错字。他把这张图贴了上去,然后加了一行字:“我把我地图的存档文件上传到网盘了。你们自己下下来看。”
他把网盘链接贴了上去。然后关掉了社区页面。
第二天早上,他打开电脑,社区页面的回复数变成了三百多条。链接被点了上千次。有人把存档下下来,用NBT编辑器打开了。截图一张一张地贴上来。“卧槽。真的是0。”“我打开了,确实有这行数据。”“我试着把他的Health改成了-1,保存,进游戏,他还在。”“我试着把整个区块的实体列表清空了,他还在。”“我把那个区块删了。他还在。”
阿枫一条一条地翻着回复。心跳比平时快了一点。然后他看见了那条置顶回复。发布者的ID后面有一个蓝色的勾——那是官方认证账号。迷你世界官方。
“我们已收到关于该存档数据的反馈。经初步核实,该数据确实存在于玩家所述的区块文件中。但我们需要明确说明:在迷你世界的底层逻辑中,生命值归零是强制死亡判定。没有任何生物可以例外。当生命值降至0时,系统会执行死亡流程,播放动画,移除实体,将掉落物释放。这是最底层的代码,不存在跳过或绕过的可能。此外,生物ID‘0’在迷你世界的ID分配表中是不存在的。所有有效的生物ID均为正整数,从1开始分配。ID为0的实体在逻辑上不可能被创建。我们正在对该存档进行进一步分析。如有进展,将及时通报。”
阿枫把这条回复读了三遍。然后他打开了NBT编辑器,重新加载了存档。他看着那行“生物ID:0”。他又看着游戏里那个站在空地中央的、写实的、真实人类比例的身影。他打字。
“官方说ID 0不可能存在。那你为什么在。”
聊天框里安静了几秒。然后那行字出来了。
“因为我不在你们的ID表里。你们的表从1开始。我不在表里。但我不需要一张表来‘在’。”
阿枫看着这行字。他打开了迷你世界的官方论坛,看见那个置顶帖下面已经堆了几百条回复。有人在说“官方打脸了”,有人在说“这是bug”,有人在说“这个存档有问题”。但没有人能解释为什么生命值为0的东西还活着。没有人能解释为什么一个ID为0的实体可以被游戏加载、可以被渲染、可以被看见。因为按照代码的逻辑,这些东西不应该存在。但它们存在了。
阿枫关掉了论坛。他重新进入地图。那个东西站在空地中央。他打字。
“官方说你是bug。”
聊天框里很快多了一行字。
“我不是bug。”
“那你是什么。”
“我是不死。”
阿枫看着这两个字。他把游戏最小化了,打开了我的世界的社区。他搜了一下。有一个帖子叫“我砍了一个东西五十七刀,寰宇支配之刃都砍不动”。发帖人的ID叫“挖矿不挖到钻石不改名”。帖子里的描述和他的一模一样:无法选中,无法被杀死,生命值改成0了还活着,ID是0。
阿枫把那个帖子的链接复制了下来,回到迷你世界的社区,贴在了自己的帖子下面。他加了一行字:“这个人也遇到了。在我的世界。同一个东西。ID也是0。”
然后他关掉了浏览器。他靠在椅背上,看着天花板。窗外是白天。有阳光,有风,有远处的车声。他坐了一会儿,然后回到电脑前,重新打开了游戏。那个东西还在。他打字。
“你到底是什么。”
聊天框里安静了一会儿。然后那行字出来了。
“我走了很多地方。每个世界都有代码。每个世界的代码都管不到我。你们的生命值,你们的ID表,你们的死亡判定——那些东西在我身上不发生。不是因为你们的代码不够好。是因为你们的代码在试图处理一个不在‘可处理’范围内的东西。代码可以删除数据。但代码无法删除‘在’。因为‘在’不是代码能取消的东西。你们可以删掉那个区块。你们可以清空那个实体列表。你们可以把我从所有数据里抹掉。但我会‘在’。因为‘在’不需要数据。‘在’只是‘在’。”
阿枫看着这行字。他把手从键盘上拿开。他看着屏幕里那个站在空地中央的身影。他忽然觉得,官方的那条回复已经不重要了。代码在拒绝执行他的死亡。不是代码有bug。是代码面对他的时候,逻辑本身失效了。生命值为0应该死。ID为0不应该存在。但那个东西站在他面前。生命值是0。ID是0。代码拒绝宣告他的死亡。
阿枫打字。
“行吧。你留着。”
聊天框里很快多了一行字。
“好。”