中国战地技术资源网 技术专区 BF2General Discussion(综合讨论区) 给1252出一个题目    (回复:20/浏览:491)
字号: ﹣中﹣
头衔 版主
积分 14670
帖子 964
注册 2009-06-03

给1252出一个题目

1 楼 发表于 2010-09-26 11:35 打印 只看楼主
最近忙于琐事,无暇研究战地。1252是个人才,很有前途。希望你能再接再厉。
给你出一个题目,我一直想在bf2中实现真实的空战效果,其中一个细节就是用空对空导弹拦截并击毁敌人的空对空导弹。不知依靠你现有的技术能否解决。
(注:在Twip里面,部分武装直升机和部分战机的hud可以锁定步兵发射的反战车导弹和RPG火箭。)
0
狂顶
0
猛踩
头衔 上尉
积分 1632
帖子 20
注册 2010-09-13
2 楼 发表于 2010-09-26 11:59
引用
原帖由隐身人于 2010-09-26 11:35 发表
最近忙于琐事,无暇研究战地。1252是个人才,很有前途。希望你能再接再厉。
给你出一个题目,我一直想在bf...



这就要请一些版上会建模的,弄个美国海军的RAM飞弹


飞弹设定,调的灵活机动度相当低,差不多跟火箭弹一样的,不过还是要有些导引性,导引距离和飞弹射程也设得极短,让它只能飞0.7秒,不然会成为超强区域防空系统,发射速度和飞弹加速度设的高一点,把它加进感炸字符串,飞弹发射器的连射速度全自动,这样就能在飞弹弹头附近造出一大片破片墙,成功拦截来袭敌弹
头衔 禁止访问
积分 1842
帖子 939
注册 2009-12-18
3 楼 发表于 2010-09-26 12:10
*** 帖主被禁止,系统自动屏蔽帖子内容***
头衔 上尉
积分 2518
帖子 261
注册 2010-09-19
4 楼 发表于 2010-09-26 12:28
图片好真实啊~[鼓掌]
头衔 少校
积分 3771
帖子 160
注册 2010-09-25
5 楼 发表于 2010-09-26 13:57
引用
原帖由隐身人于 2010-09-26 11:35 发表
最近忙于琐事,无暇研究战地。1252是个人才,很有前途。希望你能再接再厉。
给你出一个题目,我一直想在bf...


锁定的话应该不难,给导弹增加一个heatObject应该就可以实现。

如果要实施拦截的话……这个就有些困难了似乎,下面只是个猜测——

导弹本体没有碰撞属性(也就是没有形状),在游戏中实际上就是个点,当这个点和飞机、坦克等的模型边缘位置重合的时候就判定为命中。

要实施拦截的话,首先需要给导弹的模型加上轮廓定义(光有贴图不行),并且设定材质级别和耐久度,这样就可以利用BF2的 引擎实现攻击判定,进而实现拦截。
头衔 上尉
积分 2585
帖子 105
注册 2010-09-23
6 楼 发表于 2010-09-26 14:45
海战模组和中国力量模组早就实现导弹拦截了
http://v.youku.com/v_show/id_XODQ2MzA4NzY=.html
http://www.tudou.com/programs/view/-nx3bZnmrTg/

[本帖由帖主于 2010-09-26 14:52 编辑]
头衔 少校
积分 3771
帖子 160
注册 2010-09-25
7 楼 发表于 2010-09-26 19:59
只是锁定的话,还是很容易实现的……
在空空导弹的tweak文件里找到下面的代码:
引用

ObjectTemplate.addTemplate S_aa11_archer_Looping
ObjectTemplate.addTemplate e_missile_trail
ObjectTemplate.setPosition 0/0/-1.48007


然后在下面增加一段定义热源位置的代码:
引用

ObjectTemplate.addTemplate HeatObject
ObjectTemplate.setPosition 0/0/-1.48006


坐标一定要改一小点,否则刚打出去的导弹看不见尾焰效果……

然后,就可以锁定了……

就像这样——


头衔 少校
积分 3778
帖子 336
注册 2010-01-31
8 楼 发表于 2010-09-27 07:37
以前也有人想弄,弄到一半好像有什么技术原因放弃啦
头衔 上尉
积分 2518
帖子 261
注册 2010-09-19
9 楼 发表于 2010-09-27 08:18
真帅~
头衔 版主
积分 14670
帖子 964
注册 2009-06-03
10 楼 发表于 2010-09-27 17:01
@LZ
我只是觉得你给导弹在地图上加上标示已经很好了,但是如果再能够实现这个功能就更完美了。
头衔 少校
积分 3771
帖子 160
注册 2010-09-25
11 楼 发表于 2010-12-10 15:53
引用
原帖由隐身人于 2010-09-27 17:01 发表
@LZ
我只是觉得你给导弹在地图上加上标示已经很好了,但是如果再能够实现这个功能就更完美了。


最近在外地,只有个上网本,无法测试只好继续对着代码YY……[哈欠]

找了个可以被摧毁的,简单的物体,例如Objects_server.zip\staticobjects\common\destroyableobjects里的fueltankwagon,就是机场旁边经常能看见的,用枪打几下就会爆炸的那个燃料桶,打开fueltankwagon.tweak之后发现代码也非常之简单,定义了材质和HP还有爆炸威力就没了。
之前的尝试中发现,类似的东西导弹的代码里也有,不过无论怎么修改,都是没有效果,拦截弹直接穿过被拦截的导弹扬长而去……

今天再次看代码,这次看的是fueltankwagon.con,对比了导弹的con文件,似乎有点区别了——

关于创建一个物体的部分,燃料桶的是“ObjectTemplate.create DestroyableObject”,而导弹的是“ObjectTemplate.create GenericProjectile”。

隐约记得模组网上有人提到过,EA在1.3以后的升级包里,屏蔽了Projectile间的碰撞运算,两个Projectile之间是不会发生任何关系的。

那么考虑到这点,如果我们把导弹con文件中的“ObjectTemplate.create”之后也给换成“DestroyableObject”,是否就可以实现拦截了?

头衔 少校
积分 3826
帖子 182
注册 2010-12-05
12 楼 发表于 2010-12-10 17:01
真做出来 能挺帅
头衔 版主
积分 14670
帖子 964
注册 2009-06-03
13 楼 发表于 2010-12-11 12:57
@1252
有道理,看来兄弟下了很大的功夫。我最近也比较忙,一直没碰bf2。发现fueltankwagon具有重要意义,等过几天我也再去看看。希望老孔也能来帮忙助阵,它也是这方面的专家。
头衔 版主
积分 37604
帖子 1402 (2)
注册 2009-07-10
14 楼 发表于 2010-12-14 10:03
中国力量2010以及LATEYEAR下一版实现安全导弹打导弹 这是一种新方法(独家) 过去的模组导弹打导弹很容易自伤
原本计划为空空导弹打空地导弹(空空对决命中率太低)
头衔 VIP
积分 77539
帖子 533
注册 2009-12-25
15 楼 发表于 2010-12-14 11:25
那到时候请孔老师传授一下具体的技术吧。放心,我们不会把它转卖给伊朗的。。。[偷笑]
头衔 少校
积分 3771
帖子 160
注册 2010-09-25
16 楼 发表于 2011-01-15 15:43
引用
原帖由隐身人于 2010-12-11 12:57 发表
@1252
有道理,看来兄弟下了很大的功夫。我最近也比较忙,一直没碰bf2。发现fueltankwagon具有重要意义,等...


一点新进展:

在导弹代码中找到
引用
ObjectTemplate.addTemplate S_aim9m_sidewinder_Looping
ObjectTemplate.addTemplate e_missile_trail

的字样,在这个部分的最下面添加
引用
ObjectTemplate.addTemplate DestroyablePart_aim9m
ObjectTemplate.addTemplate LaserTarget_vehicle


其中后一句是增加一个激光标识,使得在F15发射完“响尾蛇”之后,马上可以切换到F2的位置发射AGM-65去进行“追尾拦截”实验

然后在文件最后添加
引用
ObjectTemplate.create simpleobject DestroyablePart_aim9m

GeometryTemplate.create BundledMesh DestroyablePart_aim9m
CollisionManager.createTemplate DestroyablePart_aim9m

ObjectTemplate.activeSafe simpleobject DestroyablePart_aim9m
ObjectTemplate.creator ENI-2:eni
ObjectTemplate.modifiedByUser ful
ObjectTemplate.setNetworkableInfo BasicInfo
ObjectTemplate.isDestructable 1
rem ---BeginComp:Armor ---
ObjectTemplate.createComponent Armor
ObjectTemplate.armor.maxHitPoints 50
ObjectTemplate.armor.hitPoints 50
ObjectTemplate.armor.defaultMaterial 110
ObjectTemplate.armor.explosionForce 10
ObjectTemplate.armor.explosionForceMod 15
ObjectTemplate.armor.explosionForceMax 5000
ObjectTemplate.armor.explosionDamage 100
ObjectTemplate.armor.explosionRadius 6
ObjectTemplate.armor.explosionMaterial 101
ObjectTemplate.armor.wreckExplosionForce 50
ObjectTemplate.armor.wreckExplosionForceMax 60
ObjectTemplate.armor.wreckExplosionDamage 50
ObjectTemplate.armor.wreckExplosionRadius 2
ObjectTemplate.armor.wreckExplosionMaterial 70
ObjectTemplate.armor.wreckHitPoints 50
ObjectTemplate.armor.timeToStayAsWreck 300
ObjectTemplate.armor.criticalDamage 76
ObjectTemplate.armor.destroyOnSpectacularDeath 1
rem ---EndComp ---
ObjectTemplate.geometry aim9m_sidewinder
ObjectTemplate.setCollisionMesh aim9m_sidewinder
ObjectTemplate.hasMobilePhysics 1
ObjectTemplate.hasCollisionPhysics 1
ObjectTemplate.physicsType Mesh
ObjectTemplate.mapMaterial 0 Airplane 32


这些代码目前已经可以赋予导弹一个可碰撞的外壳,试验过程中AGM-65会撞击到上面并爆炸掉,但是目前作为目标的AIM-9却不爆炸,继续往前飞……

正在研究,不过似乎该添加的我也都添加了……装甲参数,材质参数都有了,想不起来还应该修改什么了……
头衔 少校
积分 3807
帖子 245
注册 2010-12-08
17 楼 发表于 2011-01-15 19:58
4L的...那是是实图好不好......[偷笑] [偷笑]
头衔 版主
积分 3197
帖子 179
注册 2012-03-19
18 楼 发表于 2012-10-05 13:44
这个很难么?
当时竟然讨论的这么热火?
[疑问]
要是当时我也入手了战地2就好了......
可惜当时我还在积极备考呢

[本帖由帖主于 2012-10-06 00:26 编辑]
头衔 大校
积分 12434
帖子 1421
注册 2012-04-03
19 楼 发表于 2012-10-05 18:44
[鼓掌]
头衔 上尉
积分 1879
帖子 45
注册 2013-10-26
20 楼 发表于 2014-03-22 22:43
其实16L那个效果可以用在燃烧弹上……………………就可以做出空空导弹是引信爆炸的效果了……[鼓掌] [鼓掌] [鼓掌] [鼓掌]