标题: 王国兴亡录基本修改浅析, 供有兴趣改造此款游戏者参考
性别:女-离线 叶落秋寒

英国公主监造使谏议大夫

Rank: 12Rank: 12Rank: 12
组别 翰林学士
级别 后将军
功绩 447
帖子 1572
编号 108
注册 2005-1-29
来自 天界


简单介绍一下,供有兴趣改造此款游戏者参考

未经作者允许,拒绝转载

目录
图像文件EvFace0?.rb2、Faces.rb2、Items.rb2
消息文件Message.rb2
存档文件Dinar??.rb2
剧本文件SceDat?.rb2


精华帖
顶部
性别:女-离线 叶落秋寒

英国公主监造使谏议大夫

Rank: 12Rank: 12Rank: 12
组别 翰林学士
级别 后将军
功绩 447
帖子 1572
编号 108
注册 2005-1-29
来自 天界


1、图像文件
(可以用van制作的RPGViewer查看)
图像采用16位色格式
结合自己的处理略谈一下

-人物半身像
分别存放在EvFace00.rb2-EvFace09.rb2这10个文件内
单人192*240的bmp
采用LS格式压缩
00-04.rb2 光明形象
05-09.rb2 黑暗形象
如要显示某人半身形像,则判断该人是否被控制
// j=人物头像编号
否:"EvFace0" & (j \ 50) & ".rb2"
是:"EvFace0" & (j \ 50 + 5) & ".rb2"
目标图像文件(EvFace0?.rb2)内解压编号 = j - (j \ 50) * 50
LS格式压缩原理可参考本区精华主题《ls11格式详解》

-人物头像
相信用van制作的RPGViewer查看过人物头像的都知道,其显示方式是以1920*120为一行20人的头像

Faces.rb2这一文件的格式为
BITMAPINFOHEADER
BITMAPFILEHEADER
黑暗形象(260-0)
光明形象(260-0)

以20个96*120的单人bmp格式构成一组(也就是用RPGViewer看到的)
但其的构成方式并非是按照一个个人物头像这样组合(当初偶误认为是,结果怎么也显示不出,后经van的指点方才领会这种组合方式,在此感谢van  )
而是以1920*1这样逐行存放1920*120格式数据的

显示单人头像步骤(96*120)
采用16位色,图像上一个点占用2个字节
因此要显示一个单人头像,就必须依次截取96*2个字节,跳转96*2*20个字节,重复取120次,然后数据拼合,方能予以显示正确
用RPGViewer查看可以看到显示的第一组第一个头像是黑暗241号头像,全部共计26组,520个头像,因此我们要能正确显示和替换头像,就必须找到正确的数据部分
以下是偶的初步显示处理,相信替换处理是一个逆过程

// j=人物头像编号
// x=20
判断该人是否被控制
否:j =500 - (j \ x) * x + (j Mod x)
是:j =240 - (j \ x) * x + (j Mod x)

Bit.bmiHeader.biHeight = 120
Bit.bmiHeader.biWidth = 96
Bit.bmiHeader.biSizeImage = 23040
For k = 0 To 119
    Get #1, 55 + k * 3840 + (j Mod x) * 192 + (j \ x) * 460800, Temp
    For i = 0 To 191
        BTemp(i + k * 192) = Temp(i)
    Next i
Next k
StretchDIBits PerPic.hdc, 0, Bit.bmiHeader.biHeight, Bit.bmiHeader.biWidth, -Bit.bmiHeader.biHeight, 0, Bit.bmiHeader.biHeight, Bit.bmiHeader.biWidth, -Bit.bmiHeader.biHeight, BTemp(0), Bit, 0, vbSrcCopy
PerPic.Refresh

-物品图像
其显示方式是以960*120为一行8个物品的图像,共计17组

每个图像为120*120格式
以960*1这样逐行存放960*120格式数据
结构原理同人物头像部分
以下是偶的初步显示处理
// j=物品图像编号
// x=8
j = 128 - (j \ x) * x + (j Mod x)
Bit.bmiHeader.biHeight = 120
Bit.bmiHeader.biWidth = 120
Bit.bmiHeader.biSizeImage = 28800
For k = 0 To 119
    Get #1, 55 + k * 1920 + (j Mod x) * 240 + (j \ x) * 230400, Temp
    For i = 0 To 239
        BTemp(i + k * 240) = Temp(i)
    Next i
Next k


精华帖
顶部
性别:女-离线 叶落秋寒

英国公主监造使谏议大夫

Rank: 12Rank: 12Rank: 12
组别 翰林学士
级别 后将军
功绩 447
帖子 1572
编号 108
注册 2005-1-29
来自 天界


2、消息文件
Message文件中以许多跳转值来指向相关说明文字信息
-人物列传
1a335h处说明了列传的个数f7,计247个
而这个地址也作为列传部分的跳转基址
每个跳转值占2个字节
从1a337h开始连续247个双字节表示247个人物列传的起始地址的跳转值
人物列传的起始地址=跳转值+1a335h
长度=相邻两组起始地址之差
文字信息字节不足部分以05补足字节
1a335h: f7 00
1a337h: f0 01
首个人物列传地址=1f0h+1a335h

-物品解说
物品这部分包括了物品名和物品解说两部分的跳转值
故而24192h申明了2*136个跳转值
跳转基址24192h
从24194h起第137组跳转值就是首个物品解说地址
原理同上

-魔法、技能、建筑设施、状态解说
分成
魔法名、解说 65*2个
技能名、解说 61*2个
建筑名、解说 54*2个
状态名、解说 20*2个
在26600h申明了398个跳转值
跳转基址26600h
从26602h起
1-65组 魔法名
66-130组 魔法解说
依次类推
原理同上
精华帖
顶部
性别:女-离线 叶落秋寒

英国公主监造使谏议大夫

Rank: 12Rank: 12Rank: 12
组别 翰林学士
级别 后将军
功绩 447
帖子 1572
编号 108
注册 2005-1-29
来自 天界


3、存档文件
60h 年代
63h 月份
69h 玩家控制势力

79h
地域结构
-编号 1字节
-名称 17字节 =名称 + chr(0) + 补足位 chr(32)
-未知 2字节
-未知 2字节
共计31个地域 31*22=682字节

2f9h
人物结构
0  头像编号(等同列传编号)
2  姓名 =姓名 + chr(0) + 补足位 chr(32)
19 种族(见附加说明-1)
20 未知
25 性别
26 地位(见附加说明-2)
27 身份(见附加说明-3)
28 状态(见附加说明-4)
29 等级
30 经验
31 智
33 攻
35 魔攻
37 防
39 魔防
41 敏
43 HP
45 最大HP
47 SP
49 最大SP
51 编号
53 势力
54 城市
55 职业
56 擅长使用的武器(见附加说明-5)
57 武器(见附加说明-6)
58 头(见附加说明-6)
59 胸(见附加说明-6)
60 手(见附加说明-6)
61 三个辅助物品 136=无
64 未知
66 大地图编号(含劳动,部队等具体作用仍未全解) 在城内值为1030
68 未知
72 父母编号
74 未知
78 行动力
79 未知
80 行动(指是否行动过,目前只能指城内,城外仍未知) 取值大于31表示行动已完毕,反之未
81 控制(指是否被精神控制) 未控制 (0-3)*x  控制 (0-3)*x+4 x=从1起的整数值
82 属性(见附加说明-7)
83 未知2字节

共计247*85个字节

780bh
探险地点结构
0  编号
1  名称 =名称 + chr(0) + 补足位 chr(32)
22 横坐标
24 纵坐标
26 未知
28 可进行探险的城市三个 取值0-21为可进行探险的城市代码,取值22为无
31 探险点等级

共计29*32个字节

建筑设施
从7babh至ec12h连续28776个字节表示地图上的修建的设施
而地图上某一点上的设施用这样的结构表示 AA AA BB BB CC CC
AA AA 是横坐标
BB BB 是纵坐标
CC CC 是设施代码
也就是说,一共有4796个可建设点,每一点用6个字节表示
建筑编号见附加说明-8
推测:按22座城等分的话,每个城可有218个点
      大地图LargeMap具有11300个坐标点

17f91h
城市结构
0    编号
1    城市名 =城市名 + chr(0) + 补足位 chr(32)
16   势力编号
17   城等级
18   城耐久
20   资金
22   粮食
24   魔法力
26   战士
28   法师
30   僧侣
32   盗贼
34   粘液菌
36   小恶鬼
38   女首鸟身兽
40   蜥蜴怪
42   骷髅
44   还魂尸
46   活僵尸
48   未知
50   横坐标
52   纵坐标
54   未知
68   在城人物
734  地图上编号
2794 属性 (见附加说明-7)
2795 未知 2字节
目前仅知的方法
在城人物:有333组双字节表示属于此城的现役或受伤人员
当在存档中改变一个人物的势力和城市归属之后,还应去除原城市在城人物中的编号,置为333并将其后非333的数据前移,在新归属城市中加入,方能正确调动人物。(可参考下面那个例子)
地图上编号:
有1030组双字节表示
这个是与人物结构中的大地图编号对应的
例:某人的大地图编号为300,属于Y城,那么Y城的地图上编号数据段中有一个数据就等于300
如果要将其改至城内的状态的话,则将Y城的地图上编号数据段中等于300的值置为1030并将其后非1030的数据前移,再将人物结构中的大地图编号置为1030。
改动前:2a 01 2b 01 2c 01 2d 01 2e 01 06 04 06 04
改动后:2a 01 2b 01 2d 01 2e 01 06 04 06 04 06 04

共计2797*22个字节

26fefh
势力结构
0   编号
1   名 =势力名 + chr(0) + 补足位 chr(32)
22  君主编号
24  摄政编号
26  未知
48  国库物品
184 势力所辖城市代码
206 未知 261个字节

共计 467*9个字节
精华帖
顶部
性别:女-离线 叶落秋寒

英国公主监造使谏议大夫

Rank: 12Rank: 12Rank: 12
组别 翰林学士
级别 后将军
功绩 447
帖子 1572
编号 108
注册 2005-1-29
来自 天界


4、剧本文件
0h
剧本结构
0   时间
2   剧本标题 =剧本标题 + chr(0) + 补足位 chr(32)
19  剧本简介 500字节 =剧本简介 + chr(0) + 补足位 chr(32)

207h
地域结构
-编号 1字节
-名称 17字节 =名称 + chr(0) + 补足位 chr(32)
-未知 2字节
-未知 1字节
共计31个地域 31*21个字节

492h
势力结构
0  编号
1  名 =势力名 + chr(0) + 补足位 chr(32)
22 君主编号
24 摄政编号或者说是指光明剧本中暂代执行官编号 有:人物编号 无:257
26 未知
44 国家物品仓库 136个字节
王国的剧本,有其特殊性,剧本一黑暗剧本,一共有9个势力,剧本二光明剧本,只有6个势力
可选势力不属于剧本内容
因此势力以后的数据地址都以势力个数为准
=492h + 势力个数 * 180个字节

492h+势力个数*180+1
城市结构
0    编号
1    城市名 =城市名 + chr(0) + 补足位 chr(32)
16   势力编号
17   城等级
18   城耐久
20   资金
22   粮食
24   魔法力
26   战士
28   法师
30   僧侣
32   盗贼
34   粘液菌
36   小恶鬼
38   女首鸟身兽
40   蜥蜴怪
42   骷髅
44   还魂尸
46   活僵尸
48   未知
50   横坐标
52   纵坐标
54   未知
57   属性 1字节 (见附加说明-7)

推测:
最大可显示的横坐标(95H) 149
最大可显示的纵坐标(E0H) 224

共计 58*22 个字节

492h+势力个数*180+58*22+1
物品结构
0  名 =物品名 + chr(0) + 补足位 chr(32)
23 物品图片编号 见附加说明-6
24 类型 见附加说明-6
25 攻
26 防
27 魔攻
28 魔防
29 魔法 取值为0-64表示相应魔法,65=无
30 属性 见附加说明-7
31 价值 2字节

共计 33*136 个字节

492h+势力个数*180+58*22+33*136+1
兵种结构
0  名 =兵种名 + chr(0) + 补足位 chr(32)
13 编号
14 攻
15 魔力
16 防
17 魔防
18 编组费用
19 移动力
20 未知 1字节

共计 21*11 个字节

492h+势力个数*180+58*22+33*136+21*11+1
人物结构
0  头像编号(等同列传编号)
2  姓名 =姓名 + chr(0) + 补足位 chr(32)
19 种族(见附加说明-1)
20 未知
25 性别
26 地位(见附加说明-2)
27 身份(见附加说明-3)
28 状态(见附加说明-4)
29 等级
30 经验
31 智
33 攻
35 魔攻
37 防
39 魔防
41 敏
43 HP
45 最大HP
47 SP
49 最大SP
51 编号
53 势力
54 城市
55 职业
56 擅长使用的武器(见附加说明-5)
57 武器(见附加说明-6)
58 头(见附加说明-6)
59 胸(见附加说明-6)
60 手(见附加说明-6)
61 三个辅助物品 136=无
64 未知
66 父母编号
68 未知
72 行动力
73 未知
74 行动(指是否行动过,目前只能指城内,城外仍未知) 取值大于31表示行动已完毕,反之未
75 控制(指是否被精神控制) 未控制 (0-3)*x  控制 (0-3)*x+4 x=从1起的整数值
76 属性(见附加说明-7)
77 未知3字节

共计 80*247 个字节

492h+势力个数*180+5995+80*247+1
探险地点结构
0  编号
1  名称 =名称 + chr(0) + 补足位 chr(32)
22 横坐标
24 纵坐标
26 未知
28 可进行探险的城市三个 取值0-21为可进行探险的城市代码,取值22为无
31 探险点等级

共计 32*29 个字节

492h+势力个数*180+25755+32*29+1
魔法技能结构
魔法65个,技能60个
0  名(21)
21 施展对象 0敌方,1本方,2自身
22 类型 魔法和技能在类型取值上有所不同,初步推测魔法可能与范围等有关,技能则与所对应的武器类型有关 取值17似为特殊技能,可以有多种特定类型可使用
23 未知
24 SP消耗值
26 属性 (见附加说明-7)
27 职业习得等级 (62)

共计 89*125 个字节

492h+势力个数*180+37808+1
职业结构
0  名  =职业名称 + chr(0) + 补足位 chr(32)
21 类型  推测与所使用的兵种有关
22 属性(见附加说明-7)

共计 23*62 个字节
精华帖
顶部
性别:女-离线 叶落秋寒

英国公主监造使谏议大夫

Rank: 12Rank: 12Rank: 12
组别 翰林学士
级别 后将军
功绩 447
帖子 1572
编号 108
注册 2005-1-29
来自 天界


见附加说明-1
种族
人类
精灵
矮人
黑暗精灵
黑暗狂魔
半精灵
怪物
巨龙
魔王
邪神

见附加说明-2
地位
国王/女王
摄政
骑士团长
大神官
骑士
神官
女巫
评议长
雇佣兵队长
佣兵
评议员
大神官
长老
四贤者
贤者
族长
氏族长


见附加说明-3
身份

女王
王子
公主
皇族
贵族
平民
魔族
怪物
巨龙

见附加说明-4
状态
死亡
假死
现役
未成年
流浪
俘虏
受伤
待命
幽禁

见附加说明-5
擅长使用的武器

短剑






空手

见附加说明-6
物品 代码(Hex)
剑   0-7
短剑 8-0F
刀   10-17
枪   18-1F
斧   20-27
弓   28-2F
锤   30-37
杖   38-3F
盔   40-47
环   48-4F
甲   50-57
胸   58-5F
盾   60-67
镯   68-6F

见附加说明-7
属性  取值
无    0
地    1
水    2
火    4
风    8
光    16
圣    32
暗    64
邪    128
地圣  33
地邪  129
水圣  34
水邪  130
火圣  36
火邪  132
风圣  40
风邪  136
光圣  48
暗邪  192

见附加说明-8
建筑编号
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 空地
精华帖
顶部
性别:男-离线 巴巴罗萨
(芭芭萝莉)

Rank: 4
组别 士兵
级别 偏将军
功绩 4
帖子 362
编号 323
注册 2003-9-3
来自 斯谬恩大陆


师傅您写的太好了
精华帖
顶部
性别:男-离线 吕布貂蝉
(中狼政治局常委)

谯郡公谏议大夫

Rank: 20Rank: 20
柱国(正二品)
组别 翰林学士
级别 大将军
好贴 6
功绩 838
帖子 11567
编号 435
注册 2003-9-5
家族 轩辕狼党


发表于 2005-10-20 21:20 资料 文集 短消息 只看该作者 QQ
啥  师傅??
精华帖
顶部
性别:男-离线 春秋遗民

Rank: 1
组别 百姓
级别 在野武将
功绩 0
帖子 27
编号 52572
注册 2005-11-6


发表于 2005-11-6 09:42 资料 短消息 只看该作者
太棒了,我不懂程序,真是对你佩服得五体投地阿!!
精华帖
顶部

正在浏览此帖的会员 - 共 1 人在线




当前时区 GMT+8, 现在时间是 2025-2-5 23:03
京ICP备2023018092号 轩辕春秋 2003-2023 www.xycq.org.cn

Powered by Discuz! 5.0.0 2001-2006 Comsenz Inc.
Processed in 0.015587 second(s), 10 queries , Gzip enabled

清除 Cookies - 联系我们 - 轩辕春秋 - Archiver - WAP