reddit大佬扒源代碼扒出來的繼承規律
原貼:https://www.reddit.com/r/Palworld/comments/1af9in7/passive_skill_inheritance_mechanics_in_breeding/
機翻潤色了一下,下面是原文:
尚未得到 100% 驗證,但很可能是在 Palworld 中繁殖帕魯時用於被動技能繼承的機制。
繼承概率:
- 4詞條:10%
- 3詞條:20%(累計30%,不含隨機詞條12%)
- 2詞條:30%(累計60%,不含隨機詞條24%)
- 1詞條:40%(累計100%,不含隨機詞條40%)
注意點:
- 如果父母總共擁有超過四種詞條,繼承所需的機會將隨著技能數量的增加而線性減少(例如,4/6 = ~66% * 10% = ~6.6%)。
- 由於上述原因,最好只培育同時具有四種所需被動技能而沒有其他技能的帕魯(2 + 2、3 + 1、4 + 0)。
- 當傳遞少於四個被動技能時,獲得所需組合的機會進一步減少 40% 機會不獲得任何額外的隨機技能(例如,1 + 1 = 60% 機會繼承這兩個屬性,減少到 0.6 x 0.4 = 24%(未獲得任何額外隨機技能)。
- 試圖從父母那裡繼承組合技能的特定子集總是次優的。 正如預期的那樣,幾率隨著技能數量的增加而線性下降。 在此基礎上乘以 40% 的幾率不增加任何隨機詞條,影響會更為顯著。
- 當你擁有一個擁有完美詞條的帕魯時,你應該能夠以 10% 的幾率將這些被動技能傳遞給其他帕魯。 你可以通過將完美帕魯與另一個沒有詞條的不同帕魯交配來做到這一點。
- 詞條不能多次選擇,即不會因為重複選擇而損失詞條。
- 父母雙方擁有和只有一方擁有某個詞條,繼承的概率是相同的。
- 隨機出來的非繼承詞條似乎都具有相同的稀有度。正如人們所預料的那樣,繼承的被動技能也是如此。
- 隨機出來的詞條也可能是父母擁有但未被繼承到子代的詞條。 這將稍微增加獲得特定詞條組合的幾率,不過增幅不大。
- 對於mod製作者:UPalGameSetting的屬性 Combi_PassiveInheritNum 和 Combi_PassiveRandomAddNum 是控制繼承一定數量被動技能的機會的加權隨機數組。
代碼:
懶得貼了,小黑盒好像也不方便貼代碼。能看懂代碼的人應該都有能力自己出去看吧……
---原文結束分割線---
我自己理解的流程(不一定對,懂代碼的最好自己出去看一看):
第一大步,遺傳部分:
- 確認繼承詞條數目(四條10%,三條20%,兩條30%,一條40%)n
- 取父母詞條的並集,重複的只算一次。
- 從並集中不重複地抽取n條詞條作為子代詞條,如果父母不重複詞條不夠n條,就繼承父母全部詞條。
第二大步,變異部分:
- 確認隨機詞條數目(三條10%,兩條20%,一條30%,零條70%)m
- 如果m加上遺傳得到的詞條數超過4,重新把m設為4-遺傳得到的詞條數
- 從沒有繼承到的詞條裡選出m個詞條,加入子代帕魯的詞條。
省流:
父親和母親有且僅有目標四詞條出貨的概率最大(10%加一點點隨機出貨的概率),有沒有重複都無所謂。