本篇探討服務端原始碼中寵物遺傳技能的機率
可以看到他在最後兩個參數給的是Skill1跟Skill2分別就代表主體與客體一。進入到這個函式後會對這即將產生的蛋蛋做一些參數設定,其中我們直接跳到技能遺傳的部分。
遺傳的程式碼片段在這邊:
可以看到他用一個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%。
|