這篇基本上是某兔研究的時候用的小抄,所以不會有多餘解釋
看得懂的專(ㄈㄟˋ)家(ㄖㄣˊ)們如果有需要的話請自取
至於看不懂的玩家們嘛......
就當成不知道努力值和個體值是什麼鬼東西一樣
忘了這些東西的存在、然後無憂無慮地享受神奇寶貝的樂趣吧
另外,某兔寫這篇小抄的順序是「收集資料」→「驗證」
驗證完的部分會把內容改成已確定的
藍字、錯誤的
紅字或是要刪除的
灰字還沒上色的部分就是還沒確定(當然也歡迎來信指正)
常用詞彙以下是玩家常用詞彙,所以不會在這裡做詳細解釋
(基本上不知道這些詞彙意思的話也不會看這篇吧......痛毆)
個體值( IV )有 HP 、攻擊、防禦、特攻、特防和速度六項
( HP 、 Atk 、 Def 、 SpA 、 SpD 、 Spe )
每項都是 5 位元非負整數,數值範圍 0x00 到 0x1F
性格值( PID )32 位元非負整數,數值範圍 0x00000000 到 0xFFFFFFFF
訓練師 ID ( ID )32 位元非負整數,數值範圍 0x00000000 到 0xFFFFFFFF
以下是計算時常見的詞彙,在看計算公式以前一定要弄清楚
個體值組合 A / B ( IVa 、 IVb )在某些生成機制裡,個體值是一次決定三項的
(這是因為一個 16 位元亂數最多可以分出三個 5 位元非負整數)
所以有時候也會直接以這種「三項一組」的方式解釋個體值的生成
其中第一組 IVa 依序為防禦、攻擊和 HP
IVa = Def * 0x0400 + Atk * 0x0020 + HP (+ 0x8000)
第二組 IVb 依序為特防、特攻和速度
IVb = SpD * 0x0400 + SpA * 0x0020 + Spe (+ 0x8000)
(因為 16 位元亂數的最高位在生成個體值時不會用到
所以 0 或 1 都有可能,要看產生的亂數而定)
性格值上位/下位( HID 、 LID )在某些生成機制裡,性格值是分成上下兩半生成、之後再合併的
寫成公式就是 HID = U16(PID) 、 LID = L16(PID)
表 ID /裡 ID ( TID 、 SID )和性格值一樣,訓練師 ID 有時候也會分成上下兩半生成再合併
所以可以寫成 SID = U16(ID) 、 TID = L16(ID)
另外,遊戲中顯示在訓練師卡上的是 TID
亂數產生器以下統一用
x(i) 代表亂數種子、
n(i) 代表產生的亂數
第三/四世代亂數產生器( Gen III / IV PRNG )用途:
算式:
- 種子 x(i+1) = L32(x(i) * 0x41C64E6D + 0x00006073)
- 亂數 n(i+1) = U16(x(i+1))
- 倒推 x(i) = L32(x(i+1) * 0xEEB9EB65 + 0x0A3561A1)
第三世代第二亂數產生器( Gen III 2nd RNG )用途:
- 在紅藍綠寶石裡:決定笨笨魚的出沒地點
- 在火紅葉綠裡:決定野生神奇寶貝是否出現
- 在黑白裡也有這個產生器,但是用途不明
算式:
- 種子 x(i+1) = L32(x(i) * 0x41C64E6D + 0x00003039)
- 倒推 x(i) = L32(x(i+1) * 0xEEB9EB65 + 0xFC77A683)
第四世代替代亂數產生器( Gen IV ARNG )用途:
- 決定不可思議禮物神奇寶貝的性格值(瑪納霏的蛋除外)
- 在國際孵化時用來決定第 2 到 4 組性格值
算式:
- 種子 x(i+1) = L32(x(i) * 0x6C078965 + 0x00000001)
- 倒推 x(i) = L32(x(i+1) * 0x9638806D + 0x69C77F93)
第四世代 GTS 專用產生器( Gen IV GRNG )用途:
- 在第四世代遊戲使用 GTS 時,有一部分的傳送資料會經過加密
這個產生器就是專門用在 GTS 資料加密機制上的
算式:
- 種子 x(i+1) = L32(x(i) * 0x00000045 + 0x00001111)
- 倒推 x(i) = L32(x(i+1) * 0x233F128D + 0x789467A3)
GC 版亂數產生器( XDRNG )用途:
- 負責產生所有 GC 版遊戲及日版競技場特典光碟所需的亂數
算式:
- 種子 x(i+1) = L32(x(i) * 0x000343FD + 0x00269EC3)
第四世代孵育用亂數產生器( IRNG )
待補
初始種子 x(0) 決定方法紅藍寶石時間機制正常運作時:
- x(0) 的決定方法目前不明,只確定和開始遊戲時的時間有關
- x(0) 的範圍是 0x00000000 到 0x0000FFFF
- x(0) 在確定以前似乎是每分鐘變化一次?
時間機制停止後:
- x(0) = 0x000005A0
- x(0) 的值是什麼時候載入的?遊戲載入瞬間?還是開始遊戲的瞬間?
- 發生樹果問題的遊戲算不算時間機制停止?
綠寶石
- x(0) = 0x00000000
- x(0) 的決定和時間機制無關
- 綠寶石本來有內建跟火紅葉綠一樣的 x(0) 決定機制,但是實際上沒有用到
- 跟紅藍寶石一樣,要確定 x(0) 的值是什麼時候載入的
火紅葉綠:出現藍底選單時決定 x[0]
第四世代共通: x[0] = 0x{AB}{CD}{EFGH}
{AB} = (sec + min + mon * day) and 0xFF
{CD} = hr
{EFGH} = yr - 2000 + delay
其他的......啊煩死了,等有空再一點一點補
(到底欠幾篇了啦!被拖走)