时间冻结与循环

时间冻结与循环

冻结时钟,每日循环时间(触发→目标),并在服务器在线玩家不足时自动重置血月之夜。主要设计用于与朋友一起游玩,当每个人都想在不同时间玩耍时。- 适用于

游戏玩法

时间冻结 — 7日杀 (v2.3 b9)

这是一个服务器端模组,如果在专用服务器上运行,客户端无需安装。
EAC 应被禁用。

冻结时钟,每日循环时间(触发→目标),并在服务器人口稀少时自动重置血月之夜。

  • 适用于单人游戏、主机和专用服务器
  • 通过控制台命令和简单的Config.xml文件进行控制

它是如何工作的

时间冻结

  • 当开启时,游戏内时钟会暂停。
  • 您也可以跳转到某个时间点并立即冻结在那里。

每日时间循环

  • 当启用时,一旦时钟跨过触发小时(例如,22:00),它就会跳转到同一天的目标小时(例如,06:00)。

血月保护(服务器上无需玩家数量且为血月日)

  • 即使每日循环关闭也能工作。(通过 BmMinPlayersForReset 控制)
  • 仅在血月日:如果时间达到或超过屏障时间(默认 21:59)且在线玩家数量低于阈值,则当晚时钟将重置为目标小时(默认 06:00)。

该模组使用三参数 settime <当前天数> <小时> <分钟> 来避免更改天数。
时间检查使用一天中的分钟数,因此游戏昼夜长度(例如,60 对 120)不会影响逻辑。


命令

所有命令都要求你的权限等级在 RequiredPermissionLevel 中设置(默认为 0 = 仅管理员)。
控制台/Telnet/单人游戏主机始终被允许。

状态
tl
显示世界时间、冻结/循环状态、血月设置以及所需的权限等级。


冻结
tl_freeze
→ 显示冻结状态

tl_freeze 开启
→ 冻结在当前时间

tl_freeze 现在
→ 将冻结时间更新到当前时刻(保持冻结)

tl_freeze on set <天> <小时> <分钟>
→ 跳转到精确时间并冻结在那里

tl_freeze 关闭
→ 解冻;时间正常流动


循环与血月
tl_loop
→ 显示循环和血月设置

tl_loop 开启 | 关闭
→ 启用/禁用每日循环

tl_loop 触发器 <0-23>
→ 设置循环触发小时(当跳跃发生时)

tl_loop 目标 <0-23>
→ 设置循环目标小时(跳转至的时间点)

tl_loop min
→ 循环天数至触发器和目标中给定的值,如果在线玩家数量少于 N(0 表示禁用此规则)

tl_loop bmsafe 开启 | 关闭
→ 启用/禁用血月保护(独立于每日循环)

tl_loop bmbar <小时 0-23> <分钟 0-59>
→ 设置血月屏障时间(默认 21 59)

tl_loop bmmin <N 0-2000>
→ 仅在血月期间重置,且在线玩家少于 N 时生效(设为 0 可禁用此规则)

tl_loop 频率 <N>
→ 覆盖血月频率(0 = 使用游戏自身设置)

笔记

  • 每日循环在时间从下方跨越触发器时触发(处理午夜回绕)。
  • 血月保护机制在血月日期间,当时间大于或等于 tl_loop bmbar 且在线玩家数量少于 tl_loop bmmin 时触发一次。
  • 为了 BM 安全,请使用早晨目标(例如 6)。(目标值 ≥22 可能会被限制在 21,以避免回绕到 horde。)

配置文件(默认值)
如果缺失则自动创建;加载时会对值进行验证和限制。

<时间冻结>
  <!-- 冻结(默认关闭) -->
  <Enabled>false</Enabled>
  <FrozenWorldTime>0</FrozenWorldTime>

  <!-- 每日循环(默认关闭) -->
  <LoopEnabled>false</LoopEnabled>
  <LoopTriggerHour>22</LoopTriggerHour>
  <LoopTargetHour>6</LoopTargetHour>
  <LoopMinPlayersForLoop>2</LoopMinPlayersForLoop>

  <!-- 血月保护机制(默认开启) -->
  <BloodMoonSafe>true</BloodMoonSafe>
  <BmBarrierHour>21</BmBarrierHour>
  <BmBarrierMinute>59</BmBarrierMinute>
  <BmMinPlayersForReset>4</BmMinPlayersForReset>

  <!-- 血月频率覆盖(0 = 使用游戏设定) -->
  <BloodMoonFreqOverride>0</BloodMoonFreqOverride>

  <!-- 谁可以运行 tl_* 命令(0 = 默认仅管理员) -->
  <RequiredPermissionLevel>0</RequiredPermissionLevel>
</时间冻结>

参数参考

  • Enabled — 冻结开关(运行时 tl_freeze 开关状态的镜像)。
  • FrozenWorldTime — 冻结时刻的内部计时(自动管理)。
  • LoopEnabled — 开启/关闭每日循环。
  • LoopTriggerHour — 循环触发的小时(0–23)。
  • LoopTargetHour — 要跳转至的小时(0–23)。
  • LoopMinPlayersForLoop - 仅在在线玩家数小于设定值时重置循环时间(设为0则禁用)。
  • BloodMoonSafe — 开启/关闭血月低人口重置(独立于循环)。
  • BmBarrierHour, BmBarrierMinute — BM日的屏障时间;重置发生在此时间或之后。
  • BmMinPlayersForReset — 仅在在线玩家数小于该值时重置(设为0则禁用)。
  • BloodMoonFreqOverride — 强制血月频率;使用0则遵循游戏设定。
  • RequiredPermissionLevel — 运行 tl_* 命令所需的最大权限等级(默认为 0)。

示例

经典夜间循环
tl_loop 开启
tl_loop 触发器 22
tl_loop 目标 6

保护低级玩家时间循环
tl_loop 开启
tl_loop 触发器 22
tl_loop 目标 6
tl_loop min 2

在血月期间保护低玩家数量
tl_loop bmsafe 开启
tl_loop bmbar 21 59
tl_loop bmmin 4
tl_loop 目标 6

瞬间冻结,然后恢复
tl_freeze 开启
tl_freeze 关闭


故障排除

  • “Command not found” → 确保 ModInfo.xml 指向 TimeFreeze.dll 且两者均位于 Mods/TimeFreeze/ 目录中
  • BM重置未触发 → 检查 tl_loop bmsafe 是否开启,tl_loop bmmin(大于0),tl_loop bmbar,确认当天为血月日。
  • 循环未触发 → 确保 tl_loop 开启,且时间确实从下方跨越触发点(例如,21:59 → 22:00)。