Board logo

标题: 曹操传存档文件深度剖析 [打印本页]

作者: z6482    时间: 2009-9-19 13:35     标题: 曹操传存档文件深度剖析

在曹操传中,每一个存档,都对应三个文件存档文件,文件名称分别为:Sv0?d.e5s、 Sv0?e.e5s、Sv0?s.e5s。其中Sv0?d.e5s中存的就是保存时刻所有的素具信息,Sv0?s.e5s应该就是当时的场景信息,而Sv0?e.e5s暂时不清楚。
共有10个存档,从00~09,分别对应读取时显示的No1~No10.每做一次存档就会修改相对应的一组的三个存档文件。Sv0?d.e5s文件存放着该存档的数据信息,那么修改这个文件就能够修改所有人的信息以及仓库中的东西了。现将Sv0?d.e5s文件
剖析如下:
用ultraEDit或其它编辑器打开存盘文件Sv0?d.e5s
一、地址00H处都是05,
二、地址01H处表示曹操的等级,显示在读档时那个Lv.接下来从有几个不明确,然后就是这一存档的注释类文字的代码如:B2 DC B2 D9 BE D9 B1 F8表示“曹操举兵”四个字
从23H往后是曹操军主营几个字的代码,如果是在战斗中存档应该是显示第XX回合。由于每一存档所显示的字数不一样,而读档时我们看见的是:
                     No.X | Lv.X | -XX之战-(第X回合)或No.X | Lv.X | 曹操举兵 汜水关 曹操军主营   
类似格式。因此在00H-55H共96个字节的内容都是我们读档时看见的东西。
接下来就是我们真正感兴趣的了:
三、地址56H处存的是曹操的忠奸值取值范围00H~64H即0~100
四、地址57H至2AEH共248H(279)个字节存放的是仓库中的武具。每三位是一种武具,按代码、等级、经验值的顺序排放。
(武具代码如下:
00 短剑 01 大剑 02 钢剑 03 短枪 04 长枪 05 钢枪 06 短弓 07 大弓
08 铁弓 09 木棍 0A 铜棍 0B 铁棍 0C 木制投石机 0D 铜制投石机
0E 铁制投石机 0F 竹扇10 军扇 11 铁扇 12 石制宝剑 13铜制宝剑
14 铁制宝剑 15 雌雄双剑 16 青扛剑 17 倚天剑 18 古锭刀 19 青龙偃月刀
1A 蛇矛 1B 方天化戟 1C吕步之弓 1D 李广之弓1E 流星锤 1F 双鞭
20 金火罐炮 21 芭蕉扇 22 五火神焰扇 23 白羽扇 24 七星剑
25 圣者宝剑 26 皮铠 27 铜铠 28 铁铠 29 布衣 2A 皮衣 2B 战斗服 2C镜铠
2D 黄金铠 2E 连环铠 2F 白银铠 30 龙鳞铠 31 飞龙道袍 32 鹤氅 33漆黑道服
34 凤凰羽衣 35 皮盾 36 铜盾 37 白银盾    38 风神盾 39 皮制马铠 3A 铜制马铠
3B 风车轮 3C 爪黄飞电 3D 绝影 3E 赤兔马 3F 的卢 40 皮盔 41 铜盔 42 铁盔
43 方巾 44 纶巾 45 诸葛巾 46 布手套       47 皮手套 48 没羽箭 49 孙子兵法
4A 孟德新书 4B 青囊书 4C 太平青领道     4D 太平要术 4E 遁甲天书 4F 六韬
50 三略 51 豆袋 52 玉玺 53 青龙宝玉 54 朱雀宝玉 55 玄武宝玉 56 白虎宝玉

我曾尝试将这些地方全部填满东西!然后在战斗中得到物品时提示仓库已满让我卖掉一些东西但我加的东西全是不能卖的结果卡死在那里了,关闭那个按钮都是灰色的,按不动。最后用资源管理器把它强行结束才完事。我在装备时将宝物库装满然后装备无法脱下,打开仓库那人说了一堆乱码,我估计是仓库已满,要先卖掉吧!但可以换
装备。闲话了!
五、地址2AFH至2BFH共17个字节,分别是恢复用豆、恢复用米、恢复用桃、神秘水、神秘酒、解毒药、兴奋剂、膏药、止咳药、万能药、印绶、武力果、智力果、统率力果、敏捷果、好运果、经验果的数量。最多FF(255)个。
六、地址2C0H至14DBH很长一段尚未明确。
七、地址14DCH至文件最后54DBH共4000H(16384)个字节,存放了所有人的数据每个人占2行共32个字节。所以一共存了512个人的数据。现将每个人的数据结构介绍如下(以曹操为例):
XX XX XX XX XX XX XX XX XX XX XX XX 00 00 00 00
32 3A 37 31 33 29 31 2E 2B 2A 75 00 21 00 03 0C
17 01 04 26 01 00  FF FF FF  01 01 00 XX XX XX XX
14DC-14DD:曹操(人物)的头像代码(脸谱的InDEx)。
1DFE:大地图上对应形象的InDEx
14FF:敌我属性。(00为我方,FF为敌方)
14E0-14E4:是基本能力数值,分别是武力,智力,统帅力,敏捷,运气。取值范围00~64H
14E5-14E9:是游戏能力数值,分别是:攻击力,精神力,防御力,爆发力,士气。取值范围00~FFH
14EA-14EB:是HP。
14EC:是MP
14ED:是部队的兵种。
14EE:等级。
14EF:经验值。
14F0-14F2:装备武器的代码、等级、经验值。
14F3-14F5:装备防具的代码、等级、经验值。
14F6-14F8:装备辅助品的代码、等级、经验值。
14F9:该武将的出场次数。
14FA:该武将的获胜次数。
14FB:该武将的撤退次数。
每个人的数据对应如下:
XX XX XX XX XX XX XX XX XX XX XX XX 00 00 00 00
                                                     头像代码  敌我
32 3A 37 31 33 29 31 2E 2B 2A 75 00 21 00 03 0C
武  智  统 敏  运 攻 精  防  爆 士    HP   MP 兵 Lv Exp
17 01 04 26 01 00 FF FF FF 01 01 00 XX XX XX XX
    武器       护具       辅助    出 胜 撤 下一武将
其中:人物头像代码:
00曹操   01夏侯敦 02张辽   03关羽   04曹彰  05曹仁   06夏侯渊 07张颌   08曹丕   09庞德
0A乐进   0B李典   0C曹洪   0D徐晃   0E于禁   0F许褚   10典韦   11貂蝉   12刘烨   13司马懿
14荀彧   15程昱   16郭嘉   17贾诩   18荀攸   19满宠   1A夏侯恩 1B文聘   1C夏侯杰 1D郭淮
1E曹安民 1F曹昂   20刘备   21张飞   22赵云  23诸葛亮 24黄忠   25魏延   26法正   27伊籍
28孙乾   29糜竺   2A糜芳   2B简雍   2C廖化  2D刘封   2E关平   2F周仓   30严颜   31马良
32马谡   33王甫   34沙摩可 35关兴   36张苞  37蒋琬   38费祎   39马超   3A马岱   3B王平
3C李严   3D吴懿   3E吴兰   3F雷铜   40刘琦   41孟达   42关索   43刘禅   44张嶷   45姜维
46张翼   47孟获   48祝融   49孟优   4A刘辟  4B龚都   4C孙权   4D周瑜   4E鲁肃   4F诸葛谨
50吕蒙   51陆逊   52潘璋   53徐盛   54甘宁  55凌统   56周泰   57蒋钦   58张昭   59陈武
5A庞统   5B黄盖   5C全琮   5D董袭   5E韩当  5F太史慈 60丁奉   61张宏   62程普   63孙坚
64孙策   65袁绍   66逢纪   67郭图   68许攸  69沮授   6A审配   6B高览   6C颜良   6D文丑
6E田丰   6F淳于琼 70辛评   71袁谭   72袁熙  73袁尚   74高干   75辛毗   76沮鹄   77吕布
78魏续   79宋宪   7A高顺   7B侯成   7C曹性  7D臧霸   7E陈宫   7F董卓   80张济   81郭汜
82徐荣   83李傕   84李儒   85樊稠   86华雄  87李肃   88袁术   89纪灵   8A马腾   8B韩遂
8C张鲁   8D张卫   8E阎圃   8F张绣   90胡车儿91陶谦   92张宝   93张梁   94梦梅   95献帝
96杨修   97徐庶   98徐母   99王允   9A甘夫人9B糜夫人 9C邹夫人 9D许子将 9E曹嵩   9F曹植
A0刘璋   A1公孙瓒 A2鲁肃99 A3刘备99 A4张飞99 A5周瑜99 A6孙坚99 A7孙策99 A8孙权99 A9吕蒙99
AA诸葛亮1.AB诸葛亮2,AC诸葛亮3,AD诸葛亮4,(99表灵魂)
剩下的按类划分
AE-B0富豪1-3    B1-B4农民1-4    B5-BA士兵1-6        BB-BC黄巾军1-2(和貂禅一起的那两个)
BD-BF侍女1-3    C0-C5文官1-6    C6赤兔马        C7马            C8白马          C9关羽首级
CA大旗          CB镜台          CC商人          CD年轻人        CE男子          CF女子
D0小孩7         D1小孩4         D2-E9  步兵1-24               EA-FF弓兵1-22   (00 01)-(01 01)弓兵23-弓兵24
(02 01)-(19 01)骑兵1-骑兵24                (1A 01)-(29 01)弓骑兵1-弓骑兵16
(2A 01)-(35 01)炮兵1-炮兵12                (36 01)-(3D 01)武术家1-武术家8
(3E 01)-(4D 01)贼兵1-贼兵16                (4E 01)-(55 01)策士1-策士8
(56 01)-(5D 01)风水士1-风水士8            (5E 01)-(65 01)道士1-道士8
(66 01)-(7D 01)海盗1-海盗24                (7E 01)-(85 01)驯熊师1-驯熊师8
(86 01)-(8D 01)驯虎师1-驯虎师8            (8E 01)-(95 01)辎重队1-辎重队8
(96 01)-(9D 01)粮草队1-粮草队8            (9E 01)-(B5 01)木人1-木人24
(B6 01)-(CD 01)土偶1-土偶24                (CE 01)-(D9 01)西凉骑兵1-西凉骑兵12
(DA 01)-(F7 01)黄巾军1-黄巾军30          (F8 01)-(FF 01)百姓1-百姓8.
武器、护具、辅助的代码和前面是一样的。
兵种代码如下:
00群雄     01英雄    02霸王      03轻步兵   04重步兵  05近卫兵  06弓兵   07弩兵   08连弩兵
09轻骑兵 0A重骑兵  0B近卫军 0C弓骑兵   0D弓弩骑兵  0E连弩骑兵 0F轻炮车  10重炮车 11霹雳车
12武道家   13拳术家 14拳圣    15贼兵      16义贼     17豪杰    18策士   19参谋    1A军师   
1B风水士 1C方术士   1D仙术士 1E道士      1F幻术士   20妖术士 21骑马策士 22骑马参谋 23骑马军师
24舞娘   25舞妓     26巫女     27西凉骑兵 28黄巾军  29海盗   2A驯熊师 2B驯虎师   2C都督
2D咒术士  2E仙人   2F辎重队 30粮秣队   31木人   32土偶    33皇帝   34百姓
至此存档数据文件已经解析完毕,在此说明几点:
1、总结很多帖子上说法可以得出以下结论:
从000014E0开始,每两行是一个人物以曹操为例:
14E0—14E4为部队能力,按攻击、防御、精神、爆发、士气的顺序排列。
14EA—14EB为HP,14EC为MP,14ED为兵种,
14EE为等级,14EF为经验。14F0—14F2为装备的武器、14F3—14F5为装备的防具、14F6—14F8为装备的辅助物品、
14F9:该武将的出场次数。
14FA:该武将的获胜次数。
14FB:该武将的撤退次数。
14FC:该武将的头像代码。
14FD-14FE:未知。
14FF:敌我属性。(00为我方,FF为敌方)
观察夏侯等6人加入后的存档,从14FC-14FF
每隔一行有下列数据:
01 00 01 00  曹操
02 00 02 FF  夏侯惇
06 00 06 FF  张辽
05 00 05 FF  关羽
03 00 03 00  曹彰
07 00 07 00  曹仁
08 00 08 FF  夏侯渊
0E 00 0E FF  张颌
0A 00 0A FF  曹丕
0B 00 0B 00  庞德
09 00 09 00  乐进
04 00 04 00  李典
0D 00 04 FF  曹洪
0C 00 0C FF  徐晃
根据最后一字节是00 还是FF判断夏侯惇不是我军而曹彰却已经是了,后面又有这种情况,庞德已经是我军了而曹洪却不是。几经修改发现14DC-14DF这4字节都是00,与前面的是一样的,殊不知这四个字节却正好代表了曹操的代码及其敌我属性,我将14DF这一字节改为FF回到游戏中发现在武将一览中已经没有曹操了。这样结论就已经出来了:我看到的帖子里面说的有问题,每个人物的数据占2行32个字节没错,但是曹操的是从14DC这个字节开始至14FB结束,而不是从14E0开始的两行!最后到文件末尾看看也发现文件结尾处也是在54DB处结束,正如前文所述,刚好从14DC起,至54DB止共4000H个字节存了512个人的数据。于是我肯定了我的想法得到了上面的结论。
2、玩曹操传也快一年了吧!断断续续的也通关了两三遍了,后来玩严国栋版的刘备传,后面有很多关都很难过关,感觉难度有点大,于是就上网找攻略找修改器。在后来就想自己添加人物去里面玩了,幸好很多人已经走在前面了,我就可以少走很多弯路。最近有了闲暇的时间于是就想把这一想法来实践实践,打造自己的曹操传,在网上得到了很多的资料,但是资料非常零散,我把我搜集到的一些资料和我的一点点发现整合在一起,现在基本上完成了对Sv0?de5s这一文件的分析。下一步是准备分析DATA文件了。可能需要一些时间。
3、地址2C0H至14DBH这一段我没能发现什么,也没在网上找到相关的信息,从曹操的数据往前数我发现每36个字节是一个重复的结构,组成为:
00 00 00 00 00 00 00 00 00 00 03 00 03 00 01 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 04 00 00 00 00 00
这是后面没有存数据的结构前面是存了数据的如下:
00 00 00 00 2B 00 62 00 00 00 03 00 03 00 01 00 00 00 00 00
02 00 00 00 00 00 00 00 00 00 04 00 00 00 05 10
而在仓库中道具数量完毕之后的一小段数据(没记错的话应该是28个字节)不是上面的结构,接下来就是上面的结构了。我看颍川之战的第四回合是有四个上面的结构,我认为是代表曹操、刘备关羽张飞四个人的信息,而当我把曹操行动完毕之后再来看则前面那28个字节全变了!变成喝多的17.。
4、如果说只想改很多宝物、要好装备的话不用研究这个也可以了,但是我相信有人愿意把它整透彻!向我一样。望有共同兴趣的朋友多多交流!
5、附件中是本文的word版本,没有帖子里面的闲话,方便大家参考以做修改。
6、感谢前辈们无私的将他们的成果发表出来,让我有研究和学习的资料与机会!

[ 本帖最后由 z6482 于 2009-9-23 02:32 编辑 ]

附件: [存档文件剖析] 存档文件剖析.rar (2009-9-19 13:35, 11.55 K) / 该附件被下载次数 509
http://xycq.org.cn/forum/attachment.php?aid=81320
作者: wzyyhh    时间: 2009-9-19 14:38

厉害!但对于这个我真没有耐心~~
作者: morningboo    时间: 2009-9-19 15:16

恩,不错的资料贴,可否推出OB版解析以及扩充存档的方法
作者: z6482    时间: 2009-9-19 20:41     标题: 回复 #3 morningboo 的帖子

呵呵!老实说我也是刚刚接触曹操传文件的内部数据,OB 版我确实不知所云!扩充存档应该是有困难的,不直达有没有人做过这方面的尝试,我想如果要想多要一些存档的话,只要将安装目录下相应存档的Sv0?d.e5s、 Sv0?e.e5s、Sv0?s.e5s三个文件保存到一边,用的是很在复制回来就可以了吧!这样也算是曲线救国的解决了你的问题吧!但我现在也只能给出这个答案了!呵呵!多谢捧场
作者: morningboo    时间: 2009-9-20 00:08     标题: 回复 #4 z6482 的帖子

看来你理解错了我的意思,我所说的扩充存档是指增加存放数据的类型,以便可以更加多元化的修改EXE
DATA的相关内容,例如新引擎5.5增加的存档就是用来存储集齐必杀等数据的。
作者: z6482    时间: 2009-9-20 09:03     标题: 回复 #5 morningboo 的帖子

哦!你是说增加存档存储的信息容量啊!我真是理解错了。我的想法是:它每个存档对应了有3个文件,而数据信息存在此文档,我觉得游戏必须的信息在这三个文档中都有存储,
另外,在Sv0?d.e5s中(正如我在第3点说明中所说),有28个字节还没有弄清楚。我初步估计应该是那些人是否行动完毕的东西,或者天气情况也可能存在这个文档中
不当之处还请指正!




欢迎光临 轩辕春秋文化论坛 (http://xycq.org.cn/forum/) Powered by Discuz! 5.0.0