陆辞伸手碰上那层光幕时,指尖先是一凉,紧接着像按进了一层高密度的静电薄膜。头发被轻微地带了起来,耳边所有杂音在一瞬间抽空。
穿过那层阻力,他已经站在了便利店里。
视觉捕捉到的第一帧画面在零点几秒内完成了环境渲染。陆辞的目光像雷达探针一样迅速扫过整个空间,本能地进行着初始状态评估。这就像是一个刚刚上线便出现异常的子系统,充满了违和的拼接感。物理边界被完全封死,玻璃门外的街道扭曲成了一片噪点般的混沌色块,显然是不存在可行路由的死胡同。人员分布呈现出典型的恐慌聚集特征——零散的节点向货架的死角和立柱后靠拢,试图寻找掩体。只有一个核心异常实体,正静静地立在收银台的核心计算区,散发着某种呆板却致命的进程威压。整套副本的架构一目了然,接下来就是找漏洞的问题。
冷气开得很足,皮肤立刻起了一层鸡皮疙瘩。冰柜压缩机低低轰鸣,头顶的灯白得刺眼,把四排货架照得没有一点阴影。空气里只剩下关东煮老汤那种久煮后甜腻发齁的味道。
十五个人,被困在这不到一百平的空间里。
两个老人,三个小孩,剩下的是附近居民和一名值夜班的女店员。女店员缩在收银台后,脸色青白,工牌还挂在胸前。陈伯的孙女圆圆正被一个年轻母亲搂在怀里,哭得发抖。还有一个七八岁的小男孩蹲在饮料柜边,手里死死抓着一包薯片,像抓着唯一的救命绳。
收银台里面,站着店员。
红色围裙,白色衬衣,身材和正常便利店店员差不多。可它根本没有五官,整张脸就是一整块不断滚动的商品条码,黑白线条像液体一样从额头流到下巴,最中间裂开一道细缝,发出没有起伏的电子音。
欢迎光临。
请遵守本店规则,祝您购物愉快。
六行发光的文字悬在半空。
【规则一】本店全天营业。营业期间,所有顾客不得从正门离开店铺。
【规则二】店铺每30分钟进行一次库存盘点。盘点时所有顾客须空手站在收银台前接受清点。
【规则三】盘点时手中持有未结账商品的顾客视为盗窃,由店员处理。
【规则四】结账须在收银台完成。支付方式:以顾客的个人持有物进行交换。
【规则五】累计成功结账3次的顾客将获得VIP资格。VIP顾客可从员工通道离开。
【规则六】员工通道位于冷藏室后方。非VIP及非本店员工不得接近。
陆辞的视线在半空中停顿了数秒,大脑仿佛开启了多线程解析。这套规则的逻辑闭环做得很粗糙,像个赶工出来的半成品脚本。规则一锁死了常规出口,制造了密室的底层框架;规则二和三是定时触发器与惩罚函数,且判定条件极其刻板——空手和手中持有,这种模糊的变量声明在严谨的开发环境里必然会导致报错,更别说在边界条件上打漏洞了。规则四和五是这个副本的核心交易接口,个人持有物与VIP资格,意味着存在数据交换和提权通道。至于规则六,简直就是明晃晃地把后门写在了注释里,只差没标上管理员入口了。系统的运行逻辑越是死板僵化,可供注入的漏洞就越多。
哥哥……圆圆隔着人群看见他,眼泪都没擦,我奶奶在外面。
她记错了。她爷爷在外面。
陆辞扫了她一眼,没纠正,只问:上一次盘点是什么时候?
收银台后的女店员愣了一下,声音发颤:三、三分钟前。它让我们都站过去。一个男的手里拿着矿泉水,直接……直接被拖进收银台里面了。
她说到最后,牙齿都在打战。
陆辞点头。
也就是说,下一个盘点还有二十七分钟。
足够做一轮测试。
他的目光落在规则四上。和地铁里那种刺目的红色冲突不同,这一次,只有个人持有物四个字在Bug视界下泛着发黄的边光,像一段没有写完注释的、定义极为模糊的字段。后面挂着一行小得几乎看不见的系统注释:
//type:personal_possession
//schemavalidation:null
陆辞的眼神微微一凝。
没做类型校验。
这意味着这个字段的定义远超实体物品,它指向的是更宽泛的你所持有的一切。物理物体算,抽象信息也可能算,甚至……记忆。
有没有人在我进来之前试过用钱结账?他问。
试过!一个戴眼镜的男人立刻接话,声音里满是惊恐,我给了它三百块,它收了,但只给我结了一瓶水。后来那个大姐把金戒指也给了,它也收了……
说明物理物品可用,但代价是真实且不可逆的。
陆辞又看向规则二和三。
盘点时空手。
盘点时手中持有未结账商品,视为盗窃。
空手和手中,是同一套判定范围。限定的都是双手。
口袋、腋下、帽兜,不在这个字段里。
陆辞走到货架边,随手拿了一罐黑咖啡,没有急着去结账,而是先塞进自己卫衣侧边的口袋。然后他站在原地,盯着那名条码脸店员。
对方没有反应。
他又把咖啡从口袋里取出来,重新握在手里。
条码脸的头,缓缓转了过来。
黑白条纹在它脸上高速滚动,像一把即将完成预热的扫描枪。
验证成功。
所有人听着。陆辞的声音不高,但这里没人敢不听,盘点前,手里不要拿任何没结账的东西。拿了也别怕,塞进口袋、帽子、衣服里,只要不在手上,就不算手中持有。
一个中年女人怔怔看着他:你怎么知道?