欢迎光临散文网 会员登陆 & 注册

阿尔宙斯宝可梦数据解析

2022-02-04 22:29 作者:easy_world  | 我要投稿

在PKHeX更新之前,大家可以先熟悉一下数据结构。

以下都是基于PKHeX.Core的源码和个人研究,可能存在错误,欢迎在评论区讨论。

概述

宝可梦数据从原来的344字节调整成了360字节,加密解密的方式没有发生变化,数据结构与之前类似,但也有一些变化。

加密解密

加密解密方法可以参考https://github.com/kwsch/PKHeX/blob/master/PKHeX.Core/PKM/Util/PokeCrypto.cs 这个文件。总体来看加密方法会对0x08-0x168的数据进行加密,每4个字节作为一个块(block)进行加密和打乱操作。如果在0x00-0x07的数据随意修改都不影响加密/解密结果。

0x00-0x03

这个就是在PKHeX中的加密常数

0x04-0x05

一般都是0

0x06-0x07

checksum,用于校验解密后数据的有效性,算法可以参考 https://github.com/kwsch/PKHeX/blob/master/PKHeX.Core/PKM/G8PKM.cs#L22

0x08-0x09

宝可梦编号

0x0A-0x0B

携带道具编号

0x0C-0x0D

TID,训练家ID,这里注意7代以后显示的TID有变化,具体可见 https://wiki.52poke.com/wiki/ID_No. 

0x0E-0x0F

SID,里ID,这里注意7代以后显示的TID有变化,具体可见 https://wiki.52poke.com/wiki/ID_No. 

0x10-0x13

经验值

0x14-0x15

特性id

0x16

低3位是特性序号,第4位是否最爱宝可梦,第5位是能否极巨化标记,第6位是头目标记

0x17 对齐字节,未使用

0x18-0x19

标记

0x1A-0x1B 对齐字节,未使用

0x1C-0x1F

PKHeX的PID

0x20

性格

0x21

薄荷性格

0x22

第一位是否命运的相遇,第三位是性别

0x23 对齐标记

0x24-0x25

形态id

0x26-0x2B

努力值,这代没有用到

0x2C-0x31

华丽大赛6维(帅气、美丽、可爱、聪明、强壮和光泽)

0x32

宝可梦病毒相关数据

0x33 对齐字节,未使用

0x34-0x47

奖章相关

0x48-0x4B

宝可梦社交度。表示宝可梦与其它宝可梦的互动程度。在每次煮咖喱饭后,高社交度的宝可梦更容易吸引到野生的宝可梦。其它玩家和NPC的高社交度宝可梦更有可能向主角赠送道具。

0x4C-0x4F 对齐字节,未使用

0x50

宝可梦身高0-255

0x51

宝可梦体重0-255

0x52

这里似乎和0x51一致,不确定

0x53

???

0x54-0x5B

技能,每个技能2字节

0x5C-0x5F

技能PP值,每个技能1字节

0x60-0x79

宝可梦昵称,26个字节。最后两个字节是\0

0x7A-0x91

???

0x92-0x93

当前HP

0x94-0x97

HP ATK DEF SPA SPD SPE六维个体值,每个值占5bit,第31位为是否是蛋标记,第32位是是否起昵称标记

注意这里的个体值与最终的奋斗值有关。其中个体在0-19为0、20-25为1、26-30为2、31为3。定义转换后的值为基础奋斗值。最终显示在游戏的奋斗值为基础奋斗值+用道具加的奋斗值

0x98-0x9B

???

0x9C

当前宝可梦状态(中毒、灼伤、睡眠、麻痹等)

0x9B-0xA3

???

0xA4-0xA9

用道具加的奋斗值,按照HP ATK DEF SPA SPD SPE顺序,每个1字节

0xAA-0xEC

???(感觉应该和宝可梦现在持有者相关)

0xEE

当前版本,固定都为47,其实PKHeX早就预留好了这个值,可以看 https://github.com/kwsch/PKHeX/blob/master/PKHeX.Core/Game/Enums/GameVersion.cs#L207

0xEF-0xF1

???

0xF2

语言

0xF3-0x10F

???

0x110-0x129

宝可梦初始训练家昵称,26个字节。最后两个字节是\0

0x12A

宝可梦初始训练家亲密度

0x12B-0x133

???

0x134

相遇年份,值为当前年份-2000

0x135

相遇月份

0x136

相遇月的第几天

0x137

捕捉的球种编号

0x138-0x13C

???

0x13D

低7位,相遇等级。第8位,宝可梦初始训练家性别

0x13E-0x160

???


阿尔宙斯宝可梦数据解析的评论 (共 条)

分享到微博请遵守国家法律