生活情怀-神话暗黑-暗黑破坏神2

 找回密码
 立即注册

QQ登录

只需一步,快速开始

img_loading
智能检测中
暗黑mod发布网
帖子
逗破暗黑Mod群:67994934逗破暗黑Mod客户端及补丁逗破暗黑Mod新手攻略逗破暗黑Mod赞助菜单
神话怀旧MOD群:67994934神话怀旧Mod客户端及补丁神话怀旧Mod新手攻略神话怀旧Mod赞助菜单
圣者归来Mod群:558972013圣者归来Mod客户端及补丁圣者归来Mod新手攻略圣者归来Mod赞助菜单
查看: 2813|回复: 0
收起左侧

[修改攻略] 关于提示错误类通知 (Location : , line #xxxx) 的简单处理方法

[复制链接]

361

回帖

830

元宝

1

圣者绑元

管理员

Rank: 9Rank: 9Rank: 9

积分
1
发表于 2020-1-13 07:05:57 | 显示全部楼层 |阅读模式
原创作者:等风来
, o9 n1 N3 c: \$ e" h6 b7 `7 n发布日期:2016-08-18
( y/ f2 h6 Z0 \1 w  @/ f# _& j6 H; c) R/ `! v+ }  p. K( R7 f% P
0 ~6 W; p) r. \7 e+ N
Halt
) R8 a, x, D' ?9 wLocation : , line #xxxx
$ v6 B3 D: I% [7 ^# u& `5 _6 N2 LExpression : Unrecoverable internal error xxxxxxxx. c: e) m3 L9 n7 w

" {/ B8 r/ F; F2 r+ F9 `% f5 f2 M9 }
+ }3 }$ Z0 Z/ \8 d这是一种常见提示错误的通知,也是比较不好处理的一种错误。最近有不少新人遇到不知道该怎么办,我简单写一些自己的处理方法。
7 v" Q8 u: @3 C% @- L7 D4 o) s/ G# [5 h) `/ Z
1. 判断是什么原因导致的,回想一下自己最后修改过什么,有习惯修改前备份的同学可以尝试还原一下。
; ~) R. w! K! u4 q/ G' W# M: P+ f; v. Q0 W' N2 Y
2. 将错误提示截图,发到BBS上问一下或上其他网站查询解决方法。
. G2 P+ `; q( _+ L" O: t3 ^7 j' U
6 k3 k. t7 n" \7 v  d* U3. 全屏模式有可能不会出现错误提示,这个时候改为窗口模式试一下(启动参数为:-w),个人建议尽量使用窗口模式进行游戏。3 D! X6 ^8 V4 u5 t: B

+ `+ f9 {7 i$ l0 `" e4. 如果是游戏进行中的崩溃,回想一下当时自己在做什么,基本可以判断是什么导致的游戏崩溃,以及怎么去避免这种情况的发生,有个最经典的例子就是AMA拿敲石头的锤子进入游戏出现的错误,这就是D2游戏文件中D2CHAR.MPQ文件损坏, AMRHWHMSC1HS.dcc文件缺失导致的。
% A  i0 v9 f2 O  k9 g- @9 ^
7 G2 _6 a5 a1 f5 V1 D5. 如果提示为Access Violation,这个需要查询D2的游戏记录文件,这个文件的名字是D2xxxxxx.txt,后面的xxxxxx是6位数字,命名的规则为年月日(yymmdd),将记录中有关Error的部分复制下来,发到BBS上问一下或上其他网站查询解决方法。7 G! i/ D, m2 h+ q( F$ u

. A. J1 e, w' [7 e% N- h2 q6. 错误提示line #xxxx 中的数字,通过修改DLL基址可以将Error提示中的xxxx重新定义方便查询。个人建议出错后,备份一下Storm.dll,然后用我上传的Storm.dll覆盖一下,然后重进游戏生成错误提示line #xxxx 后再还原,将新的line #xxxx 发到BBS上问一下或上其他网站查询解决方法。

5 V# K- _& g5 P9 ~* L! o, j# J6 x% h
" Q" B, d" Z) B$ X  Y+ R' P
关于"you are killed by warden because error response.[reason=5]"问题9 h( n; {+ z. S' p& f4 |6 b4 b

# b+ c: [! D+ x9 ^这个问题表现为在进行战网游戏时,出现You are killed by warden because error response.[reason=5],然后游戏卡死,只能退出游戏。, ~! {' H0 K' J  i$ M
+ d; A0 n& i1 e: k. D1 c* r
关于这个问题,1.11b版D2GS的发布者marsgod是这样说的:这是d2warden设计本身的问题。现在的d2warden使用一种比较简单粗暴的方式在侦测玩家是否使用了某种hack,因此考虑不周,容易出现误杀的情况。这个问题的基本原理,就是某个hack规则检测出了问题。例如,服务器需要检测玩家的d2client.dll 0x1234出是否是值0000(正常值)或者9999(hack值),如果发现玩家返回的值是0000,则认为玩家没有使用某种hack,如果玩家返回的是9999,则认为玩家使用了某种hack,当然要把玩家从服务器上踢掉。
* p# N: @% Z# m这种检测一般情况是够用了的,但是没有考虑到windows操作系统的可重定位机制带来的影响。由于可重定位机制的存在,导致d2client.dll启动的时候,没有被加载到预定的地址0x6FAB0000,而是被动态修改了地址,比如加载到了0x10000000,此后d2client.dll里面所有可重定位地址,都需要修改,这个过程,称为程序加载的重定位,具体可以百度。如果某种d2warden检测规则,恰好检测到一个d2client.dll中的可重定位地址部分,那么玩家返回的值就不是理想的0000了,比如返回了5555。而这个值,既不是正确值0000,也不是hack值9999。这个时候,严格的规则检测,就会将玩家踢出游戏,并报告You are killed by warden because error response.[reason=5]。. X/ b/ ]6 R5 G5 t$ H$ \1 t! k! J# V$ k

# v0 r. |0 a% g' R/ Q* Q目前情况下,一些暂时的解决办法是:
4 U7 b/ r; q7 a8 G/ ]
8 g3 u5 I; W8 P- G6 B% W8 ]) z& P
& T  m3 p  b: N0 A[1] 重新启动机器,尽量不要运行其他程序。1 p0 T' f7 o- M

$ `' B( L- ~3 \" G) K$ x[2] 看看最近是否安装了新软件、新驱动,尝试卸载掉,因为这些东西会在你启动D2之前,就预先装载了一大堆DLL到内存里。
$ A+ X" m" @/ N- _" s, z, a
: H2 g, G7 \8 V/ k[3] 下载LordPE等软件,查看到底哪些DLL占用了D2的地址空间,顺藤摸瓜,把它们禁用或者卸载掉。
& m' h) [4 \- o( a9 \% x2 j- [
神话战网出品,必出精品!
回复

举报

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

本版积分规则

QQ|Archiver|手机版|小黑屋|神话暗黑 ( 陕ICP备18004004号-1 )

GMT+8, 2025-7-14 14:25 , Processed in 0.051401 second(s), 20 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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