http://cnc.imgcache.qq.com/ac/b.gif
http://cnc.imgcache.qq.com/ac/b.gif
记得有朋友曾发帖讨论阻击枪中到底哪一款最厉害,咱们就从修改阻击枪开始吧。
(在本次讨论的所有修改,是基于1.28版,并且未加载任何MOD,此文是给喜欢修改的新手看的,至于修改老鸟不看也罢,对于反感修改游戏的朋友更加不必理会此文,甚至扔俩板砖也无所谓,嘿嘿)
1.首先说一下修改游戏的前提
在二战英雄的原版(未使用1.12与1.28版补丁)主要修改目标是game.pak这个大块头文件,而打上1.28版补丁后的主要修改目标是3.pat,以上这两个文件我们可以使用WinRAR压缩软件来打开它,你可以简单的理解为它们都是压缩文档,只是后缀名与我们常见到RAR不一样罢了。
它们的位置如下:
X:\XXX\Soldiers - Heroes of
World War II\game.pak
X:\XXX\Soldiers - Heroes of
World War II\resource\Patch\3.pat
现在我们找到3.pat这个文件,用WinRAR打开它,并且解压缩到Patch\文件夹下,完成后会在Patch\文件夹下多出一个“3”文件夹,而我们所要修改的文件都会在这个文件夹中找到。通过下文提到的修改过程做完修改后,再将修改过的文件打包回3.pat文件就算完成修改了,很简单,不是吗?
为防止修改出错,你可以将3.pat这个文件预先复制到其它文件夹中,这样一但不小心搞坏了这个文件,可以将其复制回来并覆盖即可恢复到原样。
2.开始修改
以阻击枪为例,在二战英雄中常见的阻击枪有苏联的STV-40、德国的G41、盟军的EM-2这三款,它们在游戏中的射击距离、射击精度、杀伤力、等指标都是一样的,而弹夹装弹数量稍有区别。
在X:\XXX\Soldiers - Heroes of
World War
II\resource\Patch\3\set\weapon文件夹中找到rifle.inc文件,用记事本打开它。
在这个文件中可以看到以{weapon
...开头,最后跟一个}为结束的代码段落,如下:
{weapon XXXXXXXXXXXX
.....
}
{weapon XXXXXXXXXXXX
.....
}
这里的每一个{weapon
...}段代表一种枪的数据设定,其中以开头的
{weapon pattern "rifle" from
"bullet"
......
}
为主代码段,(如果你会编程,这自然难不倒你,如果不会编程也无需深究)在主代码段中定义枪支的公共数据设定,而其它的代码段则定义某一种枪的自定义代码。在主代码段的内容我们一般无需修改,主要修改对应枪支的代码即可。为方便理解,下文我们统一称为主段,分段。
再来看分段,以SVT阻击枪为例:找到这一句 {weapon
"svt" from
"sniper_rifle",这一句中“weapon”你可以理解为段代码开头语句,“from”你可以简单理解为[继承]。
本句意思为:定义枪支名称为"svt"(苏联的STV-40),并继承"sniper_rifle"分段内容设定。
这样就牵扯到"sniper_rifle"分段,向上查找到{weapon
pattern "sniper_rifle" from
"mauzer"这一句,你会看到它继承于"mauzer"分段,同样向上找到{weapon "mauzer" from
"rifle"这一句,你会看到它继承于"rifle"段。而"rifle"段则指向了本文件的主段落。至于主段落继承于"bullet",则无需理会它了。
明白了本文件的主柜架结构与段落的继承关系会对你有莫大的帮助,通过它举一反三,对于其它的如机枪、坦克等代码文件的修改,你就可以做到无师自通了。这也是偶写本文件的目的。授人以鱼,不如授人以渔。不是吗?
再来看枪支分段的标准定义,还是以苏联的STV-40阻击枪为例,偶加上了注释。
{weapon "svt" from
"sniper_rifle"
;这句代码的意思你已明白了吧
{fireSound
"rifle_shot.svt"}
;开火的声音定义
{maxRange
100}
;最大射击距离,单位:m
(mod
"mp"
;不用理会
{maxRange}
;特殊重复定义,不用理会
{healthing 55 150 100 50 200 0}
;杀伤力
)
}
;段落结束
以下是偶修改过的代码定义:
{weapon "svt" from "sniper_rifle"
{fireSound
"rifle_shot.svt"}
;开火的声音,如果你愿意,可以改为坦克炮的声音
{reloadSound
"reload.m1_r"}
;重新上弹夹的声音,改为M1步枪的声音
{maxRange
125} ;
最大射击距离,改为125m
{recoveryTime
1.1} ;
s 击发后的准备时间/秒(射速、频率)
{rechargeTime
2.5}