Bestkakkoii 發表於 2021-7-14 20:21:21

【轉載】成長檔論(二)——寵物初始四圍之謎





取自巴哈 ludaxx



抱歉之前的非一級野生寵四圍計算公式搞錯。
計算公式應為
初始單項數值=((等級-1)*野生寵成長係數+初始能力係數)*初始單項變數/100

在我知道了石器寵物成長的本質是成長檔後,我一直在探討成長檔與寵物初始四圍之間的關係,今天認真閱讀石器部分源碼之後,總算搞明白了它的原理,不敢自己獨吞這個新發現,特此在這裡和大家分享(不明白成長檔是什麼的朋友請看我的上一個帖子成長檔論(一)——成長檔論與寵物轉生)
首先給大家介紹一下初始四圍決定公式初始單項數值=((等級-1)*單項成長檔+初始單項變數)*初始能力係數/100
初始單項數值=((等級-1)*野生寵成長係數+初始能力係數)*初始單項變數/100
體力單項變數=體力成長檔+a腕力單項變數=腕力成長檔+b耐力單項變數=耐力成長檔+c速度單項變數=速度成長檔+da+b+c+d=10(a,b,c,d>=0)也就是說,初始單項變數的大體是由成長檔決定的,但四項能力變數還要在成長檔的基礎上隨機加一些數,這些數的總合是10比方說,一隻紅人龍的四圍成長檔為26 40 18 22 總成長檔106那麼他的初始能力變數可能為 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,此結論適用於任何寵物(融合寵,改人不在討論範圍)。也就是說,任何寵物,最極品的個體和最垃圾的個體,成長檔最多可以差16。這個16是什麼概念?拿寵物轉生做例子,120級的寵物轉生平均增加能力,大概就在18左右,你們自己衡量一下
OK,說到這裡,我大膽的告訴大家一個結論,只要你能知道一個寵物的平均成長檔、和初始能力係數,你就能把握寵物初始四圍的範圍。我們如何得知寵物的平均成長檔和初始能力係數?這個理論上來說,代理商不公開,我們永遠不會知道這個資料。雖然陶朱改過了一些寵的成長,但大部分舊寵的成長應該都是沒有變過的。
我搞到了一個華義7.5的寵物成長檔庫(小人不才,8.5的我實在找不到,雖然有很多私服8.5的資料,但只有這個7.5的我敢保證是原汁原味的。。上個帖子我有拿白虎做實驗,但我對照以後才發現他的白虎成長檔已經是被改過了的。。所以你們查成長檔庫的時候,看到白虎成長檔和我實驗資料的白虎成長檔不一致不要噴我),接下來我來教大家怎麼從成長檔庫裡查寵物的平均成長檔,以及怎麼算寵物的極品四圍成長檔庫載點:http://www.mediafire.com/?5k9kp225b51zh7f
下載後打開enemybase1.txt,以黃人布魯頓為例(舊寵,陶朱改過成長檔可能性不高)先搜索“布魯頓”3個字,找到如下片段布魯頓,木,皮,線,肉,米,95,25,4.50,25,35,14,24,270,3,0,0,20,…(後面的我們不需要關心)灰字=初始能力係數
藍字=體力成長檔
紅字=腕力成長檔
綠字=耐力成長檔
黃字=速度成長檔
棕字=野生寵成長係數??
(搜寵物名字的時候,有時候可能會搜到多個,以棕色字體=4.50的項為准)

我們可以提取出來布魯頓的初始能力係數為25,體力、腕力、耐力、速度平均成長檔分別為25,35,14,24
那麼極限極品成長檔應該在平均成長檔基礎上各+2,即27,37,16,26
接下來我們自己估計一個初始能力變數,在成長檔的基礎上加10,我們均勻分配一點,弄成+3,+3,+2,+2
這樣體力腕力耐力速度的初始能力變數就變成30,40,18,28了

接下來我們就可以來算布魯頓的大致極品四圍了
套用之前提到的公式初始單項數值=((等級-1)*單項成長檔+初始單項變數)*初始能力係數/100
初始單項數值=((等級-1)*野生寵成長係數+初始能力係數)*初始單項變數/100,因為我們只考慮1級的情況,所以公式化簡為初始單項數值=初始單項變數*初始能力係數/100那麼體力=25*30/100=7.5;腕力=25*40/100=10;耐力=25*18/100=4.5;速度=25*28/100=7
我們根據四項內在能力進一步推出四項表現能力,即四圍:血=體力*4+腕力+耐力+速度=7.5*4+10+4.5+7=51.5攻=體力*0.1+腕力+耐力*0.1+速度*0.05=7.5*0.1+10+4.5*0.1+7*0.05=11.55防=體力*0.1+腕力*0.1+耐力+速度*0.05=7.5*0.1+10*0.1+4.5+7*0.05=6.6敏=速度=7去小數點後,四圍為51/11/6/7也就是說,如果你有幸碰到一隻四圍為51/11/6/7的布魯頓,那麼恭喜你,這只寵極有可能就是極限極品的布魯頓(成長檔達到上限)
其他寵物也是一樣的方法算,注意灰字藍紅綠黃字的位置就行了
國際慣例來個Q&A問答,以此作為此帖的總結
Q:寵物初始四圍高,成長一般會高
A:正確



Q:寵物四圍一樣,成長也會一樣
A:錯誤,原因有二,一是因為小數點的關係,我舉個極端的例子,有隻寵可能一級四圍顯示是65/15/8/9,但它的實際四圍有可能是65.9/15.8/8.8/9.7,也有可能是65.03/15.1/8/9.2,那麼這兩雙寵的成長肯定就差很多了。第二個原因,就是初始能力變數引起的,可以參考下面一問

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:有野生的抓,強烈建議直接抓野生的,之前也提到很多遍了野生寵的成長直接與野生寵的四圍掛鉤。極限極品四圍即等於極限極品成長。沒野生的抓,你可以按照黃字部分說的方法算出你要抓的寵的四圍(僅限於陶朱沒改過成長的寵)。如果改過的話,那就只能還是靠大家的經驗了。。多記錄一下別人練出過極品的初始四圍, 就挑那些四圍的去練吧

PS:補充說明一下野生寵四圍計算方法,以41級布魯頓為例
(假設初始初始能力變數為30,40,18,28(剛才的最極品黃人的例子))
體力=((41-1)*4.50+25)*30/100=61.5
腕力=((41-1)*4.50+25)*40/100=82
耐力=((41-1)*4.50+25)*18/100=36.9
速度=((41-1)*4.50+25)*28/100=57.4
血=體力*4+腕力+耐力+速度=61.5*4+82+36.9+57.4=422.3
攻=體力*0.1+腕力+耐力*0.1+速度*0.05=61.5*0.1+82+36.9*0.1+57.4*0.05=94.71
防=體力*0.1+腕力*0.1+耐力+速度*0.05=61.5*0.1+82*0.1+36.9+57.4*0.05=54.12
敏=速度=57.4
極品四圍:422/94/54/57
剛才試了一下,好像用4.50算數據也是有問題的。改成按4.0算的話就正好符合寵物數據(我直接翻看寵物的內部數據,以及成長檔),測試了41級和54級的野生黃人,按4.0算的話都沒錯
至於為什麼應該用4.0而不應該用4.5來算,我現在也搞不懂..如果明白原理的話我會公佈的
按照4.0算的話,體力腕力耐力速度算出來分別為55.5、74、33.3、51.8
換算成四圍即381.1/88.06/48.84/51.8
(由於新的公式受初始能力變數影響很大(等級把影響放的更大了)所以建議抓高等野生寵不要用固定四圍,最好是能把血攻防敏做個綜合評判)




附錄(寵物初始四圍原理源碼,懂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 += RAND( 0, 4 ) -2;
    tp += RAND( 0, 4 ) - 2;
    tp += RAND( 0, 4 ) - 2;
    tp += RAND( 0, 4 ) - 2;
解說:實際成長檔=平均成長檔+(-2~+2)
    /* この時點で割り振りポイントを保存しておく */
    CharNew.data
    = ( tp << 24 )
    + ( tp << 16 )
    + ( tp << 8 )
    + ( tp << 0 );
解說:先保存成長檔資料,因為接下來要開始決定初始能力變數
    /* その後、ランダムでポイントを1づつ加算。これを10回繰り返す。*/
    for( i = 0; i < 10; i ++ ){
      int work =RAND( 0, 3 );
      if( work == 0)tp++;
      if( work == 1)tp++;
      if( work == 2)tp++;
      if( work == 3)tp++;
    }
解說:把10點數值隨機分配到4個成長檔上,構成4項初始能力變數
    /* パラメータセット*/
    CharNew.data   = PARAM_CAL(E_T_BASEVITAL);
    CharNew.data   = PARAM_CAL(E_T_BASESTR);
    CharNew.data   = PARAM_CAL(E_T_BASETGH);
    CharNew.data   = PARAM_CAL(E_T_BASEDEX);
解說:套用初始能力計算公式,得到四項內在初始能力值
(本当はコメントが無くても分かるさww)

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



頁: [1]
查看完整版本: 【轉載】成長檔論(二)——寵物初始四圍之謎