游戏开发论坛

 找回密码
 立即注册
搜索
查看: 3946|回复: 3

“目标”软件 之游戏图片格式 xbm 和 资源库文件 之二

[复制链接]

17

主题

201

帖子

242

积分

中级会员

Rank: 3Rank: 3

积分
242
QQ
发表于 2004-5-11 13:41:00 | 显示全部楼层 |阅读模式
   如果你要转载我的帖子,请著名( "作者:叶风(windlucid) qq:239302992")

剑侠系列图片相关贴子。

       第一篇:关于金山公司的剑侠情缘系列游戏的图片格式 之一

       第二篇:关于金山公司的剑侠情缘系列游戏的图片格式 之二
   
       第三篇:关于金山公司的剑侠情缘系列游戏的图片格式 之三
      
新贴:[em3]  [em3]  [em3]
       第一篇:“目标”软件 之游戏图片格式 xbm 和 资源库文件

       第二篇:“目标”软件 之游戏图片格式 xbm 和 资源库文件 之二

全代码:
      
       声明: 本文的程序经过调试,成功运行。
           我不会对本程序所带来的一切后果负责。
           感谢目标公司的美工(图片太美了)
           本文没有任何商业行为,纯属自娱自乐
     

            

       有人问我,为什么老是研究图片格式。
     我说:
         1。我没有美工,我只有自己,我不会画画。但是,我要精美的图片。
         2。我没有人询问,想知道成功游戏中的图片粘贴方法,地图的建立方法。。。所有游戏中不公开的方法,只有研究游戏运行时的内存。
         3。我自己写的引擎,太长,我也没办法抄到这里。只有发一点哗众取宠的贴子,来吸引你们的眼球。
         4。我还没想到,想到了,一定说。(好苦啊)

文件一:
   文件名:  xbmdefine.h
    内容简介:头文件,定义结构,声明函数。
   文件内容:
   /////
#ifndef         _xbm_h_
#define        _xbm_h_

//破解目标公司的xbm图片格式
//原理:内存破解,使用‘火眼金睛’
//图片头格式: xbmfileheader
//                   flags
//                   width
//                   height
//                   0x10100100
//                   0xf81f(mask)
//... ...
//接下来是每一行的偏移
//            每个偏移使用一个integer表示
//            偏移的数据就是根据 行偏移地址的首地址开始。
//            也就是相对于xbm头结构之后开始
//接下来是图片的具体内容
//            如果开始的一个短整数是
//            0: 表示之后的一个数是一串 非透明色 点的物理空间尺寸(使用字节计数)
//            非0:表示这个数就是 一串 透明色 点的物理空间尺寸

//
typedef  struct  tagXBMFILEHEADER
{
        char           flags[16];
        int              normal0;
        int              width;
        int              height;
        int              normal1;        //0x10100100
        int              mask;            //0xf81f
}XBMFILEHEADER,*LPXBMFILEHEADER;
//将xbm图片转换后保存为通用的*.bmp格式的图片文件
int    savexbm(char *fname);
//将xbm图片转换为16位的(bmp)图片
int    xbm216bmp(LPXBMFILEHEADER lpxbm,
                           char *xbmdata,char *bmp16);
//将16位的(bmp)图片转换为24位的(bmp)图片
int    bmp16to24(LPXBMFILEHEADER lpxbm,
                            char *bmp16,char *bmp24);
//将24位的(bmp)图片保存为通用的*.bmp格式的图片文件
int    save24bmp(LPXBMFILEHEADER lpxbm,
                          const char *fname,char *bmp24);


//破解目标 打包文件 *.lib
//总之太简单
//结构如下:
//    标记           Lib 1.01
//    子文件数量     xxx
//    这个东西共256字节(一堆子“0”!!!目标就是这样?!)
//    子文件的数据偏移(相对于文件头) : 子文件的数据长度(相对于自己的头 (; )
//    ... ...
//    子文件数据(奇怪的就在这里,竟然没有压缩!太好了?太不可思议了?)
//    我们要得只是xbm图片文件
//    子文件信息
//

typedef    struct   tagSubFileInfo
{
        int    address;
        int    length;
}SubFileInfo,*LPSUbFileInfo;

//解析目标的 lib 文件,将其中的 xbm 文件提取并且存储为bmp图片文件
int     JieLib(const char *fname,const char *objectpath,
                 const char *objectname);
//将xbm图片转换后保存为通用的bmp 格式的图片文件
int     savelibxbm(const char *fname,char *xbmdata,
                           char *bmp16,char *bmp24);



#endif//_xbm_h_



好了,罗嗦到这里了.
   有空再续.
                                                                           作者  : 叶风 (WindLucid)
                                                                           qq    : 239302992
                                                                           email: windlucid@126.com

16

主题

158

帖子

168

积分

注册会员

Rank: 2

积分
168
发表于 2004-5-11 15:44:00 | 显示全部楼层

Re:“目标”软件 之游戏图片格式 xbm 和 资源库文件 之二

把做好的exe发上来吧,大家都等不及了,哈哈!

25

主题

179

帖子

179

积分

注册会员

Rank: 2

积分
179
发表于 2004-5-12 09:56:00 | 显示全部楼层

Re:“目标”软件 之游戏图片格式 xbm 和 资源库文件 之二

我也等不急了!!!

1

主题

3

帖子

0

积分

新手上路

Rank: 1

积分
0
发表于 2011-1-28 10:16:00 | 显示全部楼层

Re:“目标”软件 之游戏图片格式 xbm 和 资源库文件 之二

哪儿呢!???!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-6-4 22:55

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表