银库

银库

这是一个用于我的模组之间共享代码的库。

SilverLib

SilverLib 是我所制作的模组共用的一个共享库。它包含了我多个模组都需要的代码和功能,因此每个模组都能专注于自身的玩法,而不必重复实现相同的底层机制。

SilverLib 本身不会改变任何内容。 它不会添加任何物品、方块、掉落物、经验值或奖励。它只是记录信息,并通过 API 将其暴露给其他模组读取。安装它是因为有其他模组依赖它。

当前功能

战斗贡献追踪

SilverLib 会记录谁对某个生物的死亡做出了贡献以及贡献了多少。其他模组可以利用这些信息来公平地回答诸如“这次击杀应该归功于谁?”或“这些经验值应该如何分配?”之类的问题,而不是把所有功劳都算在打出最后一击的人头上。

对于每一个活体实体,自其上次处于满血状态以来,它都会记录:

  • 受到的总伤害,来自所有来源,包括环境和其他生物。
  • 每位玩家造成的伤害,并对过量伤害进行上限处理,因此对 1 点生命值的生物造成 100 点伤害只计为 1 点。
  • 间接伤害,例如火焰、中毒和凋零的持续伤害,归属于最后直接攻击该生物的玩家。火焰附加造成的击杀会记在该玩家名下,而不是“环境”。
  • 被减免的伤害,即由生物护甲、附魔和效果所减免的伤害,因此一场重甲战斗仍能反映出所付出的努力。
  • 每位玩家施加的效果。
  • 召唤物和弹射物归属于其主人,因此召唤师的狼或法师的法术都算作该玩家的贡献。

对于每位玩家,它还会记录谁为其治疗或提供了增益效果,这样关注辅助贡献的模组就能为辅助型玩家记功。

一旦生物被治疗回满血,该记录就会被清除。没有真正打起来的战斗不会延续到下一场。