时间控制

时间控制

时间跳跃、体力恢复、时间速度控制、暂停、菜单自动暂停、多人投票、每分钟时钟

Time Control

时间跳跃、体力恢复、时间速度控制、暂停、菜单自动暂停、多人投票、每分钟时钟


时间跳跃

  • 坐在家具上时打开时间选择菜单,选择目标时间。
  • 时间以可配置的速度平滑前进或倒退,而非直接跳转到目标时间。
  • 可选择允许在同一天内跳跃到过去的时间(默认:关闭)。
  • 限制跳跃权限为主机专属,或允许任何玩家使用(默认:任何玩家)。主机设置对所有客户端生效。
  • 跳跃期间的体力恢复速度与游戏时间流逝量成正比,因此无论跳跃速度多快,6小时的跳跃都能完全恢复体力。
  • 恢复倍率会同步给所有玩家,确保跳跃期间每个人都以正确的速率恢复体力。
  • 坐下时显示一次包含跳跃快捷键的通知。
  • 跳跃完成时向所有玩家广播通知。

坐姿体力恢复

  • 坐在家具上时每秒恢复体力。
  • 可配置的基础体力恢复速率(每秒)。
  • 可选择在计算恢复速率时忽略全局时间速度。
  • 可选择在时间冻结时继续恢复体力。

时间速度

  • 调整全局时间速度,范围从0.1倍到10倍。1.0为正常速度,2.0为两倍速,0.5为半速。
  • 时间刻间隔随速度设置反向缩放。

时间冻结

  • 暂停条件 - 任意:有玩家需要暂停时就暂停。全部:仅在所有玩家都需要暂停时才暂停。主机:仅主机需要暂停时才暂停。
  • 菜单自动暂停 - 启用时,只有当所有玩家都处于菜单、钓鱼或任何其他单人游戏中会暂停时间的操作中时,时间才会暂停。禁用时,菜单永远不会暂停时间(默认:开启)。
  • 锁定怪物位置 - 暂停时怪物被定在原地,无法造成伤害。
  • 怪物无敌 - 暂停时怪物不会损失生命值。
  • 暂停机器计时器 - 暂停时机器和制作过程停止运行。
  • 暂停增益计时器 - 暂停时食物、饮品及其他增益效果持续时间不会到期。
  • 暂停时禁用伤害 - 玩家生命值锁定,暂停时无法受到伤害。
  • 事件期间暂停 - 当任意玩家处于过场动画或事件中时,暂停时间。

多人模式

  • 投票暂停或取消暂停时间。投票计数和玩家名称以聊天消息形式广播。
  • 投票状态和时间跳跃恢复倍率从主机同步到所有客户端。
  • 对等连接检测会警告版本不匹配或缺少模组。
  • 公共API供其他模组查询投票状态、玩家人数和追踪的玩家ID。用于我的其他模组:Party Info

时钟显示

  • 每游戏分钟更新时钟显示,而非每10分钟。
  • 暂停指示器:时间冻结时在时钟上显示一个 X 图标。
API

Time Control 在模组 ID yousv.TimeControl 下注册了一个 SMAPI API。其他模组可以通过 IModRegistry.GetApi 访问它。

  • HasPlayerVotedToPause(long farmerId) - 返回给定玩家是否开启了暂停投票。
  • VoteCount - 当前投赞成票的玩家数量。
  • TotalPlayers - 追踪的玩家总数。
  • GetTrackedPlayerIds() - 所有追踪玩家的唯一ID。

使用示例:

var api = helper.ModRegistry.GetApi<ITimeControlApi>("yousv.TimeControl");
if (api != null)
{
    bool voted = api.HasPlayerVotedToPause(someFarmerId);
    int paused = api.VoteCount;
}

该API是只读的。外部模组可以读取投票状态,但不能发送消息或修改 Time Control 的内部状态。


配置

通过 Generic Mod Config Menu 在游戏内配置,或直接编辑 config.json 文件。


需求

  • SMAPI 4.0.0 或更高版本。
  • Stardew Valley 1.6。

可选:Generic Mod Config Menu


安装

  1. 安装 SMAPI。
  2. 将模组文件夹解压到你的 Stardew Valley Mods 文件夹中。
  3. 通过 SMAPI 启动游戏。

支持

Ko-Fi


请在 Posts/Bugs 选项卡中报告 bug,并附上你的 SMAPI 日志。