我的世界璀璨棱镜的参数和附魔机制分析

本文所引用的所有内容建立于AS-1.12.2-1.10.27版本(commit b218b86b5049579b5eb3fba2e11740398020c937)。

  • 配置文件(minecraft\config\astralsorcery.cfg)中璀璨棱镜的附魔参数

        通过搜索关键字enchantment_amulet可以迅速定位至参数位置,该部分源码及补充中文注释如下

enchantment_amulet {
        # Defines the chance to roll a 2nd-enchantment-manipulating roll on the amulet. Value defines a percent chance from 0% to 100%. Setting this to 0 also prevents a 3rd roll [range: 0.0 ~ 1.0, default: 0.8]
        #璀璨棱镜获得第二个附魔的概率
        S:chance2nd=0.8

        # Defines the chance to roll a 3rd-enchantment-manipulation roll on the amulet. Value defines a percent chance from 0% to 100%. [range: 0.0 ~ 1.0, default: 0.25]
        #璀璨棱镜获得第三个附魔的概率
        S:chance3rd=0.25

        # Defines the chance the roll will be +2 instead of +1 to existing enchantment/to enchantment/to all enchantments [range: 0.0 ~ 1.0, default: 0.15]
        #璀璨棱镜获得的附魔等级为+2的概率
        S:chanceLevel2=0.15

        # Defines the chance the amulet-roll 'to all existing enchantments' will appear. [range: 0.0 ~ 1.0, default: 0.02]
        #璀璨棱镜的附魔为所有已有附魔增加等级的概率
        S:chanceToAll=0.02

        # Defines the chance the amulet roll 'to <encahntment>' will appear. (Don't mistake this for 'to exsting <enchantment>'!) [range: 0.0 ~ 1.0, default: 0.35]
        #璀璨棱镜的附魔为增加附魔的概率(区别与为现有附魔增加等级)
        S:chanceToNonExisting=0.35
}
  • 璀璨棱镜附魔数量及附魔类型分析

    该部分主要依据类AmuletEnchantHelper

    首先,璀璨棱镜至多可以分3次获得3个附魔,这意味着这至多3个附魔并不是同时被计算出来的。

    第一个附魔是必定获取的,第二个附魔只依赖于参数chance2nd设定的概率。第三个附魔比较特殊,它在判定时会调用函数getAdditionAll()统计前两个附魔中类型为所有已有附魔增加等级的附魔的数量,如果前两个附魔的类型均为为所有已有附魔增加等级(无论增加等级的具体数值),那么必然没有第三个附魔,否则根据参数chance3rd决定能否得到第三个附魔。

    简而言之,在AS1.12.2中,璀璨棱镜至多只能出现所有已有附魔等级+4这一附魔,+6是不存在的。

    在每一次获取附魔判定成功后,会调用函数getRollType()getRollLevel()分别计算将要获取的附魔的类型和等级。

    如果将要获取的是第一个或第二个附魔,会首先根据参数chanceToAll判定是否类型为所有已有附魔增加等级。如果判定失败,则根据参数chanceToNonExisting判定是否类型为增加附魔。如果判定再次失败,则为现有附魔增加等级。

    如果将要获取的是第三个附魔,那么会先调用函数getAdditionAll()统计前两个附魔中类型为所有已有附魔增加等级的附魔的数量(无论增加等级的具体数值)。如果已经有一个类型为所有已有附魔增加等级的附魔,那么第三个附魔的类型必定不是为所有已有附魔增加等级。其他的判定顺序和概率均和之前相同。

    而将要获取的附魔的等级,则根据参数chanceLevel2判定。

    此时可以得出结论,获得一个所有已有附魔等级+4的璀璨棱镜的概率在默认数值下为 (0.02 * 0.15) *  (0.8 * 0.02 * 0.15) = 0.0054

Copyright © 2018-2023 PHP源码网 版权所有
PHP源码网 » 我的世界璀璨棱镜的参数和附魔机制分析

提供最优质的资源集合

立即查看 了解详情