感谢村霸大佬的帮助 我用了一个很蠢的办法直接修改 seasons.lua 的季节更新模块实现了这个功能。 假如有兴趣的话欢迎大家指导一下萌新的我更改更简洁的代码完成这个功能。 下面是我修改的代码。 --添加一个计数器 local lxjishuqi = 0 local OnAdvanceSeason = _ismastersim and function() _elapseddaysinseason:set(_elapseddaysinseason:value() + 1) if _mode == MODES.cycle then if _remainingdaysinseason:value() > 1 then --Progress current season _remainingdaysinseason:set(_remainingdaysinseason:value() - 1) else --Advance to next season _season:set(GetNextSeason()) _totaldaysinseason:set(_lengths[_season:value()]:value()) _elapseddaysinseason:set(0) _remainingdaysinseason:set(_totaldaysinseason:value()) _premode = false --冬季每次+5天 lxjishuqi = lxjishuqi+1 TheWorld:PushEvent("ms_setseasonlength", {season = "winter", length = 15 + 5 * lxjishuqi}) --_lengths["winter"]:set(50) --UpdateSeasonMode() end elseif _mode == MODES.endless then if _premode then if _remainingdaysinseason:value() > 1 then --Progress pre endless season _remainingdaysinseason:set(_remainingdaysinseason:value() - 1) else --Advance to endless season _season:set(GetNextSeason()) _totaldaysinseason:set(ENDLESS_RAMP_DAYS * 2) _elapseddaysinseason:set(0) _remainingdaysinseason:set(_totaldaysinseason:value()) _endlessdaysinseason:set(true) _premode = false --冬季每次+5天 lxjishuqi = lxjishuqi+1 TheWorld:PushEvent("ms_setseasonlength", {season = "winter", length = 15 + 5 * lxjishuqi}) --local data1 = {} --data1.season = 2 --data1.length = _lengths["winter"] + 5 --OnSetSeasonLength(data1,data1) --_lengths["winter"]:set(50) --UpdateSeasonMode() end elseif _remainingdaysinseason:value() > ENDLESS_RAMP_DAYS then --Progress to peak of endless season _remainingdaysinseason:set(math.max(_remainingdaysinseason:value() - 1, ENDLESS_RAMP_DAYS)) end else return end PushSeasonClockSegs() end or nil