技术贴第一弹 ------ 为载具添加导弹系统 -----
_usmc_v5吧
全部回复
仅看楼主
level 8
字太多了,可能有点小,双击放大了看

2011年08月29日 12点08分 1
level 8
试试文字版的。。可能排版会变乱。。。。。。。。。。。。。。。。。。。。。。。。
一个完整的导弹武器系统包括以下几个模块:
1.武器HUD
2.火控
3.弹药设定
4.寻的探测
5.声音设定
6.坐标设定
下面,用J10的AA导弹模块举例说明(没加注释的语句原样写上去就行了):
ObjectTemplate.create GenericFireArm AIR_J10_ArcherLauncher //首先,我们用create方法创建了一个导弹系统,该系统名叫AIR_J10_ArcherLauncher,下面开始创建改系统的各项构件。
ObjectTemplate.createdInEditor 1 (这句不知道会不会影响游戏,还是加上好了)
rem --- 武器HUD ---
ObjectTemplate.createComponent WeaponHud //创建WeaponHud构件
ObjectTemplate.weaponHud.weaponIcon Ingame\Weapons\Icons\Hud\bomb.tga //默认图标,这句到哪都这么写就行
ObjectTemplate.weaponHud.selectIcon Ingame\Weapons\Icons\Hud\Selection\archer_missile.tga //切换到该武器时,右下角弹出的图标,这里当然是红箭导弹archer_missile
ObjectTemplate.weaponHud.hudName "KILLMESSAGE_VEHICLE_j10" //打死对方时,左上角击杀提示显示的武器,这里当然显示的会是“J10”
ObjectTemplate.weaponHud.guiIndex 44 //武器使用的HUD,这个44其实就是J10的驾驶HUD
ObjectTemplate.weaponHud.hasFireRate 0
ObjectTemplate.weaponHud.addShowOnCamMode 2 //这句的意思是,在第二外视角显示HUD(就是按一下C后的那个视角),如果是3的话,按两下C后的那个后追视视角也会显示驾驶HUD了
ObjectTemplate.weaponHud.displaySelectOnActivation 1
ObjectTemplate.weaponHud.firstLockSound HUD_Air_to_Air_Heatseeker_Track //锁定目标后,第一阶段会有滴...滴....滴....滴....声
ObjectTemplate.weaponHud.secondLockSound HUD_Air_to_Air_Heatseeker_Lock //锁定目标后,第一阶段会有滴滴滴滴......声
rem --- 火控 ---
ObjectTemplate.createComponent MultiFireComp //创建火控系统
ObjectTemplate.fire.roundsPerMinute 120 //射速,120发/分
ObjectTemplate.fire.fireInput PIAltFire //发射该武器的按键,PIFire是左键,PIAltFire是右键
ObjectTemplate.fire.addFireRate 0
ObjectTemplate.fire.useDummyProjectiles 1 //值1,使用假弹,也就是我们肉眼能看到导弹的实体(实实在在是一个导弹模型在飞),机炮等武器一般就没这设置,因为
战地2里其实是没有“弹头”这个东西的,枪炮武器所谓的“弹头”其实就是一个逻辑上的“点”罢了
ObjectTemplate.fire.addBarrelName aa11_archerdummy //创建武器发射管,这是个很重要的东西,它的作用是定义武器的发射起点,上面我们用了DummyProjectiles,那么在游戏里,
我们就可以在该发射管位置看到导弹模型,也就是我们看到的机翼下的那几个挂点上的导弹模型
rem --- 弹药设定 ---
ObjectTemplate.createComponent DefaultAmmoComp //创建弹药设定模块
ObjectTemplate.ammo.nrOfMags 1 //弹匣数量

2011年08月29日 12点08分 2
level 8
ObjectTemplate.ammo.magSize 6 //弹药数
ObjectTemplate.ammo.autoReload 1 //自动装弹
ObjectTemplate.ammo.reloadWithoutPlayer 1 //无人自动装弹(也就是说,如果你打空导弹后下飞机,这时如果旁边有个补给箱神马的,飞机就会在无人状态下自动装满弹药并上膛)
ObjectTemplate.createComponent SimpleDeviationComp
ObjectTemplate.createComponent DefaultSoundComp
ObjectTemplate.createComponent DefaultAnimationComp
ObjectTemplate.createComponent DefaultZoomComp
ObjectTemplate.zoom.addZoomFactor 0
rem --- 寻的探测 ---
ObjectTemplate.createComponent MultiFireArmTargetComp //创建寻的探测模块
ObjectTemplate.target.maxDistance 375 //开始锁定的距离
ObjectTemplate.target.targetSystem TSHeatSeeking //锁定的类型,寻热
ObjectTemplate.target.lockDelay 1 //从发现目标到开始锁定的延时
ObjectTemplate.target.lockAngle 15 //锁定范围:前方顶角15度的圆锥形区域
ObjectTemplate.floaterMod 0
ObjectTemplate.hasMobilePhysics 1
ObjectTemplate.hasCollisionPhysics 1
ObjectTemplate.physicsType Mesh
ObjectTemplate.aiTemplate J10Archer //使用J10导弹的AI
rem ---------------- 声音设定 ---------------------
ObjectTemplate.addTemplate S_AIR_J10_ArcherLauncher_Fire1P //添加第一人称的发射声音(就是在座舱里听到的发射声,下面的不用多解释了吧)
ObjectTemplate.addTemplate S_AIR_J10_ArcherLauncher_Fire1P_Outdoor
ObjectTemplate.addTemplate S_AIR_J10_ArcherLauncher_Fire3P
ObjectTemplate.addTemplate S_AIR_J10_ArcherLauncher_BoltClick
ObjectTemplate.addTemplate S_AIR_J10_ArcherLauncher_TriggerClick
ObjectTemplate.addTemplate S_AIR_J10_ArcherLauncher_SwitchFireRate
ObjectTemplate.addTemplate S_AIR_J10_ArcherLauncher_Reload1P
ObjectTemplate.addTemplate S_AIR_J10_ArcherLauncher_Reload3P
ObjectTemplate.addTemplate S_AIR_J10_ArcherLauncher_Deploy1P
ObjectTemplate.addTemplate S_AIR_J10_ArcherLauncher_Deploy3P
ObjectTemplate.addTemplate S_AIR_J10_ArcherLauncher_Zoom
rem ------- 坐标设定(也就是发射管位置,或者理解成导弹在飞机上的挂点位置) ---- //定义挂点的位置,就是机翼下4个导弹模型的位置,这里要说明的是,
这种方法定义的武器模型是可以发射出去的,也就是我们切换到外视角,可以实实在在的看到
这个导弹模型被发射飞出去,而不像眼镜蛇两边的TV弹,那个是只是摆设
ObjectTemplate.setPosition -2.46494/-0.737286/-0.0489866
ObjectTemplate.setRotation 0/-2.2/0
ObjectTemplate.addTemplate aa11_archerdummy
ObjectTemplate.setPosition 2.46494/-0.737286/-0.0489866
ObjectTemplate.setRotation 0/-2.2/0
ObjectTemplate.addTemplate aa11_archerdummy
ObjectTemplate.setPosition -3.23427/-0.743393/-0.838657
ObjectTemplate.setRotation 0/-2.2/0
ObjectTemplate.addTemplate aa11_archerdummy
ObjectTemplate.setPosition 3.23427/-0.743393/-0.838657

2011年08月29日 12点08分 3
level 8
ObjectTemplate.setRotation 0/-2.2/0
rem -------------------------------------
ObjectTemplate.projectileTemplate aa11_archer //发射出去的导弹种类,这里当然是红箭aa11_archer了
ObjectTemplate.velocity 75 //起始速度,就是导弹发射瞬间相对于飞机的速度,当然,导弹会越飞
越快,直到达到最高速度(这个是在导弹的参数里定义的,不在这里)
ObjectTemplate.itemIndex 1 //武器的序号
ObjectTemplate.activeSafe Sound S_AIR_J10_ArcherLauncher_Fire1P //定义第一人称的发射音,就是上面那个addTempale添加的东西,这里要注意,
在上面用addTemple添加的东西,一定要在这里用activeSafe方法声明,比如下面那9个连续的activeSafe,哪怕
你不实际的制定声音文件,这个activeSafe一定要有,当然,如果不需要声音的话,这个空声明其实是没必要的,
比如,我们这里其实并没有指定Deploy1P的声音,那么我们就可以把上面那个
ObjectTemplate.addTemplate S_AIR_J10_ArcherLauncher_Deploy1P
和下面的
ObjectTemplate.activeSafe Sound S_AIR_J10_ArcherLauncher_Deploy1P
都删掉,也是完全没有问题的,注意是“两个都”删掉
ObjectTemplate.soundFilename "objects/vehicles/land/aav_tunguska/sounds/mono/missile_fire.wav"
ObjectTemplate.loopCount 0
ObjectTemplate.is3dSound 0
ObjectTemplate.stopType 1
ObjectTemplate.volume 1
ObjectTemplate.pitch 1
ObjectTemplate.pan 0.5
ObjectTemplate.reverbLevel 1
ObjectTemplate.pitchEnvelope 0/1/0.9/1.1/1/1/0/0.97/1.03/
ObjectTemplate.volumeEnvelope 0/1/0/1/1/1/0/0.9/1/
ObjectTemplate.activeSafe Sound S_AIR_J10_ArcherLauncher_Fire3P
ObjectTemplate.modifiedByUser ljo
ObjectTemplate.soundFilename "objects/vehicles/land/aav_tunguska/sounds/mono/missile_fire.wav"
ObjectTemplate.loopCount 0
ObjectTemplate.is3dSound 1
ObjectTemplate.stopType 1
ObjectTemplate.volume 1
ObjectTemplate.pitch 1
ObjectTemplate.reverbLevel 1
ObjectTemplate.pitchEnvelope 0/1/0.9/1.1/1/1/0/0.97/1.03/
ObjectTemplate.volumeEnvelope 0/1/0/1/1/1/0/0.9/1/
ObjectTemplate.minDistance 3
ObjectTemplate.halfVolumeDistance 7
ObjectTemplate.activeSafe Sound S_AIR_J10_ArcherLauncher_Fire1P_Outdoor
ObjectTemplate.activeSafe Sound S_AIR_J10_ArcherLauncher_BoltClick
ObjectTemplate.activeSafe Sound S_AIR_J10_ArcherLauncher_TriggerClick
ObjectTemplate.activeSafe Sound S_AIR_J10_ArcherLauncher_SwitchFireRate
ObjectTemplate.activeSafe Sound S_AIR_J10_ArcherLauncher_Reload1P
ObjectTemplate.activeSafe Sound S_AIR_J10_ArcherLauncher_Reload3P
ObjectTemplate.activeSafe Sound S_AIR_J10_ArcherLauncher_Deploy1P
ObjectTemplate.activeSafe Sound S_AIR_J10_ArcherLauncher_Deploy3P
ObjectTemplate.activeSafe Sound S_AIR_J10_ArcherLauncher_Zoom
完成了上面一堆东西,我们就成功的创建了一个完整的导弹系统,下面我们要做最后一步,就是把这个导弹系统的控制权交给飞行员。在tweak文件上半部分,我们可以找到
ObjectTemplate.addTemplate S_air_j10_Ambient
ObjectTemplate.addTemplate S_air_j10_AmbientDamaged
这两行下面加一句(其实这两行下面就是J10的零件组装模块)
ObjectTemplate.addTemplate AIR_J10_ArcherLauncher //添加上面我们创建的那个导弹系统(这里名字当然是AIR_J10_ArcherLauncher)
说完收工............................

2011年08月29日 12点08分 4
level 7
挽尊
2011年08月29日 13点08分 6
level 6
二挽
2011年08月29日 13点08分 7
level 8
三挽 自己挽
2011年08月29日 13点08分 8
level 13
玩一局网战回来就第五了....
2011年08月29日 13点08分 10
level 13
本来想要第七来着...
V5吧好火了哦~
2011年08月30日 01点08分 11
level 8
看帖回帖好
2012年02月13日 01点02分 12
level 6
求教,怎么改标枪?
2012年10月02日 15点10分 13
level 1
楼主 你能不能告诉我 这个东西放在哪里 具体一点
2015年08月08日 12点08分 15
此帖的内容是授人以渔不是受人以鱼,不涉及放在哪里的问题..上面的tweak段是原版J10配置,不是我自己创建的.
2015年08月08日 15点08分
回复 开车轧耗子 :[吐舌]发现野生的耗子一只
2015年08月13日 18点08分
level 7
楼主你为何要伤害我们的眼睛[喷][喷][喷]
-----------------在一片荒芜人烟的小岛上,只有一个人,默默地生存着,那个人就是,经验
2015年08月22日 07点08分 16
level 1
按照楼主的方法给歼十一加了个对地导弹就这样了,哪里出问题了?
2017年04月03日 07点04分 17
level 1
楼主,照你说的,我把直升机加挂4枚空空导弹,但是就是没有瞄准锁定系统
2017年12月04日 01点12分 18
level 1
还有一个问题是,挂了导弹之后,机翼下面挂的的导弹模型打光后,无论怎样补充弹药,机翼下面就是空空荡荡的,再发射导弹,导弹就凭空打出来了。好别扭,AIX模组就不存在这个问题,求解
2017年12月04日 01点12分 19
level 8
虽然楼主还活着,但是并不打算回复以上问题......
因为: 不玩BF2好多年, 早就忘个差不多了!!!!
2017年12月04日 03点12分 20
[滑稽]活捉一只耗子
2017年12月04日 06点12分
level 1
跪求楼主给指教一下呗,本人不想当伸手党
2017年12月04日 13点12分 21
1