本帖最後由 圈圈 於 2018-4-15 23:36 編輯
$ @! r* y8 }# S7 d. f, F
) j7 j# `4 z* I, a2 a 會有這篇分析的原因是小弟花了很多時間跟資源養了很多殘女跟素材。充滿期待的去合寵,結果合出來是一隻廢物。詢問GM這邊關於融合寵有什麼改動。根據GM的原話是這樣:「這邊除了改了融合寵的轉生與等級限制,GM沒事不會去動那東西。」
$ u0 H. h" B* t. s: l 但大家應該都有感覺,這邊的改動可能不只如此。剛好小弟手邊有別服的原始碼,所以打算來研究一下,希望可以給大家互相切磋,如果發現是GM的程式碼邏輯錯誤的話,可以還我一個公道。 ( s V. v0 \2 E
5 G2 q$ `& Z' F
注意:文長,且具軟體的知識,如果想看結論可以直接到最下面紅字部分。 6 J. d; G1 s4 U2 Z& M) \4 f
8 `; R5 ~' ~# d' O2 s) r 6 S% B* e. Y0 w+ y$ V
今天這篇的主題是要討論技能遺傳的部分是不真的如GM所說是主體50%、客體一50%。在原始碼中可以在npc_petfusion.c裡面的NPC_DoPetFusion函式可以找到融合寵NPC的程式碼片段,那他會先取的主體一跟客體一的技能,並且把他丟到合成蛋蛋的函式裏頭。程式碼重點部分如下:
' p. M& e0 v& f* z T& q% ]; u9 x# M
% k. q# I0 r% L d8 m, u5 Z* [
S5 S3 c+ p/ Q) Z可以看到他在最後兩個參數給的是Skill1跟Skill2分別就代表主體與客體一。進入到這個函式後會對這即將產生的蛋蛋做一些參數設定,其中我們直接跳到技能遺傳的部分。 & A( E/ l$ A6 y& u+ T5 |: y# }
遺傳的程式碼片段在這邊:
! f6 w& B/ U" G: O- }7 H0 K1 r可以看到他用一個RAND的macro來決定要遺傳哪一隻的技能。再來我們來看看他的macro是怎麼定義的,如下: 其中RAND_MAX=32767,我們把x=0,y=1帶入並化簡可以得到以下這個式子: (int)( 2*(一個0~32767的隨機數) / 32768) 其中如果黃色的部分大於1那結果就會是遺傳主體的技能,反之小於1就會是遺傳到客體一的技能。當隨機數大於等於16384時就會是主體技能,0-16384一共16385個數字,而16385-32767也是16385個數字,機率為50%、50%。 * e$ V0 v9 ~- G E4 |
& ]. y( v, `' Y' m% v# c
5 I$ O7 l' e" s' V$ \# {7 h
結論:如果GM在此沒有特別變動的話,機率就是主體客體一的技能各一半,但如果GM有改,而且邏輯有錯誤,或根本想要讓某些技能(迅影一擊)機率低的話就不一定了。
4 Y# I6 J5 I, `8 a; R) M h: m) r$ S- j. ^ c: @
技能超過3技的一大堆,有人看過迅影一擊遺傳超過3個的嗎?有的話可以分享給大家看看嗎5 s0 [: I9 P7 O" R, w
+ H2 O% ]. m, {, N* p2 d
5 a/ q, B. B; V3 G3 N+ l1 _- S* S- O' j* l2 `- x8 M0 B* q
今天的題目到這邊相信已經可以證明機率真的是50%、50%。至於下一篇的題目大概會是【客體一的成長會不會影響到融合出來的寵物成長】如果沒有其他更有趣的議題的話。 # M5 q8 c, q* O: [& r! R. ~/ U
歡迎大家討論,喜歡的話可以給我按的讚。 0 }; n# [7 |& {& c7 X' v
+ r& s; _5 y+ [. ]4 G" o& a O
( G0 w2 W+ r2 ~0 {
# R2 G; W" L) d/ ]0 Z" R
1 \: F5 o5 G: V9 Y: F
( E) i/ t3 x8 \ Y6 q- ]3 f) g |