level 1
张之远19961210
楼主
反汇编了一部分魔域2.4代码,还原一部分作者的逻辑,如有错误欢迎同好讨论指出:
1. 雷神兽内丹加成倍数nextLvRate = random(3) * 0.1 + 1.3; 即1.3、1.4、1.5概率各1/3
2. 风火水地神兽内丹加成倍数(1.5 + Math.random() / 2);即1.5到2的均匀分布
3. 奇迹龙基础参数(血,攻1,攻2,防)为(35, 3, 3, 2),先随机选一个参数乘以3,例如血奇迹龙参数是(血,攻1,攻2,防)=(105, 3, 3, 2),然后真正的(血,最小攻,最大攻,防御)=(1到1+血的均匀分布,最小攻=0-攻1的均匀分布,已经生成的最小攻+0-攻2的均匀分布,0到防的均匀分布),所以理论上的血奇迹龙血可以有106,防御奇迹龙防可以有6,最小攻奇迹龙最小攻可以有9,最大攻奇迹龙最大攻可以有12,所以血或者防奇迹龙显然比较优秀,攻奇迹龙比较鸡肋。奇迹龙的罕见度为200+200*血评分+200*攻1评分+200*攻2评分+200*防评分,每个评分是随机出属性均匀分布时候的随机数,例如奇迹龙某项评分理论最大为y,那么属性为x时候,评分为200*(x/y),所以奇迹龙罕见度在200-1000之间,1000(初始10星)左右是理论上最优秀的
4. 副幻兽的要求星级是根据现在幻兽的每一个属性分别除以初始幻兽的每一个属性相加获得的(罕见度和幻化次数不影响要求星级),在不考虑内丹情况下,每次主属性幻化的副属性不变,主属性变化,所以星级要求基本上是主属性提高造成的。越到后面要求星级越高,每次升级加主属性越少(根据公式,可以认为主属性到了初始两倍的时候,加的就会很少了,作者设置了两倍这个硬参数)
5. 根据4可以推理出来,蝴蝶牛和乖乖虎需要要求NaN的bug本质是因为,初始属性中出现了0(副属性),导致计算需要的分数时候出现了0/0=NaN,而副幻兽分数<NaN视为不达标永远是假的,因为实数<NaN永远是False,所以就可以永远幻化了。
2022年12月05日 15点12分
1
1. 雷神兽内丹加成倍数nextLvRate = random(3) * 0.1 + 1.3; 即1.3、1.4、1.5概率各1/3
2. 风火水地神兽内丹加成倍数(1.5 + Math.random() / 2);即1.5到2的均匀分布
3. 奇迹龙基础参数(血,攻1,攻2,防)为(35, 3, 3, 2),先随机选一个参数乘以3,例如血奇迹龙参数是(血,攻1,攻2,防)=(105, 3, 3, 2),然后真正的(血,最小攻,最大攻,防御)=(1到1+血的均匀分布,最小攻=0-攻1的均匀分布,已经生成的最小攻+0-攻2的均匀分布,0到防的均匀分布),所以理论上的血奇迹龙血可以有106,防御奇迹龙防可以有6,最小攻奇迹龙最小攻可以有9,最大攻奇迹龙最大攻可以有12,所以血或者防奇迹龙显然比较优秀,攻奇迹龙比较鸡肋。奇迹龙的罕见度为200+200*血评分+200*攻1评分+200*攻2评分+200*防评分,每个评分是随机出属性均匀分布时候的随机数,例如奇迹龙某项评分理论最大为y,那么属性为x时候,评分为200*(x/y),所以奇迹龙罕见度在200-1000之间,1000(初始10星)左右是理论上最优秀的
4. 副幻兽的要求星级是根据现在幻兽的每一个属性分别除以初始幻兽的每一个属性相加获得的(罕见度和幻化次数不影响要求星级),在不考虑内丹情况下,每次主属性幻化的副属性不变,主属性变化,所以星级要求基本上是主属性提高造成的。越到后面要求星级越高,每次升级加主属性越少(根据公式,可以认为主属性到了初始两倍的时候,加的就会很少了,作者设置了两倍这个硬参数)
5. 根据4可以推理出来,蝴蝶牛和乖乖虎需要要求NaN的bug本质是因为,初始属性中出现了0(副属性),导致计算需要的分数时候出现了0/0=NaN,而副幻兽分数<NaN视为不达标永远是假的,因为实数<NaN永远是False,所以就可以永远幻化了。