Out of Combat
概述
以下是关于 Out of Combat 模组的功能的介绍:
支持几乎所有主要版本,即 1.12.2、1.16.1-1.16.5、1.18-1.18.2、1.20.1、1.20.6。
正如它的名字所代表的那样,它为 Minecraft 带来了一个简单但易于配置的 Out-of-Combat 机制。
Simple 意味着它的逻辑和机制都很简单:
(T1,T2,T3 是自变量,表示 Minecraft 游戏 Tick 的数量)
检测玩家是否在给定时间内未受到攻击/是否在给定时间内受到伤害。T1,T2;
如果玩家在时间内既没有受到攻击也没有受到伤害,则开始计算退出战斗的时间。T1,T2;
如果玩家攻击/受到伤害,请清除相应的计时器和非战斗计时器;
如果 out-of-combat time exceeded,则玩家退出战斗。T3;
由事件更新的 NBT 标签作为计时器,以实现上述逻辑。
此外,额外的倒数计时器将暂停非战斗计时器的 Tick,但不会清除它。它可以用于其他战斗机制。
例如,假设玩家可以在你的 Modpack 中获得类似“无敌”的能力。当这些技能被激活时,它们可能仍在战斗中,但不会受到伤害。
如果你愿意,你可以让这个倒数计时器倒计时的时间等于技能的持续时间。这样战斗外计时器就会等待技能停用,然后继续。
NBT 名称和结构:
这 4 个 NBT 标签保存在玩家的持久化数据中,其结构如下:ForgeData/PlayerPersisted。
ForgeData: {
PlayerPersisted: {
out_of_combat: {
noAttackingTime: 0L // No Attacking Timer
noAttackedTime: 0L // Not Being Damaged Timer
stopOutOfCombatTimer: 0L // Countdown. Before This is count to 0, Out-of-Combat timer will not tick.
outOfCombatTime: 0L // Out of Combat Timer
}
}
}
这意味着,你可以使用你的 Mod 或 CraftTweaker / KubeJS 脚本或任何其他类似的脚本轻松修改它们的值。
无需复杂的 API 或特殊的集成/兼容性。