一、《出怪论》重述
三个月前恶魂发过一篇《出怪论:出怪的选行》,详细介绍了僵尸所在行的规律,我这里简化思路,并按照计算顺序带大家复习一遍。
注:本段为了简化思路,只提及正常游戏中能遇到的情况,你要开修改器在屋顶刷个海豚就别看了。
最终在该第i行出怪的概率(Pi)与第i行权重(Weighti)和距离上次/上上次出怪间隔(LastPickedi/SecondLastPickedi)两方面因素有关。
- 第i行权重(Weighti)及权重占比(WeightPi)
这一属性只与行本身状态有关,而与当前出怪情况无关。
除特殊关卡外,只与以下三个因素有关:
1)若该行对于僵尸不合法,则Weighti=0,关于合法行原文讲的很详细,这里只挑正常游戏用得到的:
-
5行场地6路不合法; 许多僵尸只能出在水/陆路,不多讲; W1~4水陆对普僵/路障不合法; 非无尽1路巨人不合法; 5行场地边路舞王不合法; 没有冰道对雪橇小队不合法。
!!!勘误:前5波水路不出僵尸。
2)若该行与本波丢失推车,则下波Weighti=0.01,下下波Weighti=0.50。
3)其他情况,Weighti=1。
特殊关卡有一下两个:
1)保护传送门,略复杂:
-
若本行有传送门且目标传送门距离小推车最近距离小于5(若没有小推车,则判断是否小于10),令并结束本行运算; 若本行有传送门且不满足上述距离关系,令并结束本行运算; 若本行无传送门,令并结束本行运算;
2)隐形食脑者:w1~3第6行。
另外,由各行可求出本行权重在所有行权重之和中的占比WeightPi。同样只与行本身状态有关,而与当前出怪情况无关。
- 距离上次/上上次出怪间隔(LastPickedi/SecondLastPickedi)
这一属性只与当前出怪情况有关。
开场时各行的和均为0。
顺便一提,原文中那张表格是有误的,二至五行的SecondLastPickedi应当有所增加。
- 直接决定结果的SmoothWeighti
※因为某些原因,实际上第1行的概率比计算出来的要稍大,而第6行要稍小,不过没什么影响也没法避免就是了。
- 钉耙
第一只僵尸必出在有钉耙行,什么也不用算,若第一只僵尸没有用掉钉耙,则后续僵尸不会受到钉耙影响。
- 一些推论
1)不讨论出怪情况,Weighti越大,Pi就越大,即权重越高概率越大(不然就不叫权重了);
2)Weighti=0时,Pi也为0;
3)Weighti≠0时,最小为0.01,WeightPi最小为0.01/(0.01+5*1)=1/501>10^-6,因此Pi虽然会很小,但并不会为0;
4)也就是说,丢车保护机制只是将权重调到非常小,并不是完全失效,这点玩过单行战僵王的应该能知道。
利用以上规律,给出已有的出怪行,我们就可以算出下一只僵尸出在每一行的概率。计算并不难,都没离开四则运算:
但是每一只僵尸都要这样手算太麻烦了,能不能借助科技方便一下?