饥荒联机 脚印机制分析 |
您所在的位置:网站首页 › 饥荒显示怪物来临时间 › 饥荒联机 脚印机制分析 |
引言 饥荒联机版中的脚印是玩家“捕获”相关野兽的唯一途径。但是这小小的脚印中却包含了很复杂的机制。 本篇文章将会针对脚印的生成,野兽的刷新等内容进行分析。注意,本文章不会包含如何追逐野兽等基础游戏方式的信息。 所有可能被脚印刷新的野兽将会在第一部分列出。文章的第二部分会对一些术语进行标注。文章的第三部分会讲解野兽的生成,只对该部分感兴趣的读者可以直接跳到第三部分进行阅读(建议参考第二部分对随机数的介绍)。第四部分会对追踪点 (hunt) 进行详细介绍。 第五部分将会针对万圣节事件进行相关补充。 一、野兽合集"koalefant_summer", 考拉象(粉色) "koalefant_winter", 考拉象(绿色) "lightninggoat", 电羊 "warg", 座狼 "spat", 钢羊 "claywarg", 陶瓷座狼(狗年活动专供) 二、术语补充1.随机数。 随机数是指随机从一个范围内选取的一个数字。 2.概率产出。 概率产出是以一定概率p产出某种物品。 例如,当一个物品为概率产出时且产生概率为0.5时,系统会随机产生一个从0到1的随机小数,并和0.5进行比较,如果这个随机数小于0.5,则会产生这个物品。 3.随机范围。{a,b}表示在a,b两个数里面选一个。 [1,a]表示从1(包含)到 a(包含)的范围。与数学中闭区间意义相同。举例 [1,3] 表示在 {1, 2, 3}三个数字。 4.土堆,脚印和追踪点。在饥荒世界中,这三者是三个完全不同的物品,但是又彼此联系。土堆,是玩家平常看到的土堆,也就是我们需要翻开的那个东西。 脚印,特指玩家土堆翻开后,看到的脚印,且脚印的指向为下一个土堆所在地。追踪点,这个没有确切的翻译。虽然这里把它叫做点,但是它其实并不是一个点。在代码中的变量名为 hunt 。 为了不产生歧义,下文中也将用 hunt 来代替追踪点概念,这是一个玩家看不到,但却又存在于游戏中的一个概念。该概念将会在第四部分进行详细讲述。 5. min(a, b)。 min(a, b) 表示 数字a 和数字 b中的较小值。举例。 min(2, 10) = 2, min(3, 1) = 1. 6. floor(a)。 指向上取整,如果一个a为一个整数,那么floor(a)的结果还是a。如果a为一个小数,那么floor(a)的结果就是比a的大最小整数。举例, floor(3.1) = 4。 floor(3) = 3。 7.世界湿度。一个游戏内用来描述世界湿度的概念,类似于游戏世界内的温度。有具体的值,是一个数字。 8.所需追踪次数和当前追踪次数。所需追踪次数是指想要追到野兽,需要翻开多少次土堆。当前追踪次数,是指已经翻开了多少次土堆。 三、野兽的生成当玩家翻开的土堆个数达到一定数量(第四部分将会介绍该数量是如何生成的)时,系统会判定野兽的生成。野兽的生成机制如下: 1.判断是否为狗年活动,如果是,则生成陶瓷座狼。 2.以 a 概率生成特殊野兽(座狼和钢羊)。然后在座狼和钢羊中,随机选择。a的计算方式如下(记世界天数为 d): b = 0.05 + (0.33-0.05)*d/100 a = min(b, 0.33) 可以看出,当世界刚生成时,翻出座狼或者钢羊的概率只有大概0.05。但随着世界天数的增加,生成座狼或者钢羊的概率不断上升。直到世界天数达到100天之后,该概率达到最大值0.33,并保持不变。 3.当世界季节为冬季时,生成冬象。 4.当世界季节为春季,且天气为雨天,且野兽出生点在绿洲沙漠(有蚁狮的那个)时,会生成电羊。 5.其他情况,生成普通考拉象 以上判断条件为依次判断,当不满足上一个判断条件时,才会进入下一条判断。 (在非狗年活动的情况下,一年四季都会生成座狼和钢羊。绿洲春季下雨天不会出现普通考拉象) 四、hunt 机制首先,hunt 是一个看不见摸不到的东西。在代码中, hunt 是一个变量,主要负责存储以下信息:角度,所需追踪次数,当前追踪次数, 上一个脚印的位置 和 正在追逐脚印的玩家。 脚印和土堆是 hunt 的一种表现形式,但 hunt 本身并不会在游戏世界内出现。 (量子物理) 脚印的角度由 hunt 内存储的角度决定。 下一个土堆的位置由 hunt内存储的角度决定。 脚印是在土堆被打开的瞬间原地生成的。 1.冷却期与活跃期 每一个 hunt 都有冷却期和活跃期两种状态,并在这两种状态间循环往复。 冷却期顾名思义,hunt 处在冷却状态,不会对游戏产生什么影响。 冷却期主要分为两种时长,第一种冷却期的持续时间为 cooltime, cooltime 的计算方式如下: 记 r 为 [-1,1] 范围内的一个随机数。游戏一天的时间为 daytime (对应显示8分钟)。 cooltime = 1.2 * daytime + r * 0.3 *daytime 我们将这种冷却期成为日常冷却期。 第二种冷却期的持续时间为5秒钟。下文我们将这种冷却期成为重置期。但其本质与冷却期相同,只是时长不同,以作区分。 任何一种冷却期结束, hunt 会自动进入激活期。激活期包含玩家和脚印的所有交互操作。当 hunt 处于激活期时,系统会每隔2秒检测一下 hunt 的状态,且会根据 hunt 的状态做以下三种处理: 1)hunt 被玩家追踪时(此处可以理解为玩家在已经在翻土堆了,现在进行时), 系统会判断世界湿度是否大于15或者是否在下雨(两者满足其一即可)。如果是,系统会生成潮湿标志。但世界潮湿时,脚印的最大持续时间为 22.5秒。 当世界不为潮湿时, hunt 的最大持续时间为 37.5秒。当系统检测到 hunt 从上次被打开之后,到现在的时间超过了 hunt 的最大持续时间后,会判断玩家是否在追逐其他 hunt 。如果是,则该 hunt 进入冷却期。否则,进入重置期。(注意,此时的 hunt 可以被直观的理解为土堆) 2)当 hunt 被玩家开始追踪,但是 hunt 附近200距离(抱歉,我不知道该如何描述此处的距离单位)内没有玩家,那么脚印会进入一个冷却时间为0.1s的冷却期。 (此处存在争议,欢迎大家和我讨论) 3) 当该 hunt 没有被追踪时,系统会选择一个合适的玩家,并随机在距离玩家40距离的地方生成一个土堆。并设置 hunt 的初始角度以及 所需追踪次数。系统对合适玩家的定义: a)玩家没有在追逐脚印;b)玩家附近没有脚印;c)玩家在陆地上;d)玩家没有被猎狗袭击。 hunt 角度设定将在第4小节讲述。 所需追踪次数 为 从 [6, 12]的范围内随机选取的一个整数。 2. hunt 的生成 当每一个玩家进入世界时,系统会判断当前的数量是否达到了 hunt 数量的上限 (玩家的数量)。如果没有达到,系统则会生成一个 hunt 并使其进入日常冷静期。 3. 玩家翻开土堆时 系统会为 hunt 新生成一个角度α,然后在原地生成一个与新角度相同的脚印 且 当前追踪次数加一。接着,系统会判断 所需追踪次数是否与 当前追踪次数 相同。如果相同,那么将会根据新角度α和定长40处生成野兽(参考第三部分)。 如果不相同,则会根据新角度α和定长40处,生成一个新的土堆。 4.角度生成机制 基础角度是指 hunt 之前的角度。如果没有基础角度,那么在[0,360]的范围内随机生成一个角度作为基础角度。然后在[-30, 30]的范围内随机选取一个随机整数,作为基础角度的偏移量。基础角度 加上 偏移角度就是新的角度。 (备注,游戏内使用的是弧度制) 五、万圣节事件补充当万圣节活动开启时,脚印机制会多一些额外的彩蛋。 在设置 hunt 的所需追踪次数之后,系统会根据所需追踪次数再生成一个 伏击次数。记所需追踪次数为m, 则伏击次数为 [ floor(m/2), m-1]范围内的一个随机整数。 当生成土堆时,如果当前追踪次数等于伏击次数,系统会在下个土堆附近生成一些蝙蝠。蝙蝠的数量为 min(3+floor(世界天数/35), 6)。也就是说,至少会生成4只蝙蝠(世界天数初始为1),且随着世界天数增加而增加,最多6只。 结束语大家好~这里是六尾,一个立志于饥荒解析和饥荒MOD制作的萌新UP主。欢迎大家在评论区留下自己的意见和建议。如果您觉得这篇文章对您有帮助,请一键三联支持一波,您的支持,就是对我最大的鼓励!
|
今日新闻 |
点击排行 |
|
推荐新闻 |
图片新闻 |
|
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭 |