跳到主要内容

诅咒之月

诅咒之月是 SSC 变身流程的核心世界机制。源码中的 CursedMoon 逻辑会读取公共配置,处理月相、触发转化、结束和治愈相关事件,并根据配置决定是否允许在诅咒之月期间睡觉。1

判定规则

默认公共配置 curseMoonPhase = [1, 5]。SSC 读取主世界月相:月相编号必须是 1 或 5,同时主世界时间必须已经过中午、尚未到午夜,才会进入诅咒之月。判定只看主世界,玩家所在维度不影响结果:

12000<(timeOfDaymod24000)<2300012000 < (\operatorname{timeOfDay}\bmod 24000) < 23000

也就是说,12000 tick(游戏内 18:00)和 23000 tick(23:00)本身都不算诅咒之月;状态在服务端计算后同步给在线玩家。

开始时发生什么

  • 每名玩家每个诅咒之月只应用一次开始逻辑;
  • 尚未启用模组内容的玩家只收到提示,不会按普通形态推进;
  • 已启用的玩家触发开始事件;
  • enableCursedMoonTransform=true 时,SSC 根据当前形态和 CursedMoon 原因请求下一形态;
  • 只有目标形态与当前形态不同时才启动变身;
  • 服务器记录本次月夜前后的形态,用于结束时判断恢复。

结束时发生什么

月相不再满足条件或夜晚结束时:

  • 如果玩家在月夜中通过治愈改变了形态,SSC 保留对应的治愈结果并触发相关进度;
  • 否则,SSC按当前形态的 CursedMoon 前一形态规则启动恢复;
  • 随后清空本次月夜的临时记录。

这解释了为什么诅咒之月带来的变化通常不是永久升级:正常结束时会沿月夜规则退回。但特殊形态、最终形态、治愈和其他变身原因可能改变结果。

睡眠

默认 allowSleepInCursedMoon=false。玩家在诅咒之月期间进入睡眠会被唤醒。服主可以在公共配置中放开此限制。

管理员测试

SSC 提供 shape_shifter_curse jump_to_next_cursed_moon 管理命令,用于跳到下一次诅咒之月。该命令需要权限等级 2。

备注

命令名称和权限来自当前 SSC 源码;触发后的具体结果仍取决于玩家形态、公共配置和世界状态。

资料来源

  1. 源码核对:SSC cursed_moon/CursedMoon.javaconfig/CommonConfig.javacommand/ShapeShifterCurseCommand.java,commit c0f0bbb9