饥荒联机版吧 关注:13,469贴子:32,465
  • 7回复贴,共1

饥荒联机版 mod制作求助。

只看楼主收藏回复

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


IP属地:辽宁1楼2020-05-31 19:22回复
    TheWorld:PushEvent("ms_setseasonlength", {season = "winter", length = 20})


    2楼2020-06-02 10:23
    收起回复
      2025-12-25 19:33:53
      广告
      不感兴趣
      开通SVIP免广告
      感谢村霸大佬的帮助 我用了一个很蠢的办法直接修改 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
      回复