3DMGAME 3DM首页 新闻中心 前瞻 | 评测 游戏库 热门 | 最新 攻略中心 攻略 | 秘籍 下载中心 游戏 | 汉化 购买正版 论坛

注册 登录

QQ登录

只需一步,快速开始

查看: 7082|回复: 10
打印 上一主题 下一主题

关于杀手3契约卡机及游戏中部分变回英文的说明

 关闭 [复制链接]

1

主题

180

帖子

4795

积分

工作室

Rank: 12Rank: 12Rank: 12

贡献度
1054
金元
4788
积分
4795
精华
10
注册时间
2007-12-1
跳转到指定楼层
主题
发表于 2008-2-2 23:44 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
昨晚制作了杀手3契约中文版的MCD补丁 之后在众网友的反馈问题中 卡屏和游戏中部分变回英文的问题比较普遍

看了很多热情网友的介绍回答 在此 我贴出一些我的研究成果 希望大家能够明白

关于游戏的卡屏一说是由于集成声卡的硬件加速问题 另一说是由于生成erro文件的原因 所以我对于此进行了专门的跟踪和分析

先来解答几个问题

1 为什么游戏安装完后覆盖MCD补丁后 双击没有反应

请先察看你游戏的安装方法 在网上下载来的RAR并不是游戏镜像 要分别截压 之后用UltraISO制作成光盘ISO镜像 用虚拟光驱载入安装游戏 (中途会提示换盘)

2 为什么我进入游戏是英文版的

在游戏安装完成后 还需下载 http://download.chnren.com/SoftView.asp?SoftID=4313 中文化补丁 这个是网上流传的MCD其实只是一些外挂汉化的必须文件 对MCD一点帮助没有 把它解压并覆盖到原目录 这样游戏进入就是中文的了

说明一下原理 这个游戏应该属于是外挂汉化 从网上下载的游戏只是英文原版+中文外挂执行文件 而网上流传的中文版MCD没有一个exe 所以只是一个外挂中文化的资源补丁 并不能免CD

而我昨晚制作的那个中文版MCD  http://3dmgame.chnren.com/bbs/showtopic-421735.html 才是真正跳过光驱检测的执行文件

从网上下载的中文版游戏再不打任何补丁的情况下 将HitmanContracts.dat文件改名为HitmanContracts.exe就可以进入游戏 只不过是英文版 所以这个HitmanContracts.dat文件改名为HitmanContracts.exe后 其实就是英文版MCD 所以可以汉化 是因为作者的那个中文版启动exe的作用 应该属于是外挂汉化……

3 为什么游戏会变卡而且出现部分英文?

我把他们放在一起说 因为我猜测这两个问题的发生是相关联的 卡屏后出现部分英文……
如果和我猜测得没错 那应该是生成erro文件的原因 这个文件是一个外挂汉化程序的错误记录文件 打开文件可以看到其纪录的内容为

xxxxxx位于xxxxx.cpp文件的xxxx行

所以在游戏过程中 由于出现问题 所以大量的错误被记录 耗用系统资源 导致卡屏 因为出现了错误 所以有一部分的汉化就是失效了……出现了部分英文问题 希望我的猜测斯正确的


最后在附上一点点地研究成果


  00401450  /$  55            push    ebp
  00401451  |.  8BEC          mov     ebp, esp
  00401453  |.  6A FF         push    -1
  00401455  |.  68 90984000   push    00409890                         ;  SE 处理程序安装
  0040145A  |.  64:A1 0000000>mov     eax, dword ptr fs:[0]
  00401460  |.  50            push    eax
  00401461  |.  64:8925 00000>mov     dword ptr fs:[0], esp
  00401468  |.  51            push    ecx
  00401469  |.  B8 6C120000   mov     eax, 126C
  0040146E  |.  E8 6D0F0000   call    004023E0
  00401473  |.  53            push    ebx
  00401474  |.  56            push    esi
  00401475  |.  8B75 08       mov     esi, dword ptr [ebp+8]
  00401478  |.  57            push    edi
  00401479  |.  8965 F0       mov     dword ptr [ebp-10], esp
  0040147C  |.  68 00040000   push    400                              ; /Count = 400 (1024.)
  00401481  |.  68 E8CC4000   push    0040CCE8                         ; |Buffer = 1_.0040CCE8
  00401486  |.  33C0          xor     eax, eax                         ; |
  00401488  |.  C785 88FEFFFF>mov     dword ptr [ebp-178], 44          ; |
  00401492  |.  B9 10000000   mov     ecx, 10                          ; |
  00401497  |.  8DBD 8CFEFFFF lea     edi, dword ptr [ebp-174]         ; |
  0040149D  |.  6A 65         push    65                               ; |RsrcID = STRING "发生一个严重错误,当前进程将被退出!
请在 <Free_Data> 子目录中找出错误信息文件:LG_Try_Error.log
发至信箱:FreeLocal@163.com"
  0040149F  |.  F3:AB         rep     stos dword ptr es:[edi]          ; |
  004014A1  |.  8B3D 40314200 mov     edi, dword ptr [<&user32.LoadStr>; |USER32.LoadStringA
  004014A7  |.  33DB          xor     ebx, ebx                         ; |
  004014A9  |.  56            push    esi                              ; |hInst
  004014AA  |.  895D FC       mov     dword ptr [ebp-4], ebx           ; |


这是程序在调试过程中某段的代码 MS是一个错误反馈 而反馈的文件正是我们的LG_Try_Error.log


对于希望继续研究的网友 我仅能提供这一点点线索……



至于问题的解决方法 我想只有原作者可以搞定 因为那些xxxxxx.cpp的VC++源文件应该只有他自己手上有

有兴趣的玩家可以根据线索发邮件到 FreeLocal@163.com 询问。


读于昨晚发布的MCD补丁 只是跳过了程序对光驱校验的部分 并无其他改动……
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|3DMGAME ( 京ICP备14006952号-1  沪公网安备 31011202006753号

GMT+8, 2026-5-20 21:06 , Processed in 0.026474 second(s), 16 queries , Memcached On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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