加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

二战英雄中枪械武器的修改教程(适用于MOW)

(2009-08-09 14:57:59)
标签:

杂谈

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}            ; s 重新上弹药时间
   {speed 350}                ; m/s 子弹速度
   {spreading
       {SpreadRadius 0.01}        ; m 子弹射出后的误差度,越小越好
   }
   {piercing   10 8   50 6.5 150 4.7}   ;打击装甲车等的力度10/8,50/6.5,150/4.7
                                ;可以理解为10米/8,50米/6.5 .....
                                ;你可以改为如同ptrs反坦克枪
                                ;10 50   30 40   150 0
   (mod "mp"
       {maxRange}                    ; m
       {healthing 55 550 100 320 200 160} ;每米的杀伤度,如:55m为550,递减
   )
                              ;段落结束

  其中原文中没有的语句为新增加的,并加上了注释。其它枪支的修改方法可以参照以上过程自行修改试一试吧。
  将修改后的文件存盘并用WINRAR打包压缩回3.pat中即可。现在进入游戏中试一下效果吧。

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有