结伴生命

结伴生命

每个人都选一个搭档,每对共享一根血条。你们中一人受伤,两人同感。一人死亡,两人皆亡。专为大型阵容打造。

每个人都要选一个搭档。每对搭档共享一条生命值。

两名玩家,共享一条生命值池。

你们其中一人受到伤害,两个人都会感受到。你们其中一人溺水,两个人都会溺水。你在进入时选择你的搭档,从那一刻起,你们就共享同一条命。

为什么用搭档制,而不是整个服务器共享一条生命值

让整个服务器共享一条生命值在只有两三个朋友时很有趣。但当人数变多,它就会崩坏:

  • 每一只游荡的僵尸都是所有人的问题。
  • 没有人敢冒险,因为其他人都会为此付出代价。
  • 一个粗心的玩家就能让那些甚至不在线的人结束本次游戏。
  • 没有个人的故事。只有一条生命值,它不属于任何人。

“搭档生命”将羁绊限定在两个人之间。六名玩家变成三个独立的生命池。二十名玩家变成十个。一次死亡现在变成了关于那两个人的故事——是谁掉进了峡谷,是谁坚持要打苦力怕,谁需要为此解释。风险变成了搭档自己选择的决定。其他所有人都可以继续游戏。

这就是整个设计:保留共享生命的亲密感,去除对全体的惩罚。

选择搭档

未配对的玩家在加入时会看到一个可点击的选择器:

 
 
 
 
 
 
 
 
 
 
──────────────────────────────────
选择你的搭档
你和你的搭档将共享一条生命值。
 
[ 马克 ] [ 德斯蒙德 ] [ 本 ]
 
点击名字发送请求。
──────────────────────────────────
 
 

被选择的人会看到 [ 接受 ] / [ 拒绝 ] 按钮。一旦双方同意,这对搭档就被锁定——不能在事情变得不方便时随意更换搭档。

当你们确实想重新洗牌时,管理员可以开启一个重新配对窗口:

 
 
 
/pairedlife reroll open 10
 
 

每个人都会收到一个可点击的通知,搭档可以在十分钟内自由更换,然后再次锁定。非常适合在季与季之间使用。

未配对的玩家可以正常游玩,所以人数为奇数也没问题。

每对搭档都有一种颜色

 
 
 
 
❤1 迪伦 ❤1 马克 ← 都是青色
❤2 德斯蒙德 ❤2 本 ← 都是金色
 
 

颜色和标签来自原版记分板队伍,所以它们会出现在任何显示名字的地方——聊天栏、玩家列表、死亡信息,以及头顶上的名字标签。一眼就能看出谁和谁是一对。有十四种可读颜色,当一对搭档解散时,他们的搭档编号会被回收。

当你死亡时实际会发生什么

 
 
 
 
马克被苦力怕炸死了 ← 真实的死亡
迪伦因马克而死 ← 他的搭档也随之而去
 
 

当搭档中第一个重生时,生命值池会重新填满。如果第二个还在盯着死亡界面,而第一个已经开始受到伤害,那么第二个重生时就会继承当前生命值池中剩余的量。

两条死亡信息都是可配置的文本。

共享什么,不共享什么

共享:生命值和死亡。

个人:饥饿值、经验值、物品栏和状态效果。吸收生命值也是个人的——金苹果保护的是吃下它的玩家,在伤害进入共享生命值池之前就被吸收了。

伤害会叠加(两个搭档同时受到伤害会使生命值池消耗速度加倍——这就是重点),但生命恢复是标准化的,所以吃饱的搭档恢复速度只相当于一个人的速度,而不是双倍。

为模组包而生

  • 零 Mixin。生命值每 tick 校准一次,而不是挂钩伤害管线。这意味着没有注入点会与其他模组冲突,并且它会自动拾取来自它从未听说过的模组的伤害和治疗——模组武器、自定义 Boss 攻击、治疗物品、/heal,任何改变生命值的东西。
  • 仅服务端。你的玩家可以使用完全原版的客户端加入。每个提示都是带有点击事件的普通聊天消息。无需安装任何东西。
  • 一个依赖:Fabric API。
  • 搭档关系持久保存,在重启和服务器崩溃后依然保留,以可读的纯 JSON 格式保存,你可以在游戏间隙检查或手动编辑。

命令

玩家

命令  
/pair 打开搭档选择器,或显示你的状态
/pair <玩家> 发送请求(或接受对方的请求)
/pair accept|deny <玩家> 响应请求
/pair status 你的搭档和你们的共享生命值
/pair list 服务器上的所有搭档
/unpair 在重新配对窗口开放期间,离开你的搭档

管理员 — /pairedlife,权限等级 2

命令  
reroll open [分钟] / reroll close 开放或关闭重新配对窗口
pair <玩家A> <玩家B> / unpair <玩家> 强制配对
sethealth <玩家> <生命值> / heal <玩家> 调整一对搭档的生命值池
list / reset / reload 查看、清除、重新加载配置

可配置

config/pairedlife.json,可透过 /pairedlife reload 实时重载。除其他外,你可以:

  • 关闭共享死亡,这样幸存者会留下半颗心而不是一起死亡。
  • 将 maxTeamSize 提高到 3 以支持三人组。内部逻辑是通用的,所以更大的队伍也使用相同的代码路径,不过只有三人组经过测试。
  • 完全解锁搭档,或让玩家随时自行重新配对。
  • 重新措辞所有消息,包括两条死亡信息。
  • 将伤害反馈切换为快捷栏上方、聊天栏或关闭。
  • 如果你的整合包已经使用了队伍,可以禁用记分板颜色。