魔力/石器外掛

 找回密碼
 立即申請
查看: 1619|回復: 0

[分享] 【轉載】成長檔論(三)——成長檔與成長率

[複製鏈接]

121

主題

721

回帖

4666

積分

管理員

Rank: 14Rank: 14Rank: 14Rank: 14

積分
4666

最佳新人活躍會員熱心會員推廣達人宣傳達人灌水之王突出貢獻優秀版主榮譽管理論壇元老

發表於 2021-7-14 20:22:28 | 顯示全部樓層 |閱讀模式




取自巴哈 ludaxx




在看本帖之前,請確認你已經閱讀過成長檔論一和成長檔論二,不然很多東西你很可能會看不懂
前傳地址:
成長檔論(一)——成長檔論與寵物轉生
成長檔論(二)——寵物初始四圍之謎

首先向大家介紹一下成長率和成長檔的換算公式
平均單項成長率=(單項成長檔+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原创,转载须征得作者同意


Copyright 2019-2023 ©Bestkakkoii llc. All rights reserved.

All contents in this website are for academic and research use only
回復

使用道具 舉報

關閉

站長推薦上一條 /1 下一條

Archiver|Love SA / Love CG 魔力 / 石器 - 水藍外掛 |網站地圖

GMT+8, 2024-3-28 20:25 , Processed in 0.292939 second(s), 29 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回復 返回頂部 返回列表