第一讲: 韩国3.0传奇wil文件说明 Animationsc.wil 游戏里一些动画的图片(灯台、晾的衣服、椰子树等) |
全部评论3
-
fair 2006-12-7 22:08:00
第三讲:关于界面中文I/O问题的解决 //韩文
//HFONT CreateGameFont(LPCSTR szFontName, INT nHeight, INT nWidth = 0, INT nWeight = FW_NORMAL, BOOL bItalic = FALSE, BOOL bULine = FALSE, BOOL bStrikeOut = FALSE, DWORD dwCharSet = HANGEUL_CHARSET);//中文
HFONT CreateGameFont(LPCSTR szFontName, INT nHeight, INT nWidth = 0, INT nWeight = FW_NORMAL, BOOL bItalic = FALSE, BOOL bULine = FALSE, BOOL bStrikeOut = FALSE, DWORD dwCharSet = GB2312_CHARSET); -
fair 2006-12-7 22:08:00
第四讲:mir3 的wil文件格式破译 下面是 Interface1c.wil 文件的16进制码,该文件14959571字节。
0100494C49422076312E302D57454D414445000000008813D007000077572AC08002E001E8FFF0FF30E8FF6800C6500400000000005400C0008A01C1004E00010020006110E3204431453165316639A641C749C751C75186416539653944310321E320E320C220A218C318A2188210811082108210410820006110A21882106110611061106110611061106110611061106108410841084108410841084108410841082108400841084108610861104108200840084108610861084108200001002000200020002000200020002000200020006108C310C3102100C000A8005600C0008901C1005000010020004108A218C218C2180321453166398641A64186418641A749A749863965394531242924292429E320C320A318C318A2188110821082106110200041088218A21881106110611061106110611061106108610841.....
文件结构源代码为:
#pragma pack(1)
typedef struct tagWILFILEHEADER
{
CHAR szTmp[40];
INT nImageCount;
}WILFILEHEADER, *LPWILFILEHEADER;typedef struct tagWILFILEIMAGEINFO
{
SHORT shWidth;
SHORT shHeight;
SHORT shPX;
SHORT shPY;
DWORD dwImageLength;
}WILIMAGEINFO, *LPWILIMAGEINFO;typedef struct tagWIXFILEIMAGEINFO
{
CHAR szTmp[40];
INT nIndexCount;
INT* pnPosition;
}WIXIMAGEINFO, *LPWIXIMAGEINFO;
typedef struct tagNEWWILFILEHEADER
{
SHORT shComp;
CHAR szTitle[20];
SHORT shVer;
INT nImageCount;
}NEWWILFILEHEADER, *LPNEWWILFILEHEADER;typedef struct tagNEWWILFILEIMAGEINFO
{
SHORT shWidth;
SHORT shHeight;
SHORT shPX;
SHORT shPY;
CHAR bShadow;
SHORT shShadowPX;
SHORT shShadowPY;
DWORD dwImageLength;
}NEWWILIMAGEINFO, *LPNEWWILIMAGEINFO;
typedef struct tagNEWWIXFILEIMAGEINFO
{
CHAR szTitle[20];
INT nIndexCount;
INT* pnPosition;
}NEWWIXIMAGEINFO, *LPNEWWIXIMAGEINFO;注意#pragma pack(1)是为了确保存储结构与逻辑结构有同样的布局,这样我们才可以确信文件映像里的字节顺序与我们的设计相符合。
有了上面的数据,数据结构和说明,应该很容易从上面的16制码中计算出Interface1c.wil 文件的长度正好是14959571字节,从而验证了网上流传 的mir2ex的源码正是光通现在运行的mir3的源码的稍早版本,c/c++版本的服务端也正是原传奇2的服务端,里面包含有大量的传奇早期版本的对照代码。
类似方法可以分析出map wix 文件的结构。全都是吻合的。
本人经过整整两个半月的日夜奋斗,现已经完成调试和改造,客户端可兼容盛大传奇与光通传奇,运行稳定流畅。
你可能喜欢
请看韩国源代码:
m_pxInterImg->NewLoad(".\\Data\\gameinter.wil");
m_xInterImgEx.NewLoad(".\\Data\\interfacec2.wil");
显然是在加载了gameinter.wil之后再加载interfacec2.wil,不可以简单替换掉!