感谢村霸大佬的帮助 我用了一个很蠢的办法直接修改 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
假如有兴趣的话欢迎大家指导一下萌新的我更改更简洁的代码完成这个功能。
下面是我修改的代码。
--添加一个计数器
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









