饥荒联机版吧 关注:13,492贴子:32,672
  • 1回复贴,共1

饥荒联机版 mod制作求助。

取消只看楼主收藏回复

哪位大佬能回答一下小弟的疑惑?
如何才能让每个冬天比上一个冬天长2天?季节相关的代码网上没有指引看不懂 现在脑袋一个头俩大。


IP属地:辽宁1楼2020-05-31 19:22回复
    感谢村霸大佬的帮助 我用了一个很蠢的办法直接修改 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


    IP属地:辽宁3楼2020-06-02 14:01
    回复