游戏专辑 | 游戏更新 | 近期单机大作 | 单机游戏排行榜 | 论坛转帖 | 当游游戏盒 打造安全无毒、好玩的单机游戏下载基地
当前位置:首页游戏攻略游戏攻略 → 饥荒海难火山季时间错乱怎么办 火山季时间错乱解决办法

饥荒海难火山季时间错乱怎么办 火山季时间错乱解决办法

时间:2016/7/30 10:45:19来源:当游整理作者:当游

一些玩家碰到了饥荒海难火山季时间错乱问题,那么饥荒海难火山季时间错乱怎么办呢,下面小编为大家带来饥荒海难火山季时间错乱解决办法,一起来看下吧!

一些玩家碰到了荒海难火山季时间错乱问题,那么饥荒海难火山季时间错乱怎么办呢,下面小编为大家带来饥荒海难火山季时间错乱解决办法,一起来看下吧!

饥荒海难火山截图1

首先,如果你的档时间已经乱掉了,那么下面的办法是不能将这个错改回去的。

因为数据破坏已经发生了,你可以使用控制台GetClock().numcycles = [天数] 将时间强制重设,注意火山里的时间和外面是分开的,需要在你认为错乱的里面进行改动。

但是这样的话季节百分比之类的也会是错的,需要使用GetSeasonManager().percent_season = [季节内百分比,小数表示],来改回。比如GetSeasonManager().percent_season = 0.5即可设置为当前季节的一半。

类似的,GetSeasonManager().current_season = "spring" 可以将当前季节设置为春天。

当然还有其他的影响,不过一般来说影响不大。

设置完成后要小退再进一下,否则插件们还会显示旧值。

解决方法

好了,下面是免疫办法(其实是修BUG):

打开data\DLC0002\scripts\gamelogic.lua文件,定位到:

if travel_direction == "ascend" or travel_direction == "descend" then

print ("Catching up world", catch_up, "(", player_age,"/",world_age,")" )

改为

if travel_direction == "ascend" or travel_direction == "descend" or travel_direction == "ascend_volcano" or travel_direction == "descend_volcano" then

print ("Catching up world", catch_up, "(", player_age,"/",world_age,")" )

闲话:饥荒的作者在日期设计上有点奇怪==他不是采用统一的时间,而是每个世界(包括洞穴,火山)都有一一个独立的时间,只有当前世界的表会走。这样跳世界的时候时间会不一致。

按理说用跳之前世界的时间盖掉新世界的时间不就简单了吗?可是作者想允许不同世界的时间不一样,所以要用player_age(即玩家年龄)来同步两个世界(ROG和SW跳除外)。(这个设计真的是无力吐槽)

然后呢,当检测到用户是从一个世界跳到另一个世界的时候,它就触发这个同步的代码。跳世界(travel)的方式总共有:"ascend""descend"(上下洞穴)"shipwrecked"(跳ROG和SW)"ascend_volcano""descend_volcano"(进出火山)这几种。

当上下洞穴和进出火山的时候都需要同步时间(跳ROG和SW不需要),所以要在加载世界的时候需要检测下是不是要同步:

if travel_direction == "ascend" or travel_direction == "descend" then

print ("Catching up world", catch_up, "(", player_age,"/",world_age,")" )

所以现在你看出问题来了吗,作者在这里漏掉了"volcano_ascend"和"travel_direction"这两条。一旦你在火山里呆的时间超过一天,这个时间就应该要同步,但是由于作者的大意,这个同步永远不可能发生。。。

然后接下来问题得以扩散,整个世界都会乱掉。。。

当然了,这个同步错误仅仅会在游戏中跳世界时发生,如果你发现时间不对,退了再读次档也会没问题。(但是我不确定会不会一直没问题)

全新档使用GetClock():OnUpdate()模拟时间增长的方法下进出火山多次

测试通过。

补充更正

进一步看了下代码,之前有的地方说得不大对,更正如下:

饥荒累积时间单位是秒,所以在火山里面就算不够一天,出来的时间也会错开。

这个bug的触发条件比较苛刻,因为实际上如果你连着玩,catch_up这个值在GetClock()中就会获取到,前面那个大分支都不会进而直接LongUpdate更新时间,这时BUG是不会触发的。但是如果前面发生特殊情况(比方说进出火山的时候崩溃了,就会导致catch_up为nil从而进入那个有问题的分支。

以上便是饥荒海难火山季时间错乱解决办法,希望对玩家有所帮助!

饥荒:海难
3.6
类别: 动作冒险    大小:891.5 MB    语言: 中文
查看详细信息 >>
下载 400 次
更多

读完这篇文章后,您心情如何?

  • 0 不知所云不知所云
  • 0 雷囧雷囧
  • 0 愤怒愤怒
  • 0 超赞超赞
  • 0 搞笑搞笑
  • 0 难过难过
  • 0 路过路过
相关游戏
饥荒:海难

饥荒:海难
类型: 动作冒险
大小: 891.5 MB
语言: 中文
立刻下载

网友评论
热门评论
最新评论
查看所有评论(0)发布评论
昵称:
表情: 高兴 可 汗 我不要 害羞 好 下下下 送花 屎 亲亲
字数: 0/500 (您的评论需要经过审核才能显示)
游戏攻略推荐
美女图片
游戏攻略排行榜
单机游戏排行榜

关于当游 | 联系当游 | 广告合作 | 下载帮助 | 网站地图 |
超多好玩的单机游戏下载基地 当游网(3h3.com)单机游戏 越当越快乐
Copyright 2012-2016 www.3h3.com 版权所有 浙ICP备06019006号