📄 文件格式.txt
字号:
adrn_9.bin 图片地址文件
这个文件有若干个大小一样的块组成,
每个块长度80为字节,格式如下:
{
long 序号;
long 地址; 指明图片在数据文件中的起始位置
long 块长度; 图片数据块的大小
long 偏移量X; 显示图片时,横坐标偏移X
long 偏移量Y; 显示图片时,纵坐标偏移Y
long 图片宽度;
long 图片高度;
char 占地面积-东; 占地面积可能是用于画地图的时候计算物品的层次的,可以不管它,
char 占地面积-南; 1就表示占1格
char 标志; 用于地图,0表示障碍物,1表示可以走上去
char 未知[45];
long 地图编号; 在地图文件里的代号
}
魔力的GraphicInfo.bin每个块长度是40字节。 char 未知[5];
其中偏移量XY是用于图片定位的,比如X=-18,Y=-19,如果将图片显示在(100,100),那么实际
位置应该是(82,81),这样才可以和其它图片协调,在做人物动作gif的时候必须用这个参数来调整
每一帧的位置,否则动作是抖动的。
real_9.bin 图片数据文件
这个文件包含了所有图片的原始数据,每个数据块由数据头+数据组成,
每个数据头长度16字节,格式为:
{
char 标志[2]; 固定为"RD"
short 未知;
long 宽度;
long 高度;
long 块长度;
}
后三项和地址文件中的一样,块长度包括了数据头的大小。
在数据头后面紧跟图像数据。
例如,要解开第10000个图片,首先在adrn_2.bin里定位到第10000条记录,根据地址在real_2.bin中
找到对应的数据块,就可以读出图片数据了。
spradrn_1.bin 角色动作地址文件
每个数据块大小12字节
{
long 序号;
long 地址; 指明在造型文件中的地址
short 动作数目; 该角色的动作数,包括各个方向的
short 未知;
}
spr_1.bin 角色动作数据文件
该文件存放了全部动作的图片序列,每个动作由数据头+若干序列号组成,
数据头长度12字节。
{
char 未知[8];
long 帧数;
}
有多少帧,后面就跟有多少个序列号,
每个序列号长10字节,
{
long 图片号;
char 未知[6];
}
图片号就是该帧所用的图片序号。
例如要解出340号角色的第20个动作,先在spradrn_1.bin中找到序号为340的数据块,读出地址和动作数,
然后根据地址在spr_1.bin中定位到对应的数据块,现在的位置是在第0个动作上,一次读到第20个去,
(每个动作的大小都由帧数决定)根据帧数读出每一帧的图片号,通过图片号解出对应的图片就行了。
其中未知的字段表示我还不知道用处的。
根据这些解出的图片数据不是位图格式,是用Run-Length算法压缩之后的数据,这类算法很简单,
我将几个标志字节说明一下:
标志
一字节 二字节 三字节 四字节
0n String 长度为n的字符串(n<=0xF)
1n m String 长度为n*0x100+m的字符串
2x y z String 长度为x*0x10000+y*0x100+z的字符串
8n X 填充n个X(n<=0xF)
9n X m 填充n*0x100+m个X
Ax X y z 填充x*0x10000+y*0x100+z个X
Cn 填充n个背景色(n<=0xF)
Dn m 填充n*0x100+m个背景色
Ex y z 填充x*0x10000+y*0x100+z个背景色
比如,C9表示填充9个背景色,D1 10表示填充0x110个背景色,12 50表示后面跟着一个长度为0x250的字符串,
91 02 30则表示将0x02重复0x130遍。
以上文件格式在2.0也一样,不过文件名有变化,作相应修改就行了
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -