决战(NEO)游戏素材文件修改研究(*.spl格式文件修改图片内容)
&&(原创:转载请注明出处,谢谢,若有侵犯版权问题,请联系作者进行删除。QQ:)&
&前一段时间,网上有为朋友让我帮忙研究研究决战(NEO)游戏素材文件(.spl后缀文件),其目的是为了能够方便修改游戏的图标、怪物的外观等,便于其进行决战私服的开放。经过一段的研究,小有成效,先进行一些研究整理,便于学习。
在我研究之前,网上朋友给我一个工具(Game Sprite
2004),可以查看素材文件,以及导出素材文件的图片,但是不能对资源文件进行修改。我使用该工具将一个spl文件出图图片后,发现生成的是一组BMP格式的文件,打开BMP文件,发现其使用的是BM
16位高彩色格式的位图。如图:
到这里,我们可以发现.spl文件只是把多个bmp文件打包成一个文件,同时去除了bmp文件的头部等信息,按照自己的格式来定义生成。下面我们直接用HEX格式打开.spl,查找他是如何定义的。
前面的字串 “SPLALSP Sprite | Sprite -”应该是文件的固定头,224 和 0x
是相等的,很可能是包含图片的个数,通过验证,我们会发现spl文件主要有3种固定头,分别是“SPLALSP Sprite |
Sprite -”、“SPLNLSP Sprite | Sprite -”、“SPL8LSP Sprite | Sprite
-”.后面紧接着的确实是包含图片的个数!这3种格式的文件中,前面两种文件的格式是一样的,“SPL8LSP Sprite |
Sprite -”格式有所不同,经过我的研究发现,大致的SPLALSP 格式文件是这样的:
char chHead[144];& // 文件头部&
SPLALSP Sprite | Sprite - + 包含图片个数
int nC& // 图片个数
char chUnknow2[24*nCount]; // 未知内容,均为零
IndexData picIndex[nCount]; // 图片信息头部数据数据
PicData picData[nCount]; // 每个图片被压缩后的数据
“SPL8LSP Sprite | Sprite -”的格式与这个类似,可以自己去研究。
所以 我们只要按照根据原图与图片的信息,分析他的压缩方法,然后进行展示,实现替换的功能就可以了。
下面是我用MFC 单文档
对spl文件的展示、导出、修改图片、修改图片位置的实现,实现的难点主要在于对视图绘制部分的计算。起初我想用一个非常大的内存DC,一次性绘制,之后根据滚动的位置进行BITBLT就可以了,后来发现当包含图片太多是,一个内存DC根本不够,有时还会创建DC失败,所以就时时根据滚动条位置,对图片进行分页绘制,效率也是相当的不错。下面是我程序的一个展示:(程序支持以上三种.SPL文件的浏览、导出、修改替换图片、修改图片的中心点位置等功能)
1. 程序开启界面:(可以通过左侧目录选择spl文件,也可以通过菜单直接打开spl文件)
2. 打开文件后的界面:
3. 更换图片:(双击要更换的图标或右击对应的图标进行选择准备好的bmp图片)
4. 修改图片中心位置:(右击图标,选择坐标修改菜单进行修改,修改坐标后,仍然需要保存文件)
&预览版本下载地址:
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。谁知道决战私服怎么架设啊
最新最全的决战私服网站&&&&
10-08-22 &
其他引起肥胖的原因详情请见&纤纤减肥胶囊&/&1、体质性肥胖。原因:先天性。体内物质代谢较慢,物质合成的速度大于***的速度。现象:脂肪细胞大而多,遍布全身。& 2、获得性肥胖。原因:由饮食过量引起。食物中甜食,油腻食物多,脂肪多分布于躯干。现象:&脂肪细胞大,但数量不增多。&
请登录后再发表评论!