本帖最后由 紫色放逐 于 2019-3-30 23:28 编辑
在一次严重的酗酒之后,我突然来了灵感,笑
效果图:阿库拉-飞艇炸弹法,台风-子机导弹法
平台Ares2.0
代码示范部分只列出重点,常规属性略,自行复制相关单位改
一、飞艇炸弹法,原理:空军(AircraftTypes)发射飞艇炸弹时,炸弹会向前一直平飞并碰撞遇到的单位爆炸。那么我们的做法自然是由潜艇发射子机导弹,子机导弹发射飞艇炸弹(子机导弹怎么发射武器、有何特性 我以前的帖子讲过 不再多说)
[某SUB]
Primary=STLauncher;随便复制一个子机发射器
Spawns=STorp;用于发射飞艇炸弹的子机导弹
SpawnsNumber=1
SpawnRegenRate=120
SpawnReloadRate=0
…略
[STLauncher]
Damage=100
ROF=120
Range=10
Projectile=Torpedo
Speed=25 ;18
Report=SubAttack
Warhead=APSplash
DecloakToFire=no ;发射不显隐
Spawner=yes ;子机发射器标志,本武器不会真正的发射
[STorp]
Fighter=yes ;不加也能发射炸弹抛体,保险起见还是加上
Primary=STBomb;实际发射的鱼雷(飞艇炸弹)
Missile.Custom=yes ;ares自定义导弹的标志,老有新手做子机导弹忘掉这句的,笑
Missile.PauseFrames=0 ;抬升前的延迟 改为0
Missile.TiltFrames=0 ;导弹抬升角度花费的时间 改为0
Missile.PitchInitial=0.5
Missile.PitchFinal=0.5 ;发射时的角度,保证发射成功
Missile.TurnRate=10 ;转向速度,保证发射成功
Missile.RaiseRate=1
Missile.Altitude=800 ;导弹飞行高度,保证发射成功
Missile.Acceleration=0.1 ;加速度极小,保证导弹离开潜艇前就发射鱼雷。
Missile.Damage=0
Missile.EliteDamage=0
Missile.Warhead=HE
Missile.EliteWarhead=HE
Missile.BodyLength=32
Missile.LazyCurve=no
Missile.TakeOffAnim=Inviso;点火动画,设为无
Missile.TrailerAnim=Inviso;尾烟动画,设为无
Image=NOVXL;导弹图像,自己画一个单点vxl或者空白vxl来隐藏,设为无会报错
AuxSound1=dummy;导弹发射的音效,设为无
…略
[STBomb]
Damage=200
Burst=2
ROF=50
Range=255;保证鱼雷立刻发射
Projectile=STBombP
Speed=20
Warhead=V3WH;弹头要有伤害范围 这里直接写了个v3的
Report=SubAttack;鱼雷发射音效
CellRangefinding=yes
OmniFire=yes
[STBombP]
Acceleration=1
Image=SUBT ;外观设为原版鱼雷
Arm=10
Shadow=no
Acceleration=1
Vertical=yes;垂直抛体的标志,飞机类发射会向前直飞、低高度下会发生撞击
DetonationAltitude=20000
Level=yes;鱼雷的标志,实现撞海岸的关键,没想到吧 这句居然对飞艇炸弹有效
SubjectToBuildings=yes;会撞击实体建筑,对船厂用
SolidLevel=2;实体等级,用于攻击判定
由于平飞炸弹对建筑的撞击判定点有些奇怪,必须打到建筑左上角才能发生碰撞,因此要使用ares的实体建筑逻辑
[NAYARD]
SolidHeight=1;实体高度,阻挡超级鱼雷用
SolidLevel=1;实体等级,用于攻击判定
…略
所有船厂都要加
全局代码
[CombatDamage]
AlliedSolidTransparency=yes;使用实体逻辑的抛射体对友军建筑也有效,否则指定攻击己方船厂时无法正常发射
Art部分:
[NOVXL];自己画个单点vxl 用于各种空军无形单位
Voxel=yes
PrimaryFireFLH=0,51,0;aircraft类单位burst间隔极小,配合武器上的burst能做出并排双发效果
二、子机导弹法,原理:
平飞:当子机导弹PitchFinal为0,且导弹Altitude高于11,导弹会平行于发射者和目标的连线持续飞行而不会命中。(mk的激光扫射用过这种原理,他说是灌了两瓶伏特加后突然试出来的)
撞击:导弹携带一个AE动画,AE动画刷武器,该武器为附近的目标施加AE2,AE2动画带伤害杀死导弹本体
撞岸:使用Ares的海陆单位变形逻辑,导弹上岸后变为另一单位用AE动画挂伤害自杀
[某SUB2]
Primary=STLauncher;随便复制一个子机发射器
Spawns=STorp2;鱼雷
SpawnsNumber=1
SpawnRegenRate=120
SpawnReloadRate=0
…略
[STLauncher]
Damage=100
ROF=120
Range=10
Projectile=Torpedo
Speed=25 ;18
Report=SubAttack
Warhead=APSplash
DecloakToFire=no ;发射不显隐
Spawner=yes ;子机发射器标志,本武器不会真正的发射
[STorp2]
Missile.Custom=yes
Missile.PauseFrames=0 ;抬升前的延迟 改为0
Missile.TiltFrames=0 ;导弹抬升角度花费的时间 改为0
Missile.PitchInitial=0
Missile.PitchFinal=0;使导弹持续平飞
Missile.TurnRate=10 ;转向速度,保证发射成功
Missile.RaiseRate=1
Missile.Altitude=800 ;导弹飞行高度,和PitchFinal配合使导弹持续平飞
Missile.Acceleration=3
Missile.Damage=200
Missile.EliteDamage=250
Missile.Warhead=V3WH
Missile.EliteWarhead=V3WH
Missile.BodyLength=0;设为0,保证爆炸动画在导弹位置播放
Missile.LazyCurve=no
Missile.TakeOffAnim=Inviso;点火动画,设为无
Missile.TrailerAnim=Inviso;尾烟动画,设为无
Armor=special_ST;自定义护甲
Image=SUBT ;外观设定为鱼雷
AttachEffect.Animation=STFuse;用于传播触发撞击用的动画
AttachEffect.Duration=30
AttachEffect.PenetratesIronCurtain=yes;能对铁幕单位施加
Convert.Land=STorp2C;上岸变形,用于撞岸
OpenTopped=yes
Passengers=1
SizeLimit=1
InitialPayload.Types=STFuseI;初始乘客逻辑组,用于撞击船厂,后说
InitialPayload.Nums=1
NoManualUnload=yes
NoManualEnter=yes
Survivor.RookiePassengerChance=0
Survivor.VeteranPassengerChance=0
Survivor.ElitePassengerChance=0
AuxSound1=SubAttack;导弹发射的音效,改为鱼雷发射音效
略…
[STFuseW];动画STFuse携带的武器,需要在ares武器注册列表注册
Damage=1
Burst=1
ROF=1
Range=0.5
Projectile=InvisibleHigh
Speed=20
Warhead=STFuseWH
Report=dummy
CellRangefinding=yes
OmniFire=yes
[STFuseWH]
CellSpread=0.5
PercentAtMax=1
Verses=3%,3%,3%,3%,3%,3%,3%,3%,3%,3%,3%
Versus.special_ST=0%
AttachEffect.Animation=STorpDie;用于杀死导弹的动画
AttachEffect.Duration=75;写长一点,否则撞击不稳定
AttachEffect.PenetratesIronCurtain=yes能对铁幕单位施加
Sonar.Duration=60;由于隐形单位(潜艇)会隐藏AE动画,所以需要用声纳逻辑强制显隐
;AttachEffect.ForceDecloak=yes;不要用这句显隐,效果不稳定
[STDieWH]
CellSpread=0.5
PercentAtMax=1
Verses=0%,0%,0%,0%,0%,0%,0%,0%,0%,0%,0%
Versus.special_ST=100%
DamageAirThreshold=-1;保证能伤害到空中单位
[STorp2C];上岸后变为此单位
Crashable=no;爆炸而不坠毁
Insignificant=yes;死亡不报警
AttachEffect.Animation=STorpDie;用于自杀的动画
AttachEffect.Duration=15
Image=NOVXL;单点vxl隐藏图像
Strength=1;保证立刻去世
Armor=special_ST;自定义护甲
;MaxDebris=2;死亡碎片移除
AuxSound1=dummy;发射音效设为无
略…
和飞艇炸弹型类似,建筑的AE动画会在左上角播放而不是中心
解决方法:在导弹中装一初始乘客,乘客自动攻击船厂,开火动画挂伤害杀死导弹
[STFuseI];导弹内装的乘客,建议直接复制火箭飞行兵
CloseRange=yes;近战寻敌,提高稳定性
AttackFriendlies=yes;自动攻击友军
NavalTargeting=5
LandTargeting=1
Image=INVISO;防止开火序列干扰
Primary=STFuseW2
[STFuseW2]
Damage=1
Burst=1
ROF=1
Range=1;推荐值
Projectile=InvisibleHigh
Speed=20
Warhead=STFuse2WH
Report=dummy
CellRangefinding=yes
OmniFire=yes
Anim=STorpDie;用于杀死导弹
[STFuse2WH]
CellSpread=0.5
PercentAtMax=1
Verses=0%,0%,0%,0%,0%,0%,3%,3%,3%,0%,0%;只打建筑
[NAYARD]
Primary=VirtualThreat
ThreatPosed=1;单位自动攻击建筑,需要该建筑有武器且威胁值大于0
略…
[VirtualThreat]
Damage=1
Range=0;射程为0,造建筑时不会出现范围指示圈
NeverUse=yes;武器不会被真正的使用
Projectile=InvisibleAll
Warhead=SA
Speed=100
所有的船厂都要加
ares新增注册表
[ArmorTypes]
special_ST=0%
[WeaponTypes]
1=STFuseW
Art部分:
[STFuse]
Rate=900
Image=INVISO
Weapon=STFuseW
Damage=1
[STorpDie]
Rate=900
Image=INVISO
Damage=100
Warhead=STDieWH
飞艇炸弹法的优点:
1简单稳定
2易实现并排双发
缺点:
1鱼雷速度无法调节(飞艇炸弹平飞时,修改武器上的速度和抛体上的加速度都无效)
2打击建筑需要对船厂和实体逻辑全局判定做修改,有一定局限性
子机导弹法的优点:
1可以调节飞行速度
2可以自由设定撞击范围
3可以撞礁石(原版鱼雷都做不到哦)
缺点:
1速度不宜过快 否则不稳定
2需要给船厂加武器,有一定局限性
3不易实现并排双发,子机发射器上写个burst=2就能左右开火,但是两导弹之间有一定发射延迟
两种方法共同缺陷,占用子机导弹位,不支持小角度转向
提示1:最后可以用ares部署变形逻辑切掉子机发射器,实现常规鱼雷和超级鱼雷的切换。
提示2:子机导弹法中 潜艇的的开火坐标F值最好大于128 否则可能炸到自己
提示3:新增的单位,步兵,导弹,弹头,动画记得注册。
鸣谢:图中教具阿库拉潜艇的vxl来自Dennis大佬
|