石器时代《成长档》宠物初始四围之谜

2016-03-19 10:17 石器攻略 石器时代TV

首先给大家介绍一下初始四围决定公式

初始单项数值=((等级-1)*单项成长档+初始单项变量)*初始能力系数/100(不正确)

初始单项数值=((等级-1)*成长系数+初始能力系数)*初始单项变量/100

体力单项变量=体力成长档+a

腕力单项变量=腕力成长档+b

耐力单项变量=耐力成长档+c

速度单项变量=速度成长档+d

a+b+c+d=10(a,b,c,d>=0)

也就是说,初始单项变量的大体是由成长档决定的,但四项能力变量还要在成长档的基础上随机加一些数,这些数的总合是10

比方说,一只红人龙的四围成长档为26 40 18 22 总成长档106

(这红人龙不是SS的变异红人龙,是SS改版成长提升之前的红人龙)


那么他的初始能力变量可能为 29 43 20 24 总数值116

也有可能是26 45 20 25 总数值116

甚至极端一点,有可能是 26 50 18 22 总数值116

总之就是在成长档的基础上,总共增加10点数值,这决定了宠物的初始能力变量


红人龙的初始能力系数为26(初始能力系数是一个种族的系数,就是说所有的红人龙的初始能力系数,都是26)

假如初始能力变量为 29 43 20 24

那么,按照上面的公式我们可以先计算出四项内在能力

体力=29*26/100=7.54

腕力=43*26/100=11.18

耐力=20*26/100=5.2

速度=24*26/100=6.24

进而可以计算出表现能力,即我们俗称的四围

血=体力*4+腕力+耐力+速度=7.54*4+11.18+5.2+6.24=52.78

攻=体力*0.1+腕力+耐力*0.1+速度*0.05=0.754+11.18+0.52+0.312=12.766

防=体力*0.1+腕力*0.1+耐力+速度*0.05=0.754+1.18+5.2+0.312=7.446

敏=速度=6.24

去小数点后,正是我们熟知的红人龙极品四围52/12/7/6


但实际上,四围截然不同的宠物,他们的成长是有可能一样的

假如是他的初始能力变量为26 50 18 22

那么体力=6.76 腕力=13 耐力=4.68 速度=5.72

血=6.76*4+13+4.68+5.72=50.44

攻=0.676+13+0.468+0.286=14.43

防=0.676+1.3+4.68+0.286=6.942

敏=5.72


去小数点后,四围是50/14/6/5

这两只红人龙(50/14/6/5 和 52/12/7/6)的四围看起来虽然有些差异,其实他们的成长档完全相同,都是26 40 18 22,也就是说,他们的成长几乎完全相同


说完了一级宠物的四围,我们再来谈谈非一级野生宠的四围,刚才已经提到过了,宠物的单项能力公式是

初始单项数值=((等级-1)*单项成长档+初始单项变量)*初始能力系数/100




我们可以发现,当等级很高的时候,决定初始单项数值的因素99%都是成长档,而初始单项变量对初始单项数值的影响,就会被降的非常非常小,这就是为什么野生宠看四围直接就能看出成长的原因了,因为高级野生宠的四围,基本上可以说是全部由成长档决定的,初始单项变量哪一点影响,已经可以忽略不计(不正确)

之前看错了公式,现在套用新的公式计算的话,仍然可以得出野生宠四围越高,成长档越高的结论。但不是说野生宠的单项能力高它对应的单项能力就会越高,必须要4项能力综合起来判别了


再来谈谈成长档,说了那么多关于成长档的东西,我知道肯定有朋友会问,那宠物的成长档究竟是怎么决定的?

这就涉及到服务器里面的数据文件了,代理商的服务端那边,有一个决定着宠物成长水平的文件,里面储存的无数宠物的平均成长档,继续拿我刚才说的红人龙举例


在服务器的数据文件里面,红人龙的平均四围成长档为24 38 16 20

成长档的决定公式为 实际单项成长档=平均单项成长档+RANDOM(-2,2)(意思就是说,在平均成长档的基础上加上一个在-2到2之间的数),那么攻成长档范围就是36~40

红人龙最烂四围成长档为22 36 14 18

最极品成长档为26 40 18 22,此结论适用于任何宠物(融合C,2D人龙不在讨论范围)。

也就是说,任何宠物,最极品的个体和最垃圾的个体,成长档最多可以差16。这个16是什么概念?拿宠物转生做例子,120级的宠物转生平均增加能力,大概就在18左右,你们自己衡量一下



OK,说到这里,我大胆的告诉大家一个结论,只要你能知道一个宠物的平均成长档、和初始能力系数,你就能把握宠物初始四围的范围。

我们如何得知宠物的平均成长档和初始能力系数?这个理论上来说,代理商不公开,我们永远不会知道这个数据。

就像是SS最近全面提升了旧宠的成长,那他们肯定是把所有旧宠的平均成长档都改过了,但是很大一部分宠(4.0以后的新宠,海底宠之类的,应该还是沿用华义宠物成长档的数据)


我搞到了一个华义7.5的宠物成长档库(小人不才,8.5的我实在找不到,虽然很多私服8.5的数据,但只有这个7.5的我敢保证是原汁原味的。。上个帖子我有拿白虎做实验,但我今天才知道他的白虎成长档已经是被改过了的。。所以你们查成长档库的时候,看到白虎成长档和我实验数据的白虎成长档不一致不要喷我),放在附件上供大家下载,接下来我来教大家怎么从成长档库里查宠物的平均成长档,以及怎么算宠物的极品四围


下载附件,解压后打开enemybase1.txt,以魔鬼鱼史卡鲁为例(这宠SS应该没改过成长)

先搜索“史卡鲁”3个字,找到如下字段

史卡鲁,石,木,皮,骨,牙,20,20,4.50,28,43,22,28,150,11,0,100,0,0,...(后面的我们不需要关心)

灰字=初始能力系数

蓝字=体力成长档

红字=腕力成长档

绿字=耐力成长档

黄字=速度成长档

棕字=野生宠成长系数

(搜宠物名字的时候,有时候可能会搜到多个,以棕色字体=4.50的项为准)


我们可以提取出来史卡鲁的初始能力系数为20,体力、腕力、耐力、速度平均成长档分别为28,43,22,28

那么极品成长档应该在平均成长档基础上各+2,即30,45,24,30

接下来我们自己估计一个初始能力变量,在成长档的基础上加10,我们均匀分配一点,弄成+3,+3,+2,+2

这样体力腕力耐力速度的初始能力变量就变成33,48,26,32了


接下来我们就可以来算史卡鲁的大致极品四围了

套用一楼提到的公式

初始单项数值=((等级-1)*单项成长档+初始单项变量)*初始能力系数/100,因为我们只考虑1级的情况,所以公式化简为

初始单项数值=初始单项变量*初始能力系数/100

那么体力=20*33/100=6.6;腕力=20*48/100=9.6;耐力=20*26/100=5.2;速度=20*32/100=6.4

我们根据四项内在能力进一步推出四项表现能力,即四围:

血=体力*4+腕力+耐力+速度=6.6*4+9.6+5.2+6.4=47.6

攻=体力*0.1+腕力+耐力*0.1+速度*0.05=6.6*0.1+9.6+5.2*0.1+6.4*0.05=11.1

防=体力*0.1+腕力*0.1+耐力+速度*0.05=6.6*0.1+9.6*0.1+5.2+6.4*0.05=7.14

敏=速度=6.4

去小数点后,四围为47/11/7/6

也就是说,如果你有幸碰到一只四围为47/11/7/6的史卡鲁,那么恭喜你,这只宠极有可能就是极限极品的史卡鲁(成长档达到上限)


其他宠物也是一样的方法算,注意灰字蓝红绿黄字的位置就行了



国际惯例来个Q&A问答,以此作为此帖的总结
Q:宠物初始四围高,成长一般会高
A:正确

Q:宠物某项初始能力高,成长一定会更高
A:错。我简单举下例子,还是以已经举烂了的红人龙为例,红人龙的平均攻成长档为38,那么攻成长档最低应为36,最高应为40。 先说40攻成长档的,40攻成长档,意味着它的初始攻变量可能在40~50这个范围内;而36攻成长档,意味着它的攻变量可能是在36~46这个范围内。我们极端化一下,假设40攻成长档红人龙的攻变量就是40,36攻成长档的红人龙就是46。那么在显示四围的时候,后者的攻显示的会更高一些,但实际上前者的攻远远高于后者的(前者是最高攻成长档,后者是最低)

Q:我们应该怎么估计初始能力变量
A:按照概率学,我们应该把这10点能力平均分配(出现平均分配的情况的概率最大),我们可以+3,+3,+2,+2,+2,+3,+3+2等这样把这些数均匀的增加到成长档上,一般都没错的(像+10,0,0,0;+8,0,0+2之类的极端情况,出现的概率会很低)

Q:怎么抓极品宠
A:有野生的抓,强烈建议直接抓野生的,之前也提到很多遍了野生宠的成长直接与野生宠的四围挂钩。极限极品四围即等于极限极品成长。没野生的抓,你可以按照2楼说的方法算出你要抓的宠的四围(仅限于SS没改过成长的宠)。如果改过的话,那就只能还是靠大家的经验了。。多记录一下别人练出过极品的初始四围,就挑那些四围的去练吧


附录(宠物初始四围原理源码,懂C语言的可以来看一下):
/* パラメータ指数から実際の基本パラメータへの計算式 */
#if 1
#define        PARAM_CAL( l)     ( ( level -1)*ET_PAR( E_T_LVUPPOINT)+ ET_PAR(E_T_INITNUM)) * ET_PAR( (l))
#else
#define        PARAM_CAL( l)     ( (E_PAR(ENEMY_LV) -1)*ET_PAR( E_T_LVUPPOINT)+ ET_PAR(E_T_INITNUM)) * ET_PAR( (l))
#endif
解说:公式:初始单项数值=((等级-1)*野生宠成长系数+初始能力系数)*初始单项变量/100
(他这里没除以100是因在数据文件里保存的能力数值并不带有小数点,比如说12.88腕力,他会保存为1288)
    /* 先ず基本割り振りポイントに±2をランダムで行う */
    tp[E_T_BASEVITAL] += RAND( 0, 4 ) - 2;
    tp[E_T_BASESTR] += RAND( 0, 4 ) - 2;
    tp[E_T_BASETGH] += RAND( 0, 4 ) - 2;
    tp[E_T_BASEDEX] += RAND( 0, 4 ) - 2;
解说:实际成长档=平均成长档+(-2~+2)
    /* この時点で割り振りポイントを保存しておく */
    CharNew.data[CHAR_ALLOCPOINT]
    = ( tp[E_T_BASEVITAL] << 24 )
    + ( tp[E_T_BASESTR] << 16 )
    + ( tp[E_T_BASETGH] << 8 )
    + ( tp[E_T_BASEDEX] << 0 );
解说:先保存成长档数据,因为接下来要开始决定初始能力变量
    /* その後、ランダムでポイントを1づつ加算。これを10回繰り返す。*/
    for( i = 0; i < 10; i ++ ){
        int work = RAND( 0, 3 );
        if( work == 0 )tp[E_T_BASEVITAL]++;
        if( work == 1 )tp[E_T_BASESTR]++;
        if( work == 2 )tp[E_T_BASETGH]++;
        if( work == 3 )tp[E_T_BASEDEX]++;
    }
解说:把10点数值随机分配到4个成长档上,构成4项初始能力变量
    /* パラメータセット */
    CharNew.data[CHAR_VITAL]    = PARAM_CAL(E_T_BASEVITAL);
    CharNew.data[CHAR_STR]      = PARAM_CAL(E_T_BASESTR);
    CharNew.data[CHAR_TOUGH]    = PARAM_CAL(E_T_BASETGH);
    CharNew.data[CHAR_DEX]      = PARAM_CAL(E_T_BASEDEX);
解说:套用初始能力计算公式,得到四项内在初始能力值

——以上内容为ludaxx原创,转载须征得作者同意

发表评论: