找回密码
 加入帝国

QQ登录

只需一步,快速开始

查看: 7360|回复: 9

[教程文章] [代码]高阶武器.weapon修改教程,细节参数的使用

[复制链接]
发表于 2009-8-16 19:52:36 | 显示全部楼层 |阅读模式
[代码]高阶武器.weapon修改教程,细节参数的使用

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
武器终极修改教程
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
作者:家园唯一高手
出处:家园官方论坛
本篇不涉及hardpoint的添加,改变已有的舰船模型,只在已有的DATA的基础上对武器进行修改。
家园2的武器总体上可以分为三类:光线类武器,射击类武器,导弹类武器。它们各自的特点决定武器的属性,因此我们在修改时常常不能随心所欲。我写这篇教程就是想要解决一些困惑大家很久的问题。

基础篇:

最简单的修改就是改武器本身的参数,在戴阿米德航空航天署的参数帖中有详细的描述。这样修改只能改本身武器的攻击力,射击距离,连续射击的能力等。但是要注意:
setPenetration(NewWeaponType,100,1,{
  PlanetKillerArmour = 0,  (行星杀手装甲)
},{
  SubSystemArmour = 0.3,  ( 子系统装甲)
},{
  MediumArmour = 0.5,     (中型装甲)
},{
  HeavyArmour = 2,      (重型装甲)
})
setAccuracy(NewWeaponType,1,{
  Fighter = 0,          (战机级 )
},{
  Corvette = ,         (护航机级)   
},{
  munition = 0.1,         (资源船级)
})
setAngles(NewWeaponType,0,-180,180,-30,60)
(1)每种武器都有对不同装甲的杀伤系数,直接改对装甲的伤害系数就可以提高武器的攻击力,而在游戏的攻击力栏目数值不变。
(2)每种武器都有对不同级别敌人射击精确度,设置0就表示不攻击,1就表示精度为百分之百。越大越精确。
(3)最后5个数值就是本武器的射击范围,第2,3表示在水平面上面的可转动度数;4,5表示垂直面的。第一个数值是水平和垂直的综合,在不转动的情况下的射击角度。如果设成180,那么后面的都没有意义了,不转动就可以做到全(球)面攻击!

中级篇:

首先要熟悉每种船的名称,和它们的武器名称,性能和效果。在游戏中看到哪个船的武器好就让自己的船发射本不属于自己的武器。说明白点,就是用武器的调用来实现发射不同武器。通过观察发现:在家园2里面武器发射口有活动的和固定的两种,炮台和炮塔类是活动的可以旋转;鱼雷导弹发射口和炸弹发射口一般是固定的,不能旋转。还有一种看不到发射口的近身防空小炮(枪),它也是旋转的,但是活动范围很有限。
weapon文件夹里面的武器都分为以下三种:
(1)Gimble :光线武器,防御小炮和机枪大多都是这一类型。可以发射InstantHit(瞬间),和Bullet(子弹)类型;
(2)AnimatedTurret:所有可以转动的炮口,也可以发射Bullet和InstantHit两个类型;
(3)Fixed:导弹和鱼雷发射口专用的。
了解武器的类型就可以做到在调用的时候不会出现错误而死机跳出。
具体做法就是:直接调用相同的武器类型。不同的类在调用的时候可能会出现不能发射,没办法瞄准或者干脆死机。
以H拦截机interceptor为例,我很崇拜sajuuk的主炮,sajuukheavycannon跟拦截机武器kineticautogun同是Gimble类型,因此可以调用sajuuk的主炮到拦截机上面:
进入ship\hgn_interceptor\hgn_interceptor.ship
看到关于武器的那行StartShipWeaponConfig(NewShipType,“hgn_kineticautogun“,“Weapon_FrontGun“,“Fire“)
改为
StartShipWeaponConfig(NewShipType,“kpr_sajuukheavycannon“,“Weapon_FrontGun“,“Fire“)
保存退出,进入游戏就可以看到效果。
同样的修改方法可以应用的所有的武器上面,只要是相同类型的武器之间就可以放心的调用而不会出问题!
注意,这个修改还可以变通一下,H重巡的激光主炮battlecruiserturretedioncannon虽然是AnimatedTurret类型,但是同sajuukheavycannon一样是光线武器,光线武器可以在Gimble类型发射,因此所有的光线武器都能在Gimble类型发射。还包括hgn_pulsar,hgn_pulsarside等。
同上原理,AnimatedTurret类型也可以发射所有Bullet和InstantHit两个类型的所有武器。但是不同的是当AnimatedTurret类型的发射口发射属于Gimble类型的武器时会出现无法移动炮口瞄准的情况。直接调用的时候要避免。

高级篇:

简单的在SHIP文件里面调用武器显然不能够满足修改的要求,很多情况下这样的调用根本就无法使用,最终还是要在weapon下面修改。一般有两种方法:一可以改被调用的武器让它符合发射的条件;二也可以干脆重新建立一个weapon文件被用来调用。在家园2里的weapon文件名称是没有限制的,大家可以尽情的创造自己喜欢的武器。任何发射口发射任何武器的规则就是:只要你调用的武器符合了发射的条件就可以了。
前面提到过的武器类型已经能做到的修改这里就不讲了,主要讲前面的方法还不能实现的:

(1)Gimble :在能发射InstantHit和Bullet类型武器的基础上发射Missile类型(导弹,鱼雷)。
方法:其实用前面提到的直接在SHIP文件里面直接调用Missile类型的武器就可以了^*^(因为不导弹不存在瞄准的问题,可以全方位发射) Gimble发射口本来就可以直接发射所有Missile类型的武器,只是在游戏中我们看不到罢了。
(2)AnimatedTurret:发射所有Missile类型武器。
用H驱逐舰做例子,把4门炮台都改为发射自己的鱼雷。
方法一:  AnimatedTurret发射口发射Missile类型武器也可以用直接调用的方法,但是这样修改之后旋转炮台加载导弹发射的时候不会转动很不好看。为了让Missile类型的武器符合旋转炮台的发射条件(旋转瞄准发射),还要做如下调整:
进入weapon\hgn_destroyertorpedolauncher\hgn_destroyertorpedolauncher.wepn
将武器发射类型Fixed改为AnimatedTurret;武器参数:120,4500,0,0,0,0,1,0,1,16,0,0,1,0,0,0, 0.1,改为120,4500,0,0,0,0,1,0,1,16,0,0,1,0,120,120,0.1,  ;炮台旋转角度:setAngles (NewWeaponType,179,0,0,0,0)改为setAngles(NewWeaponType,0,-180,180,-20,60)
保存后退出。  通过这个修改驱逐舰的炮台都能旋转发射鱼雷但是有个问题就是原来的鱼雷发射口也变成了旋转发射了,不再是向前弹射。
方法二:  建立一个新的导弹武器的weapon文件,然后调用。修改如下:
进入weapon文件夹,复制hgn_destroyertorpedolauncher然后粘贴并重命名为 hgn_destroyertorpedolauncher2,进入hgn_destroyertorpedolauncher2将 hgn_destroyertorpedolauncher.wepn重命名为hgn_destroyertorpedolauncher2.wepn进入hgn_destroyertorpedolauncher2.wepn按照方法一修改具体参数。
建议大家用第二种方法修改,这样就不会破坏原武器weapon文件,而修改效果是一样的。在SHIP文件调用武器名的时候要注意用改动后的hgn_destroyertorpedolauncher2为武器名。
另外AnimatedTurret发射口发射其它非旋转类型武器都可以参考方法二来修改。

(3)Fixed:发射InstantHit和Bullet类型武器。
主要是解决无法瞄准的问题,用上面方法二就可以轻松搞定了。

用以上的方法就可以实现任何一个发射口发射任何武器了。现在再加入复数调用就可以实现一门发射口发射N种武器。
以H驱逐舰为例,给它的顶炮复数调用H重巡激光主炮和舰炮,无畏副炮和防空炮,V重巡量子炮和导弹,H离子炮,H丛集飞弹,H防空炮,。代码如下:
StartShipWeaponConfig(NewShipType,“Hgn_DestroyerTorpedoLauncher“,“Weapon_Torpedo“,“Weapon_Torpedo“)

StartShipWeaponConfig(NewShipType,“hgn_battlecruiserturretedioncannon“,“Weapon_TurretTop“,“Weapon_TurretTop“)
StartShipWeaponConfig(NewShipType,“hgn_battlecruiserkineticburstcannon“,“Weapon_TurretTop“,“Weapon_TurretTop“)
StartShipWeaponConfig(NewShipType,“hgn_dreadnaughtchinturret“,“Weapon_TurretTop“,“Weapon_TurretTop“)
StartShipWeaponConfig(NewShipType,“vgr_bcforwardweapon“,“Weapon_TurretTop“,“Weapon_TurretTop“)
StartShipWeaponConfig(NewShipType,“vgr_heavyfusionmissilelauncherbc“,“Weapon_TurretTop“,“Weapon_TurretTop“)
StartShipWeaponConfig(NewShipType,“hgn_ioncannon“,“Weapon_TurretTop“,“Weapon_TurretTop“)
StartShipWeaponConfig(NewShipType,“hgn_clustertorpedolauncher“,“Weapon_TurretTop“,“Weapon_TurretTop“)
StartShipWeaponConfig(NewShipType,“hgn_kineticburstcannon“,“Weapon_TurretTop“,“Weapon_TurretTop“)

StartShipWeaponConfig(NewShipType,“hgn_kineticburstcannondestroyer“,“Weapon_TurretBottom“,“Weapon_TurretBottom“)
StartShipWeaponConfig(NewShipType,“hgn_kineticburstcannondestroyer“,“Weapon_TurretFront“,“Weapon_TurretFront“)
StartShipWeaponConfig(NewShipType,“hgn_kineticburstcannondestroyer“,“Weapon_TurretBack“,“Weapon_TurretBack“)
其中vgr_bcforwardweapon,hgn_ioncannon和hgn_clustertorpedolauncher不能正常发射(它门分别属于Gimble和Fixed类型发射口,直接调用不能瞄准),需要按照方法二进行修改。大家可以试试^*^!!!


新的导弹类的添加:
如需要在missile里面添加一个vgr_heavymissile2武器文件。
首先需要vgr_heavymissile的HOD文件,拷贝到vgr_heavymissile2下面,再将vgr_heavymissile.hod 和vgr_heavymissile.miss和vgr_heavymissile.events重新命名为vgr_heavymissile2.hod 和vgr_heavymissile2.miss和vgr_heavymissile2.events然后在scripts/weaponfire文件夹下面添加一个vgr_heavymissile2文件夹将vgr_heavymissile.wf文件复制过来重命名为 vgr_heavymissile2即可.

新子系统武器和新船在系统栏小图的修改:
在SHIP/icons/shipicons里面修改。

修改武器的爆炸效果:
在scripts/weaponfire文件夹下面修改

双管炮火间开火间隔:
setMiscvalues(NewWeaponType,4,0.3)
前面的4是炮管退堂时间,后面的0.3是双管炮火间开火间隔

如果觉得在weapon里面修改实在是太麻烦了,干脆把子系统武器的模型直接调用到已有的武器位置使用吧。这个方法修改可就顾不到模型的美观了,推荐新手使用。
子系统武器一共有5个,在subsystem文件夹里分别是:hgn_battlecruiserionbeamturret; hgn_battlecruiserkineticburstcannon; hgn_battlecruiserkineticburstcannonleftside; hgn_battlecruiserkineticburstcannonrightside; vgr_heavyfusionmissilelauncher战列巡洋舰。
它们都是使用单独的模型因此可以添加到武器位置直接使用。
修改的时候把以下3条:
StartShipHardPointConfig(NewShipType,“HeavyFusionMissileLauncher“,“----- “,“Weapon“,“Innate“,“Damageable“,“Vgr_HeavyFusionMissileLauncherbc“,““, ““,““,““,““,““,““,““)    (V巡洋舰导弹)

StartShipHardPointConfig(NewShipType,“battlecruiserionbeamturret“,“----- “,“Weapon“,“Innate“,“Damageable“,“hgn_battlecruiserionbeamturret“,““,““, ““,““,““,““,““,““)    ( H巡洋舰离子炮)

StartShipHardPointConfig(NewShipType,“battlecruiserkineticburstcannon“, “-----“,“Weapon“,“Innate“,“Damageable“, “hgn_battlecruiserkineticburstcannon“,““,““,““,““,““,““,““,““)      (H巡洋舰前炮) 。
中的一条写到你想改的船的SHIP文件里面,在“----”位置填写武器位置就可以了。虽然每一个武器位置都可以同时加几个子系统武器的模型,但是没有必要,因为被别的模型覆盖了就不能完全发射了。〉;
武器位置在每个SHIP文件里面找到如:StartShipWeaponConfig(NewShipType,“Hgn_KineticAutoGun “,“Weapon_FrontGun“,“Fire“)中的“Weapon_FrontGun“,将它代入上面的3条代码写入SHIP文件就可以了。
回复

使用道具 举报

发表于 2009-11-26 06:35:48 | 显示全部楼层
感謝樓主的分享教材資料!!~受教了~[s:145]
回复

使用道具 举报

发表于 2009-12-24 12:03:44 | 显示全部楼层
虽然很复杂,但我一定要学会!谢谢帮助!
回复

使用道具 举报

发表于 2009-12-30 18:52:51 | 显示全部楼层
谢谢楼主分享
回复

使用道具 举报

发表于 2010-1-24 13:23:28 | 显示全部楼层
虽然还没有试验成功,但是路已经明朗了,谢谢LZ分享
回复

使用道具 举报

发表于 2010-8-12 17:18:57 | 显示全部楼层
看过了。。。还是耐心的看了一遍
回复

使用道具 举报

发表于 2010-11-23 11:41:43 | 显示全部楼层
很多次看啦都不没回头 顶一下不然对不起楼主
回复

使用道具 举报

发表于 2010-12-9 14:58:09 | 显示全部楼层
感谢楼主做出的详细指导
回复

使用道具 举报

发表于 2011-4-24 12:25:56 | 显示全部楼层
看的头晕!不过很强大!
回复

使用道具 举报

发表于 2012-7-7 11:30:55 | 显示全部楼层
马克留名备用
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 加入帝国

本版积分规则

Archiver|手机版|小黑屋|泰坦帝国

GMT+8, 2023-12-8 17:41 , Processed in 0.110375 second(s), 5 queries , Gzip On, Redis On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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