标题: 我准备制作一款地雷传MOD,请指教!!!
性别:未知-离线 momo2255

Rank: 1
组别 百姓
级别 在野武将
功绩 0
帖子 3
编号 420775
注册 2011-4-11


发表于 2011-4-11 18:10 资料 短消息 只看该作者
我准备制作一款地雷传MOD,请指教!!!

上个月,玩金山老游戏地雷战,突然奇想做个MOD。
于是,我开始动手了。
首先,我的目标是人物对话,打开地雷战目录,发现一个TXT.dat文件,怀疑是地雷战对话文件。用WINHEX打开,发现全是乱码,相信是经过加密,于是随意修改一个话,启动游戏,发现游戏主角死亡时对话信息出现一段乱码。
于是启动OD,用二进制搜索TXT乱码,查到地址后,下硬件断点。再进游戏,出现对话事件后,OD中断,看到把TXT文件中的乱码一个字节送入CL,然后xor cl,51.
不错,XOR 51应该是解密关键,于是回到WINHEX,打开TXT.dat,用编辑,修改数据,XOR 51,确定。果然,出现游戏人物对话。
游戏文件夹下MAP.dat,接照字面上猜,不是地图图块就是地图图块像素。WINHEX打开MAP.dat找到dlz-11.blk,把后面全是十六进制数据全改为0,再进入游戏,发现第一关地图地图全是空地.
修改成功,确定了MAP.dat是游戏地图图块文件。
还原MAP.dat未修改前数据,启动OD,加载地雷战,F9启动。进入第一关桃花岭,搜索MAP中第关地图图块数据,找到地址584390,随意选定一块区域,填充0。果然,游戏地图改动。在数据窗口把584390加入标签,标签名为地图图块。
接下来,我们就可以找所有地图图块代码,584390地址中两个字节表示一个地图一个地形图块,一个一个手动填写,太麻烦了。启动VC吧,HWND hwnd=::FindWindow(NULL,"dlz");
        DWORD id;
        ::GetWindowThreadProcessId(hwnd,&id);
        HANDLE handle=::OpenProcess(PROCESS_VM_WRITE|PROCESS_VM_OPERATION,FALSE,id);
WCHAR buf[1000];
        for(int i=0;i<1000;i++)
                buf=(wchar)i;
        bool b=WriteProcessMemory(handle,(LPVOID)(0x584390),&buf,2000,NULL);
如果代码把地图内存图块全部找出,加到游戏果然屏幕全是不同地图图块。
嗯,全是图块代码也到手了,以后可以用这些代码写地图编辑器。
等会接着播报调色板、脚本剧情,DX中DDRAW破解,找出游戏消息,重载游戏、在游戏是载入LUA引擎等等等等


顶部
性别:未知-离线 momo2255

Rank: 1
组别 百姓
级别 在野武将
功绩 0
帖子 3
编号 420775
注册 2011-4-11


发表于 2011-4-11 18:13 资料 短消息 只看该作者
有感兴趣的人吗?
如果有,我接着播放。


顶部
性别:未知-离线 lxking2856

Rank: 1
组别 百姓
级别 在野武将
功绩 0
帖子 4
编号 326065
注册 2009-6-6


发表于 2011-4-26 11:24 资料 短消息 只看该作者
有不过这样太慢了!何时才能出地雷传?
顶部
性别:未知-离线 huyong

Rank: 1
组别 百姓
级别 在野武将
功绩 0
帖子 3
编号 278174
注册 2008-5-12


发表于 2011-8-28 12:15 资料 短消息 只看该作者
希望能早日玩上这游戏,支持一个
顶部

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




当前时区 GMT+8, 现在时间是 2025-3-11 09:44
京ICP备2023018092号 轩辕春秋 2003-2023 www.xycq.org.cn

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

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