图 1.
图 2.
其实很早以前我就在点通论坛和MOD论坛发布过了,有兴趣的朋友不妨进来看看。玩CS1.5的玩家可能都知道,CT专用武器M4A1的枪口火花显示位置是错误的(非第一人称视觉,而是以第三方视觉观察时),即开枪的时候火花不在枪口处,而是在枪管子的中间(参见游戏截图)。有些CS1.6和CZ1.2的版本也存在这个问题的,有些版本则修正了。其实问题就出在p_m4a1.dll这个模型上,解决方法也不是很复杂。下面以CS1.6为例,首先用HLMV解开p_m4a1.mdl模型,然后打开p_m4a1.qc文件,找到下面的代码://reference mesh(es)
$body "studio""m4a1"
// 3 hit box(es)
$hbox 0 "Bip01 RHand" 0.000000 -2.232889 -3.670101 35.571133 0.000000 0.000000
$hbox 0 "flash"-23.692970 -7.530763 0.000000 0.000000 0.000000 6.987024
$hbox 0 "Line03"-1.180000 -7.460000 -15.200000 1.050000 3.300000 24.950001 接着把上面的代码改成下面这样: //reference mesh(es)
$body "studio""m4a1"
// 1 attachment(s)
$attachment0 "flash" 0.000000 0.000000 0.000000
// 3 hit box(es)
$hbox 0 "Bip01 RHand" 0.000000 -2.232889 -3.670101 35.571133 0.000000 0.000000
$hbox 0 "flash"-23.692970 -7.530763 0.000000 0.000000 0.000000 6.987024
$hbox 0 "Line03"-1.180000 -7.460000 -15.200000 1.050000 3.300000 24.950001 就是增加红色的那段代码就行了,保存好p_m4a1.qc档后,用HLMV重新编译生成p_m4a1.mdl,覆盖原来的模型就行了。经过研究,发现CS1.5和CZ1.2的解决方法了,二者的方法是一样的。先用HLMV解开CS1.5/CZ1.2的p_m4a1.mdl模型。对于CS1.5,打开idle.smd和m4a1.smd档,可以发现这两个档里都有下面这句代码:
11 26.516474 -1.499062 -1.778342 1.589386 0.235411-0.120829 把上面的代码都改成下面这样,然后重新编译模型就可以解决问题了。
11 35.571133 -2.232889 -3.670101 1.411879 0.460949-0.395566
对于CZ1.2,打开idle.smd和m4a1-cs.smd档,可以发现这两个档里都有下面这句代码: 11 27.196585 -1.588612 -1.560072 1.589386 0.235411-0.120829
把上面的代码都改成下面这样,然后重新编译模型就可以解决问题了。 11 35.571133 -2.232889 -3.670101 1.411879 0.460949-0.395566
另外要注意,修正后的p_m4a1.mdl模型档直接覆盖原文件后,有可能会导致游戏无法运行,这时必须先把游戏的mp_consistency参数改为0(取消模型检测),然后才能进入游戏。为了方便起见,大家可以把这个命令参数mp_consistency “0” 写进config.cfg、listenserver.cfg或者autoexec.cfg之类的档里,然后再运行游戏就行了。
事实上,CS1.6的小狙击枪也存在枪口火花错位的问题,对于小狙p_scout.mdl的修正方法,其实和上面介绍CS1.6的p_m4a1.mdl的修正方法一样,不再赘述。另外,我已经把CS1.5、CS1.6和CZ1.2修正后的p_m4a1.mdl以及CS1.6修正后的p_scout.mdl上传了,想偷懒的玩家直接下载后覆盖原来的模型档就行了。