阿爾宙斯寶可夢(mèng)數(shù)據(jù)解析
在PKHeX更新之前,大家可以先熟悉一下數(shù)據(jù)結(jié)構(gòu)。
以下都是基于PKHeX.Core的源碼和個(gè)人研究,可能存在錯(cuò)誤,歡迎在評(píng)論區(qū)討論。
概述
寶可夢(mèng)數(shù)據(jù)從原來(lái)的344字節(jié)調(diào)整成了360字節(jié),加密解密的方式?jīng)]有發(fā)生變化,數(shù)據(jù)結(jié)構(gòu)與之前類(lèi)似,但也有一些變化。
加密解密
加密解密方法可以參考https://github.com/kwsch/PKHeX/blob/master/PKHeX.Core/PKM/Util/PokeCrypto.cs 這個(gè)文件??傮w來(lái)看加密方法會(huì)對(duì)0x08-0x168的數(shù)據(jù)進(jìn)行加密,每4個(gè)字節(jié)作為一個(gè)塊(block)進(jìn)行加密和打亂操作。如果在0x00-0x07的數(shù)據(jù)隨意修改都不影響加密/解密結(jié)果。
0x00-0x03
這個(gè)就是在PKHeX中的加密常數(shù)
0x04-0x05
一般都是0
0x06-0x07
checksum,用于校驗(yàn)解密后數(shù)據(jù)的有效性,算法可以參考?https://github.com/kwsch/PKHeX/blob/master/PKHeX.Core/PKM/G8PKM.cs#L22
0x08-0x09
寶可夢(mèng)編號(hào)
0x0A-0x0B
攜帶道具編號(hào)
0x0C-0x0D
TID,訓(xùn)練家ID,這里注意7代以后顯示的TID有變化,具體可見(jiàn)?https://wiki.52poke.com/wiki/ID_No.?
0x0E-0x0F
SID,里ID,這里注意7代以后顯示的TID有變化,具體可見(jiàn)?https://wiki.52poke.com/wiki/ID_No.?
0x10-0x13
經(jīng)驗(yàn)值
0x14-0x15
特性id
0x16
低3位是特性序號(hào),第4位是否最?lèi)?ài)寶可夢(mèng),第5位是能否極巨化標(biāo)記,第6位是頭目標(biāo)記
0x17 對(duì)齊字節(jié),未使用
0x18-0x19
標(biāo)記
0x1A-0x1B 對(duì)齊字節(jié),未使用
0x1C-0x1F
PKHeX的PID
0x20
性格
0x21
薄荷性格
0x22
第一位是否命運(yùn)的相遇,第三位是性別
0x23 對(duì)齊標(biāo)記
0x24-0x25
形態(tài)id
0x26-0x2B
努力值,這代沒(méi)有用到
0x2C-0x31
華麗大賽6維(帥氣、美麗、可愛(ài)、聰明、強(qiáng)壯和光澤)
0x32
寶可夢(mèng)病毒相關(guān)數(shù)據(jù)
0x33 對(duì)齊字節(jié),未使用
0x34-0x47
獎(jiǎng)?wù)孪嚓P(guān)
0x48-0x4B
寶可夢(mèng)社交度。表示寶可夢(mèng)與其它寶可夢(mèng)的互動(dòng)程度。在每次煮咖喱飯后,高社交度的寶可夢(mèng)更容易吸引到野生的寶可夢(mèng)。其它玩家和NPC的高社交度寶可夢(mèng)更有可能向主角贈(zèng)送道具。
0x4C-0x4F 對(duì)齊字節(jié),未使用
0x50
寶可夢(mèng)身高0-255
0x51
寶可夢(mèng)體重0-255
0x52
這里似乎和0x51一致,不確定
0x53
???
0x54-0x5B
技能,每個(gè)技能2字節(jié)
0x5C-0x5F
技能PP值,每個(gè)技能1字節(jié)
0x60-0x79
寶可夢(mèng)昵稱(chēng),26個(gè)字節(jié)。最后兩個(gè)字節(jié)是\0
0x7A-0x91
???
0x92-0x93
當(dāng)前HP
0x94-0x97
HP ATK DEF SPA SPD SPE六維個(gè)體值,每個(gè)值占5bit,第31位為是否是蛋標(biāo)記,第32位是是否起昵稱(chēng)標(biāo)記
注意這里的個(gè)體值與最終的奮斗值有關(guān)。其中個(gè)體在0-19為0、20-25為1、26-30為2、31為3。定義轉(zhuǎn)換后的值為基礎(chǔ)奮斗值。最終顯示在游戲的奮斗值為基礎(chǔ)奮斗值+用道具加的奮斗值
0x98-0x9B
???
0x9C
當(dāng)前寶可夢(mèng)狀態(tài)(中毒、灼傷、睡眠、麻痹等)
0x9B-0xA3
???
0xA4-0xA9
用道具加的奮斗值,按照HP ATK DEF SPA SPD SPE順序,每個(gè)1字節(jié)
0xAA-0xEC
???(感覺(jué)應(yīng)該和寶可夢(mèng)現(xiàn)在持有者相關(guān))
0xEE
當(dāng)前版本,固定都為47,其實(shí)PKHeX早就預(yù)留好了這個(gè)值,可以看 https://github.com/kwsch/PKHeX/blob/master/PKHeX.Core/Game/Enums/GameVersion.cs#L207
0xEF-0xF1
???
0xF2
語(yǔ)言
0xF3-0x10F
???
0x110-0x129
寶可夢(mèng)初始訓(xùn)練家昵稱(chēng),26個(gè)字節(jié)。最后兩個(gè)字節(jié)是\0
0x12A
寶可夢(mèng)初始訓(xùn)練家親密度
0x12B-0x133
???
0x134
相遇年份,值為當(dāng)前年份-2000
0x135
相遇月份
0x136
相遇月的第幾天
0x137
捕捉的球種編號(hào)
0x138-0x13C
???
0x13D
低7位,相遇等級(jí)。第8位,寶可夢(mèng)初始訓(xùn)練家性別
0x13E-0x160
???