LV. 3
GP 82

【心得】成長檔論(三)——成長檔與成長率

樓主 ludaxx ludaxx
GP31 BP-
在看本帖之前,請確認你已經閱讀過成長檔論一和成長檔論二,不然很多東西你很可能會看不懂
前傳地址:
 
首先向大家介紹一下成長率和成長檔的換算公式
平均單項成長率=(單項成長檔+2.5)*檔次補正係數/100
(單項成長檔是指:體力成長檔、腕力成長檔、耐力成長檔、速度成長檔;
平均單項成長率是指:體力成長率、腕力成長率、耐力成長率、速度成長率;)
血成長率=體力成長率*4+腕力成長率+耐力成長率+速度成長率
攻成長率=體力成長率*0.1+腕力成長率+耐力成長率*0.1+速度成長率*0.05
防成長率=體力成長率*0.1+腕力成長率*0.1+耐力成長率+速度成長率*0.05
敏成長率=速度成長率
 
檔次補正係數=
(4.75(當寵物平均總成長檔不低於100;或轉生後的寵物總成長檔不低於130)
4.95(當寵物平均總成長檔在95~99間;或轉生後的寵物總成長檔在100~129間)
5.15(當寵物平均總成長檔在90~94間;或轉生後的寵物總成長檔在95~99間)
5.35(當寵物平均總成長檔或轉生後的寵物總成長檔在在85~89間)
5.55(當寵物平均總成長檔或轉生後的寵物總成長檔在在80~84間)
5.75(當寵物平均總成長檔或轉生後的寵物總成長檔小於80)
(我這裡平均兩個字特別用紅字表示,是因為我估計很多人會搞錯,所謂的平均總成長檔,認真讀過成長檔論二的朋友都知道,是個定值,可以看作是一個種族的值,和寵物的個體無關;而轉生後的寵物,不管是一轉還是二轉,看的都是寵物的實際成長檔,與寵物的個體有關。二轉和一轉的檔次補正係數規律是一樣的)
 
 
下面我說一下公式究竟是怎麼來的,不想研究太深的朋友請直接跳過紫字部分
-------------------------------------------------------公式推導部分--------------------------------------------------
首先講一下寵物升級是如何增加點數的
寵物每升一級增加點數公式為
單項能力增加值=單項成長變數*檔次補正亂數/100
單項成長變數和成長檔二中說的單項初始變數的構成方法一樣,也是在成長檔的基礎上+10個隨機檔。
比如說若紅人的成長檔為24/38/16/20,那它的單項成長變數可能是26/40/19/23
也有可能是27/41/18/22。甚至有可能是24/48/16/20
單項成長變數可以是各種樣式,但隨機加的總和一定是10
單項成長變數每級升級時隨機決定,每次升級都會變。所以可以給它取個平均單項成長變數,即在成長檔的基礎上各+2.5,變成26.5/40.5/18.5/22.5
檔次補正亂數是這樣的
檔次補正亂數=
4.5~5.0(當寵物平均總成長檔不低於100;或轉生後的寵物總成長檔不低於130)
4.7~5.2(當寵物平均總成長檔在95~99間;或轉生後的寵物總成長檔在100~129)
4.9~5.4(當寵物平均總成長檔在90~94間;或轉生後的寵物總成長檔在95~99)
5.1~5.6(當寵物平均總成長檔或轉生後的寵物總成長檔在在85~89)
5.3~5.8(當寵物平均總成長檔或轉生後的寵物總成長檔在在80~84)
5.5~6(當寵物平均總成長檔或轉生後的寵物總成長檔小於80)
檔次補正係數即由(檔次隨機最大值+檔次隨機最小值)/2算出來
從公式可以看出來,一些逆天成長的變態寵理論上來說確實是可以練出來的(比如說檔次補正亂數在4.55.0之間,每次都運氣超好被他挑到5,那樣成長就會高出一個檔次,但是概率很小很小,如果一個人的運氣真的能好到每次都能給他挑中5,那他光靠抽獎就能變成億萬富翁了),但更多的時候,寵物升的等級越高,平均檔次補正亂數應該越接近於檔次補正係數,即範圍的中間值
-------------------------------------------------------華麗的分割線--------------------------------------------------
講到這裡我估計絕大部分的人還是聽不懂我在講什麼,沒關係,我繼續來舉例說明一下成長率計算方法,依然以已經被我舉的爛得不能再爛的紅人為例
 
我們根據公式平均單項成長率=(單項成長檔+2.5)*檔次補正係數/100算出各項成長率。
因為紅人的平均成長檔為24/38/16/20,算出來的總成長檔為98,查帖子開頭提到的檔次補正係數,98在95~99這個範圍,所以對應的檔次補正係數為4.95
極限極品的0轉紅人成長檔為26/40/18/22,則
體力成長率=28.5*4.95/100=1.41(不四捨五入保留兩位小數)
腕力成長率=42.5*4.95/100=2.10
耐力成長率=20.5*4.95/100=1.01
速度成長率=24.5*4.95/100=1.21
 
血成長率=1.41*4+2.10+1.01+1.21=9.96
攻成長率=1.41*0.1+2.10+1.01*0.1+1.21*0.05=2.4025
防成長率=1.41*0.1+2.10*0.1+1.01+1.21*0.05=1.4215
敏成長率=1.21
三圍成長率=2.4025+1.4215+1.21=5.034
這就是極限極品的紅人的平均成長
 
再舉一下滿石女寵的例子,女寵的平均成長檔為25/25/25/25,算出來的總成長檔為100,查帖子開頭提到的檔次補正係數,100屬於第一檔次的,所以對應的檔次補正係數為4.75。
滿石女寵的成長檔為50/50/50/50
所以體力成長率=52.5*4.75/100=2.49
腕力成長率=52.5*4.75/100=2.49
耐力成長率=52.5*4.75/100=2.49
速度成長率=52.5*4.75/100=2.49
 
血成長率=2.49*4+2.49+2.49+2.49=17.43
攻成長率=2.49*0.1+2.49+2.49*0.1+2.49*0.05=3.1125
防成長率=2.49*0.1+2.49*0.1+2.49+2.49*0.05=3.1125
敏成長率=2.49
三圍成長率=3.1125+3.1125+2.49=8.715
和我們知道的滿石女寵成長率基本一致
 
 
接下來我要講一些顛覆常識的東西了,各位讀者要有心理準備
請看這兩隻機暴
28/40/29/30 總:127
31/40/29/30 總:130
這兩隻都是一轉機暴,只看成長檔的話,後面那只多3體力,按理來說成長不會比前面那只低,但是計算出來的實際成長率是怎樣的呢?
我們先看第一隻機暴,28/40/29/30,總127,查檔次補正係數為4.95
那麼體力成長率=30.5*4.95/100=1.50
腕力成長率=42.5*4.95/100=2.10
耐力成長率=31.5*4.95/100=1.55
速度成長率=32.5*4.95/100=1.60
血成長率=1.50*4+2.10+1.55+1.60=11.25
攻成長率=1.50*0.1+2.10+1.55*0.1+1.60*0.05=2.485
防成長率=1.50*0.1+2.10*0.1+1.55+1.60*0.05=1.99
敏成長率=1.60
三圍成長率=2.485+1.99+1.60=6.075


再看第二隻機暴,31/40/29/30,總130,查檔次補正係數為4.75
那麼體力成長率=33.5*4.75/100=1.59
腕力成長率=42.5*4.75/100=2.01
耐力成長率=31.5*4.75/100=1.49
速度成長率=32.5*4.75/100=1.54
血成長率=1.59*4+2.01+1.49+1.54=11.4
攻成長率=1.50*0.1+2.10+1.55*0.1+1.60*0.05=2.395
防成長率=1.50*0.1+2.10*0.1+1.55+1.60*0.05=1.927
敏成長率=1.54
三圍成長率=2.395+1.927+1.54=5.862

看到問題了嗎??明明第2隻機暴成長檔比第1雙3體力檔,但是實際成長率卻是前者要高0.2,究竟是為什麼?

罪魁禍首是檔次補正係數,因為大於130成長檔的寵,和100129成長檔的寵,它的檔次補正係數不一樣。這樣的話是不是說轉生後成長檔不要太高比較好?不是的,且聽我跟你慢慢解釋

關鍵是現在這兩隻機暴都是1轉,也就是說,還可以2,而2只機暴的成長檔一個是127一個是1302轉以後只要女寵沒問題,它們的成長檔都將必定超過130所以2轉以後,它們的檔次補正係數也肯定是一樣的,都是最低的4.75 所以說把兩隻機暴都拿去二轉的話,轉後平均成長第2只不會低於第一隻!

檔次補正係數可以解決我們以前想破腦袋都想不通的事情,例如為什麼綠人特別容易神轉
我把5色人龍的平均成長檔都列出給大家看一下
紅人(邦奇諾)24/38/16/20 98
藍人(揚奇洛斯)27/36/16/20 99
黃人(布魯頓)25/35/14/24 98
綠人(利澤諾頓)27/37/19/17 100
灰人(邦浦洛斯)25/37/15/21 98
聰明的同學肯定很快就明白問題出在哪裡了,沒錯,5色人龍裡面,只有綠人的平均總成長檔達到了100,而達到100或以上,就意味著它的成長要被打折扣,其他四色人龍的檔次補正係數都是4.95,就只有它的是4.75所以0轉時綠人的成長很難超過4.8,就是這個原因
而一轉的時候,無論是哪一色人龍成長檔大多都落在100~129這個區間(有可能達到130或以上,但很難),他們的成長補正係數都將會是4.95,這就是為什麼綠人轉前成長比其他的人龍都差一個檔次,轉後卻和其他人龍到達同個檔次的原因了。


國際慣例給大家來
個Q&A問答:
Q:成長檔越高,成長率越高
A:未必,對於0轉寵來說,這個結論是正確的。但如果是1轉的寵,有可能成長檔高成長率反而低。2轉的寵如果總成長檔會出現低於130的情況,也有可能成長檔高成長率反而低(130成長檔是個分界線,129成長檔的寵成長率會比130的寵高0.2左右,但140成長檔的寵的成長就肯定比129成長檔的寵要高

Q:一轉成長率低的寵,二轉成長率也會低
A:未必,主要還是看寵物是不是在130成長檔分界線那裡,如果成長檔達到130或以上,檔次補正係數會降低從而導致整體成長降低,讓我們看不清它的真實成長檔而受到迷惑。但只要把它拿去2轉馬上就能體現出它的威力。5.85的機暴,未必會比6.05的機暴要差!
把它們拿去2轉,如果那隻5.85的機暴是因為成長檔太高而降低了檔次補正係數的話,5.85的機暴轉出來的成長反而會被6.05的機暴更高

Q:是否可以由成長率反推出成長檔
A:可以,我先不告訴大家方法,晚點再公佈,我想如果有人真的讀懂了這篇文,肯定是懂得怎麼反推回去的
正如4樓所說的,可以用連立解方程的方法反推回去
連立解方程以後,是可以得到下面這個結論:
vitalP = (1.1 * hpP - attackP - defendP - speedP) / 4.2;
strP = (10 * attackP - defendP - 0.9 * vitalP - 0.45 * speedP) / 9.9;
tghP = (10 * defendP - attackP - 0.9 * vitalP - 0.45 * speedP) / 9.9;
dexP = speedP;
(vitalP,strP,tghP,dexP分別代表體力、腕力、耐力、速度成長率)
(hpP,attackP,defendP,speedP分別代表血攻防敏成長率)

得到各項內在成長率以後,即可進一步轉換為各項成長檔:
單項成長檔=100*單項成長率/檔次補正係數-2.5
(實在嫌麻煩就用版友提供的計算器進行運算吧)

Q:我如何得知寵物的成長檔
A:大部分舊寵的成長檔TZ是沒改過的,我在成長檔論二那篇文裡面有放出成長檔庫,大家可以去下載自己查。改過成長檔的寵就沒辦法了,只能是靠大家統計來做個估算。

Q:薩首算命相關的N問
A:遊戲裡的運氣,即算命算出的運氣,以及薩首等可以改變遊戲裡運氣的道具,從我看到的源碼來看,無論是拿寵、練寵、轉寵,通通與之無關
,即薩首既無害也無利,帶上也行,不帶上也無所謂,隨便。算命也一樣,算不算都一樣

暫時先寫這麼多,想到別的再補充
關於寵物的一轉和二轉深入的討論,我會把它們放在我的下一個帖子
成長檔論(四)——深度剖析寵物轉生裡面,大家敬請期待。

附錄
常見舊寵的平均成長,格式按 體力成長檔,腕力成長檔,耐力成長檔,速度成長檔來
紅人(邦奇諾):24,38,16,20
藍人(揚奇洛斯):27,36,16,20
黃人(布魯頓):25,35,14,24
綠人(利澤諾頓):27,37,19,17
灰人(邦浦洛斯):25,37,15,21
機暴(帖拉所伊朵):23,35,25,21
紅暴(巴朵蘭恩):23,37,20,25
藍暴(左迪洛斯):28,30,22,22

源代碼部分,懂C語言的朋友可以看一看
解說:寵物升級完整函數
int CHAR_PetLevelUp( int petindex )
{
    struct _RankRandTbl{
        int min;
        int max;
    }RankRandTbl[] = {
        { 450, 500 },
        { 470, 520 },
        { 490, 540 },
        { 510, 560 },
        { 530, 580 },
        { 550, 600 },
    };
    
解說:檔次補正亂數
    float Param[4] = { 0.0, 0.0, 0.0, 0.0 };
    int LevelUpPoint, petrank;
    float str, vital, dex, tgh, fRand, i;
#ifdef _TEACHER_SYSTEM
    int iGetFame = 0;
#endif    
    // 引数チェック
    if( CHAR_CHECKINDEX( petindex ) == FALSE )    return -1;
    if( CHAR_getInt( petindex, CHAR_WHICHTYPE ) != CHAR_TYPEPET )return -1;
    
    LevelUpPoint = CHAR_getInt( petindex, CHAR_ALLOCPOINT );
    
    // ペットのランク
    petrank = CHAR_getInt( petindex, CHAR_PETRANK );
    if( petrank < 0 || petrank > 5 ) petrank = 0;
解說:petrank是決定檔次補正亂數範圍的重要參數
    // 取得
    vital = (float)(( LevelUpPoint >> 24 ) & 0xFF);
    str = (float)(( LevelUpPoint >> 16 ) & 0xFF);
    tgh = (float)(( LevelUpPoint >> 8 ) & 0xFF);
    dex = (float)(( LevelUpPoint >> 0 ) & 0xFF);
解說:讀取寵物成長檔
    // 10回4面体サイコロを振って各項目に1足す
    for( i = 0; i < 10; i ++ ){
        Param[RAND( 0, 3 )] += 1.0;
    }
解說:+10隨機檔
    // ランクによる範囲のランダム
    fRand = (float)RAND( RankRandTbl[petrank].min, RankRandTbl[petrank].max )
        * 0.01;
    
    // 割り振りポイントより計算
    vital = (float)vital * fRand + Param[0] * fRand;
    str = (float)str   * fRand + Param[1] * fRand;
    tgh = (float)tgh   * fRand + Param[2] * fRand;
    dex = (float)dex   * fRand + Param[3] * fRand;
解說:公式(單項能力增加值=單項成長變數*檔次補正亂數/100)
    // 計算
    CHAR_setInt( petindex, CHAR_VITAL,
        CHAR_getInt( petindex, CHAR_VITAL ) + (int)vital );
    CHAR_setInt( petindex, CHAR_STR,
        CHAR_getInt( petindex, CHAR_STR ) + (int)str );
    CHAR_setInt( petindex, CHAR_TOUGH,
        CHAR_getInt( petindex, CHAR_TOUGH ) + (int)tgh );
    CHAR_setInt( petindex, CHAR_DEX,
        CHAR_getInt( petindex, CHAR_DEX ) + (int)dex );
解說:更新寵物的新四圍
}

——以上内容为ludaxx原创,转载须征得作者同意
             
31
-
板務人員:歡迎申請板主

3100 筆精華,09/03 更新
一個月內新增 0
歡迎加入共同維護。


face我們了解您不想看到廣告的心情⋯ 若您願意支持巴哈姆特永續經營,請將 gamer.com.tw 加入廣告阻擋工具的白名單中,謝謝 !【教學】