正如你看到的,我们的百科缺少很多基本资料,然而我们手头的资料很多,苦于没有人手,你愿意入伙吗?想和我们一起干的话就进入宝可梦大百科的建设QQ群,群号为46066525。务必注明“编辑宝可梦大百科” 百科目前为邀请注册,有意注册编辑的同学请在首页的讨论页面或者在建设群内留下你的邮箱。

[ 站务 | 命名方案 | 常用模板 | 参考源 | 优秀词条 | 用户服务 | 联系我们 ]

第一代精灵数据结构

Love Poke,Wiki Poke
跳到导航跳到搜索

第一代游戏的精灵数据结构储存了关于玩家捕获精灵的大部分数据。队伍中的每只精灵占用44字节,存储在电脑中的精灵则只占用33字节。因此当把一只精灵存储到电脑中时会丢失部分数据,分别是精灵的等级HP物攻物防特殊速度。 所以当一只精灵再次从电脑中取出时其丢失的各项能力值会得到重新计算,于是就出现了用来提高精灵能力值的盒子戏法

数据结构

偏移 含义 大小
0x00 精灵种族索引 1字节
0x01 剩余HP 单字
0x03 等级(?) 1字节
0x04 异常状态 1字节
0x05 属性1 1字节
0x06 属性2 1字节
0x07 捕获率/携带道具 1字节
0x08 技能1的编号 1字节
0x09 技能2的编号 1字节
0x0A 技能3的编号 1字节
0x0B 技能4的编号 1字节
0x0C 捕获训练家ID 单字
0x0E 经验值 3字节
0x11 HP努力值 单字
0x13 物攻努力值 单字
0x15 物防努力值 单字
0x17 速度努力值 单字
0x19 特殊努力值 单字
0x1B 个体值 单字
0x1D 技能1的PP 1字节
0x1E 技能2的PP 1字节
0x1F 技能3的PP 1字节
0x20 技能4的PP 1字节
0x21 等级 1字节
0x22 最大HP 单字
0x24 物攻 单字
0x26 物防 单字
0x28 速度 单字
0x2A 特殊 单字

细心的读者会发现,精灵的昵称和捕获训练家的名字并不在其中;它们其实被存放到了其他的地方了。

存放在电脑中的精灵使用了类似的数据结构,只是数据止于技能4的PP,即0x20。

精灵盒子数据只含有当前打开的盒子的数据,这也就解释了为什么换盒子之前需要玩家存档。在《精灵宝可梦 黄》美版中,这些数据起始于动态内存的0xDA95处,共长660字节(20只精灵每只33字节)。

各字段解释

种族

该精灵的种族在第一代游戏中的索引

剩余HP

该精灵剩下的HP。这个数据不能比最大HP字段的数值大。

等级

这个数据现在只是看上去像是精灵的等级,但是这明显是个冗余:当精灵存放在电脑的盒子中时,它是这个精灵的等级;然而当精灵取出的时候,能力值被重新计算,这个数值就会被覆盖一遍;再将精灵存放回电脑的盒子的时候又会被设成精灵的等级。这个数据的作用目前仍是个谜。

异常状态

该精灵的异常状态,是一个位字段。

异常状态
3 0x04 睡眠
4 0x08 中毒
5 0x10 烧伤
6 0x20 冰冻
7 0x40 麻痹


由于剧毒混乱仅在对战的情况下才存在,它没有存放在这里。0x00表示这只精灵没有任何异常状态。

属性

该精灵的属性。如果该精灵只有一种属性,那么两个值是一样的。这个数据有些冗余,因为在第一代中除了通过进化以外精灵没有办法改变属性。

捕获率/携带道具

该精灵的捕获率。这个数据不会改变,即使是进化到了一个拥有不同捕获率的精灵。

当与第二代游戏交换精灵时,这个字段会被用来存储精灵的携带道具

捕获训练家ID

该精灵的捕获者的训练家ID

经验值

该精灵积累的经验值。精灵的等级便是由经验值根据该精灵的成长公式计算得到的。

努力值

主条目: 努力值

该精灵通过战斗或者使用努力值增加剂分别积累的5种努力值。

PP

主条目: PP值

该精灵每个技能拥有的PP值。每个数值的低6位是对应技能的当前PP值,高2位则是对该技能使用的PP上升剂的数量。

这就能解释一些像破坏死光之类的多回合技能bug:游戏从整个字节减去1,导致0x00变成0xFF,这就意味着使用了3个PP上升剂,并且当前PP值到了63。但是,如果1个或多个PP上升剂已经用在这个技能上,这个字节就不会这么变化了,结果PP上升剂就被“移除”了。例如,如果对一个技能已经用了两个PP上升剂,并且该字节是0x80,之后就会变成0x7F,变成了63个PP值和1个PP上升剂。

最大HP

该精灵HP所能达到的上线,即精灵得到恢复后的HP值。

物攻,物防,速度,特殊

精灵的物攻、物防、速度、特殊是根据该种精灵对应的种族值、该精灵对应的个体值、该精灵对应的努力值和经验值计算的。这种计算在精灵等级上升和从电脑中取出精灵时发生。

参考资料


精灵宝可梦游戏数据结构
第一代 精灵数据结构精灵种族数据结构
第二代 精灵数据结构精灵种族数据结构训练家数据结构
第三代 精灵数据结构精灵数据子结构精灵种族数据结构技能数据结构
华丽大赛数据结构华丽大赛技能数据结构道具数据结构精灵图鉴数据结构
存档数据结构
第四代 精灵数据结构存档数据结构