Project1

标题: 〖已解决〗有关于MOG时间插件的疑问。 [打印本页]

作者: 2118597581    时间: 2020-8-3 05:13
标题: 〖已解决〗有关于MOG时间插件的疑问。
本帖最后由 2118597581 于 2020-8-6 19:43 编辑

mog的时间插件可不可以实现或者说有什么办法可以实现
例如:每过X天刷新一次副本这样的功能。如果不能的话还有哪些时间插件可以实现,求大佬解答!

作者: 开关关    时间: 2020-8-3 06:37
本帖最后由 开关关 于 2020-8-3 09:57 编辑

给的信息有点少,我讲不出具体方法,只能提供个大概的思路。不论是MOG时间系统,还是其他的时间系统(比如Chronus),都可以用这个思路。

假设每过 10 天要刷新一次副本。在每次进入副本的时候,先判断是否应该刷新副本,如果该刷新就刷新。那么如何判断是否应该刷新呢?

让我们先加个功能:每次刷新副本时记录本次刷新的总天数(即现在是游戏开始后的第几天),首次进入必运行一次刷新。然后再明确求总天数的方法:MOG时间插件把年月日分开存储,我也没找到直接获取总天数的方法,所以对年月日分别乘包含的天数然后加总,再减去初始天数得到总天数。

在判断是否该刷新时,求本次进入副本总天数除以 10 的商,对其向下取整,记作 a ;求最后刷新天数除以 2118597581 的商,向下取整,记作 b 。只要 a 大于 b ,则本次进入副本也该刷新了。

之所以用这个方法,是因为这样顺便保存了最后一次刷新时的总天数,方便添加其他功能。

[line]3[/line]
表达不够,图片来凑。


[line]3[/line]
上面的思路就是将游戏中的时间按刷新频率分成等长度的无数阶段,每次进入副本的时候判断是不是已经到了新的阶段。如果到了新的阶段,就刷新副本;如果没到新的阶段,就不刷新副本。

下面写了一段极其繁琐的流程推演,实在不理解再看这个东西。

假设我们希望,游戏刚开始刷新一次副本,后面每 10 天刷新一次副本。初始日期是 0 月 0 日。接着我们假设一个玩家的游玩过程。

玩家在 0 月 5 日第一次进入副本,系统发现“最后刷新天数”为 0 ,这说明这是玩家第一次进入副本,所以不论当今是第几天,都强制刷新一次副本。刷新之后,系统便记住,最后刷新的天数是 5 。

玩家在 0 月 8 日进入副本,系统发现“最后刷新天数”为 5 ,这说明玩家不是第一次进入副本,所以不强制刷新副本。然后系统计算出 a 和 b 。 a 表示本次进入副本在第几阶段, b 表示最后刷新的时候在第几阶段。由于时间值只增加不会减小,所以 a 只能大于或等于 b 。如果 a = b ,则说明本次进入副本与最后一次刷新时在同一个阶段,那么就不需要刷新副本;如果 a > b ,这说明本次进入副本已经不在最后一次刷新时的阶段,那么就需要刷新副本。经过计算得出, a = 0, b = 0,所以不需要刷新。

玩家在 0 月 11 日进入副本,系统发现“最后刷新天数”为 5 不为 0 ,所以不强制刷新副本。然后系统计算出 a = 1 , b = 0 。因为 a > b ,所以需要刷新。刷新之后,系统便记住,最后刷新的天数是 11 。

玩家在 0 月 19 日进入副本,系统发现“最后刷新天数”为 11 不为 0 ,所以不强制刷新副本。然后系统计算出 a = 1 ,b = 1 。因为 a = b ,所以不需要刷新。

玩家在 0 月 30 日进入副本,系统发现“最后刷新天数”为 11 不为 0 ,所以不强制刷新副本。然后系统计算出 a = 3 ,b = 1 。因为 a > b ,所以需要刷新。刷新之后,系统便记住,最后刷新的天数是 30 。

玩家好久没有进入副本。

玩家在 0 月 2118597581 日进入副本,系统发现“最后刷新天数”为 30 不为 0 ,所以不强制刷新副本。然后系统计算出 a = 211859758 , b = 3 。因为 a > b ,所以需要刷新。刷新之后,系统便记住,最后刷新的天数是 2118597581 。

至此我们发现,每隔10天,玩家进入副本,看到的就是全新的副本,这已经实现了每10天刷新一次副本的效果。这个方法并没有真正意义上每隔10天刷新一次副本,而是在每次玩家进入副本的时候刷新。不过反正玩家不在副本中的时候,刷新了也没有意义,干脆这样更省劲。同理,如果希望每小时、每分钟改变一个数据,也可以使用这个思路——在调用这个数据的的时候中临时根据游戏时间计算出这个数据。

上面是修改后的图片,本Toggle中包含错误的图片。由于论坛的机制删不掉了,所以藏在这里。

作者: 2118597581    时间: 2020-8-3 07:24
开关关 发表于 2020-8-3 06:37
给的信息有点少,我讲不出具体方法,只能提供个大概的思路。不论是MOG时间系统,还是其他的时间系统(比如C ...

我太菜了现在还没看懂,我再仔细研究一下你写的
作者: 2118597581    时间: 2020-8-3 10:33
开关关 发表于 2020-8-3 06:37
给的信息有点少,我讲不出具体方法,只能提供个大概的思路。不论是MOG时间系统,还是其他的时间系统(比如C ...

大佬,我做出来副本刷新了,可总感觉和你说的不一样,但也确实做到了10天一刷新
作者: 2118597581    时间: 2020-8-3 10:35
我给你接截一个图你看看
作者: 2118597581    时间: 2020-8-3 10:39





作者: 2118597581    时间: 2020-8-3 10:42
不行,有问题
作者: 开关关    时间: 2020-8-3 11:47
暂时没看出来问题出在哪里。我也写了个事件,但是还没测试,可以互相看看有没有问题。


作者: 2118597581    时间: 2020-8-3 12:58
开关关 发表于 2020-8-3 11:47
暂时没看出来问题出在哪里。我也写了个事件,但是还没测试,可以互相看看有没有问题。

...

我去试试你的这个
作者: 神风炽羽    时间: 2020-8-3 13:26
可以试试我的记录真实时间插件,我内置了每过去一天就可以触发的事件,这样你只要设置好变量就行,翻我的贴去吧.....(我懒得找)




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1