饥荒联机克劳斯掉落物机制分析 您所在的位置:网站首页 克劳斯股票代码是什么 饥荒联机克劳斯掉落物机制分析

饥荒联机克劳斯掉落物机制分析

2024-07-08 05:07| 来源: 网络整理| 查看: 265

引言

克劳斯是是饥荒联机版中不可或缺的一部分。玩家使用击败克劳斯后掉落的钥匙打开克劳斯的宝袋会随机掉落一些物品作为奖励。 

本文章将会针对克劳斯包掉落物机制进行相应的讲解。注意,本文不包含除克劳斯掉落物外其他任何有关克劳斯的信息。

克劳斯所有可能的掉落物品将会在文章第一部分列出。文章的第二部分将会对第三部分所用到的专业术语进行解释。文章的第三部分会对掉落机制进行详细分析。第四部分针对冬季盛宴进行一些补充。

 

一、克劳斯掉落物品合集

类别1:

    "deerclops_eyeball",  巨鹿眼球

    "dragon_scales", 龙蝇皮

    "hivehat", 蜂后帽

    "shroom_skin",  蛤蟆皮

    "mandrake",  曼德拉草

类别2:

    "dragonflyfurnace_blueprint",  龙蝇火炉蓝图

    "red_mushroomhat_blueprint", 红色蘑菇帽蓝图

    "green_mushroomhat_blueprint", 绿色蘑菇帽蓝图

    "blue_mushroomhat_blueprint", 蓝色蘑菇帽蓝图

    "mushroom_light2_blueprint",  大蘑菇灯蓝图

    "mushroom_light_blueprint", 小蘑菇灯蓝图

    "townportal_blueprint",  传送塔蓝图

    "bundlewrap_blueprint",  打包带蓝图

    "trident_blueprint",  三叉戟蓝图

类别3:

    "bearger_fur",    熊皮

    "royal_jelly",  蜂王浆

    "goose_feather", 鹅毛

    "lavae_egg",  岩浆虫卵

    "spiderhat", 蜘蛛帽

    "steelwool", 钢丝棉

    "townportaltalisman",  砂之石

    "malbatross_beak", 邪天翁喙

 

二、术语补充

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.填充。填充操作是指在系统随机选过一些奖励物品之后,就会用其他物品(木炭)来填满整个打包袋。在克劳斯掉落机制内,当需要填充操作时,系统会随机在{3,4}里面选择一个数,作为作为打包袋内的总礼物数,并把不足的部分用木炭补充。例如,系统选择了已经选择了1个物品(以生命护符为例),并进行填充操作。系统会先在{3,4}里面随机选择一个数。假设系统选择3,那么这个包裹一共会有3个物品,包含生命护符,木炭,木炭。

5.掉落物品的形式。金块 *2表示掉落物品中必有2个金块。 生命护符 *0.5表示生命护符以0.5的概率掉落(即50%概率掉落)。类别1 *1表示系统随机在类别1中选取一个物品掉落(类别1内每种物品掉落的概率相同)。 类别2 *0.5表示系统有0.5的可能性在类别2中随机选取一个物品掉落(类别2内每种物品掉落的概率相同)。

 

三、物品掉落机制

在游戏事件不为冬季盛宴时,克劳斯必定掉落四个包裹:

其中第一个包裹为: 生命护符 *1,金块 *1,并以木炭填充。

第二个包裹:金块 *1,生命护符 *0.5,并以木炭填充。

第三个包裹:金块 *1, 小偷背包 *0.1,并以木炭填充。 (这个好哎)

第四个包裹:类别1 *1,  类别2 *0.5,以下方式在类别3里面选取两种掉落物。

系统在 [1,类别3总物品数] 的范围内产生一个随机数 i ,然后在 [1,类别3内总物品数-1] 的范围内产生一个随机数 j . 系统会先选择类别3中第 i 个物品作为第一个掉落物。 然后比较 i 和 j 的大小,如果两者相同,则会选择第 j+1 个物品作为第二个掉落物,否则选择第 j 个物品作为第二个掉落物。

(这个机制确保了掉落物品中不会有相同的物品出现。且基于这个机制,类别3内第一个物品和最后一个物品掉落的概率会相较其他几个稍微低一点,其中最后一个物品掉落的概率最低。且第二部分中类别3的顺序与游戏内部类别3顺序相同,熊皮为第1个,邪天翁喙为第8个,即是最后一个。)

 

最后,关于克劳斯掉落物是否可以通过回档来刷新的讨论。先说结论,在正常游戏的进程中,不能。但是,根据代码显示,包裹内的掉落物其实是在用钥匙的一瞬间随机生成的。那么问题就出现了,既然如此,为什么还会出现掉落物品固定的情况呢?我在代码中并没有找到相应的证据支持,但是仍然做出以下猜想:在之前也反复提到,整个随机生成的过程其实是依赖于系统所产生的随机数的。如果系统能在保存的时候,也能对即将产生随机数进行保存,那么就可以从玩家的角度来固定赃物袋内的掉落物品。

以上猜想的侧面支持:当我们用T键刷新三个赃物袋,用钥匙依次打开,并记下礼物。回档并重新依次打开三个赃物袋,发现只有第一个赃物袋的掉落物品和之前相同,其他两个包裹内的物品被刷新。再次回档并以不同顺序打开时,发现掉落物品仅与开袋的顺序有关,和袋子本身无关。也就是说,无论我们第一次开哪个袋子,第一次的掉落物品都相同。这次回档到使用T键刷新袋子之前,并重新T出一个袋子。打开后发现袋子内的物品和第一次掉落物品相同。

可能存在的破解办法:因为饥荒在抽取随机数时,都是调用“math.random” 函数来得到随机数的。那么如果我们在打开克劳斯包裹之前,进行其他操作,使得系统提前调用“math.random”来获取一个随机数用于其他场景。此时,玩家再次打开赃物袋的话,系统原本“为赃物袋准备”的随机数被用于其他途径,就只好重新生成一个随机数,从而达到回档刷新。但是作者尝试在打开赃物袋之前,进行绿洲钓鱼操作,并没有使得赃物袋内掉落物被刷新。因此此项存疑。欢迎小伙伴在评论区与我进行讨论。

四、冬季盛宴补充

当冬季盛宴开启时,克劳斯掉落物品的打包袋被替换成了礼物包装(即无法回收利用)。

冬季盛宴开启时,击败克劳斯会额外掉落两个包裹:

包裹1:羊奶 *2,两种冬季零食之一 *4

包裹2:四种boss挂饰之一 *1,  豪华装饰 *1, 圣诞彩灯 *1, 在基础装饰 、豪华装饰和圣诞彩灯三个类别中以相同概率随机掉落一种。

 

四种boss挂饰:

     "winter_ornament_boss_klaus", 克劳斯

     "winter_ornament_boss_noeyeblue",  蓝色无眼

     "winter_ornament_boss_noeyered",   红色无眼

      "winter_ornament_boss_krampus",坎普斯

 

两种冬季零食:

     “winter_food1” ——“Gingerbread Cookie” 姜饼

     “winter_food2”——“Sugar Cookie” 曲奇

五、2021.08.21补充

之前读的代码太老了,所以产生了克劳斯掉落物是否能回档刷新的矛盾。这里阅读了新版本的代码,对这个问题进行补充说明。先说结论,在打开克劳斯包的时候,会自动生成下一次克劳斯包的掉落物品。因此回档是无法刷新克劳斯掉落物品的。除非回档到上一次打开克劳斯包之前。

现在克劳斯掉落奖励由 KlausSackLoot 组件控制。当世界生成时,会调用 RollKlausLoot 接口按照规则生成掉落物。当玩家对克劳斯包使用克劳斯钥匙时,系统会调用 GetLoot 接口来读取已经设置好的掉落物。同时,在 GetLoot 函数 内再次调用 RollKlausLoot接口 重新生成下一次的掉落物品。

结束语

大家好~这里是六尾,一个立志于饥荒解析和饥荒MOD制作的萌新UP主。如果您觉得这篇文章对您有帮助,请点赞收藏支持一波,以便让更多人看到受益。 也欢迎大家在评论区留下自己的意见和建议。

您的支持就是对我最大的鼓励~



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有