实时全面革新

实时全面革新

实时大修时钟以1:1真实时间运行。 包含与NTP和系统时间的同步。 任务锁定、作物和露水收集器时间已调整,因此您无需等待7个真实小时来获取水。 血月时间调整为30分钟。 谁想要

游戏玩法

实时大修

1:1实时游戏玩法,NTP同步,30分钟血月限制,以及真实的资源计时。

AlwaysOpenTrader - 由于商人会关闭6个真实小时,我将此模组添加到了我的专用服务器中。随后我在Real-Time Overhaul中增加了专门在血月期间关闭商人的功能。若需要标准行为,不安装此模组也不会影响游戏。

核心功能

  • 原子时间同步1:1实时 - 一个真实秒等于一个游戏秒(基于RyanFaeScotland的实时时间流逝核心逻辑)
  • NTP服务器同步与伪精确计时
  • 动态漂移校正与智能调节速率
  • 持久时区支持与覆盖功能
  • 24/7时间推进 - 即使在线玩家为0时间仍持续流逝

血月大修

  • 30分钟血月持续时间限制
  • 血月期间智能商人锁定(商人在凌晨4点重新开放)
  • 自动重启预防

Realistic Resource Timing

  • Dew Collectors: 30-60 minute collection cycles
  • Plant Growth: 10-30 minutes per growth stage
  • Quest Lockouts: 5-minute cooldowns

控制台命令

时间管理

  • rtostatus - 显示完整模组状态,包括NTP同步和计时信息
  • rtosync - 强制立即进行NTP同步
  • rtorealtime - 强制将时间同步至当前真实时间

时区控制

  • rtotimezones - 列出所有可用的系统时区
  • rtotimezone America/Denver - 设置特定时区覆盖
  • rtotimezone system - 使用系统时区(默认)

支持的时区

该模组会自动检测您的系统时区,但您可以使用以下常用时区进行覆盖:

  • America/New_York - 东部时间(UTC-5/-4)
  • America/Chicago - 中部时间(UTC-6/-5)
  • America/Denver - 山地时间(UTC-7/-6)
  • America/Phoenix - 亚利桑那时间(UTC-7,无夏令时)
  • America/Los_Angeles - 太平洋时间(UTC-8/-7)
  • America/Anchorage - 阿拉斯加时间(UTC-9/-8)
  • Pacific/Honolulu - 夏威夷时间(UTC-10)

另可通过您系统的时区数据库获取数百个时区选项

技术规格

NTP时间同步

  • 15分钟同步间隔,支持多服务器冗余(pool.ntp.org, time.google.com, time.cloudflare.com, time.nist.gov)
  • 伪精度漂移追踪
  • 持久化偏移量存储可经受服务器重启
  • NTP失效时自动优雅降级至系统时间

血月机制

  • 通常在血月日的22:00正常开始
  • 30真实分钟(22:00-22:30),无论游戏内事件如何
  • 通过消耗追踪防止重启循环
  • 商人在血月期间锁定,并保持关闭状态直到凌晨4点(与AlwaysOpenTrader一起使用时作为“特性”)

资源计时

所有计时修正均使用实时计算而非游戏刻:

  • 露水收集器运作正常
  • 植物生长感觉正常
  • 任务冷却时间调整为符合原版游戏体验

服务器要求

  • UDP端口123用于NTP同步(若被阻止则自动回退)
  • 文件写入权限用于持久化设置存储

Compatibility

  • AlwaysOpenTrader - 与交易员封锁功能无缝集成
  • Dedicated servers - 已测试多人游戏支持
  • Existing worlds - 即插即用安装,无需重置世界

故障排除

时区问题

如果在Linux服务器上时间显示错误(尤其是无头Ubuntu,它可能对时区检测很固执):

  1. 检查系统时区:timedatectl status
  2. 列出可用时区:rtotimezones
  3. 手动设置:rtotimezone America/Denver

已知问题

容器环境漂移(AMP/Docker)

在容器化环境(如AMP)中运行时,我们遇到:

  • 时间抖动和频繁的漂移校正
  • 更激进的速率调整
  • 玩家离线时出现间歇性时间跳跃和长期精度漂移

这是由于容器CPU调度为游戏提供了间歇性的时间片,而不是平滑连续的执行,尤其是在没有玩家在线时。当漂移变得显著时,使用rtorealtimertosync命令来恢复准确性。

单人游戏命令

  • rtosingleplayer - 显示当前模式及使用帮助
  • rtosingleplayer 0 - 关闭(不推进天数)
  • rtosingleplayer 1 - 单日推进(1+ 现实天数 = 1 游戏日)
  • rtosingleplayer 2 - 实时同步(现实3天 = 游戏3天)

Credits

RyanFaeScotland - 原版“实时流逝”模组为1:1实时系统提供了基础框架。本模组在此卓越核心计时逻辑的基础上进行了扩展与优化。