红警DIY论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 525|回复: 40

机场生产直升机v2.0 (无bug,完美稳定版)

[复制链接]
发表于 2019-11-6 15:34:09 | 显示全部楼层 |阅读模式
本帖最后由 Forever丨圣洁 于 2019-11-14 18:07 编辑

经过一个月的艰苦攻关,v2.0版已经修复了先前版本中所有已知的BUG,并对流程做出了一定的简化,可以高效稳定运行。

1.0版本里,假机场的异常自杀困扰了我们好长时间,测试过十几种不同的自杀方法,或多或少存在一些致命的问题,最终通过抑制动画的方式解决了这个问题。
效果截图

         

主要原理
1、使用投送超武,以机场生产的假单位作为指示者,发动超武投送真单位。
2、使用狗窝逻辑,限定飞机仅能通过机场生产,不能通过假机场生产。
3、机场捆绑一个假机场,同生共死,假机场有至少2个机位,但不允许生产普通飞机 (面积为0×0 且Helipad=no的机场不允许降落飞机也不会计算机位)。
4、当[General]SeparateAircraft=no时,若机场带有HoverPad=yes,则会在机场正中心生成[General]PadAircraft列表中的第一个飞机。
5、假机场挂永久AE动画→武器→弹头动画→刷自杀专用指示者(中立),机场存在时抑制刷兵,机场消失后空出位置,立刻刷出指示者,完成自杀(延迟40+起步)
不占用位置



B站相关演示视频:https://www.bilibili.com/video/av74731568

具体代码

;rules部分
[General]
AnimToInfantry=BRUTE,SuicideDesignator ;动画刷兵
SeparateAircraft=no ;关键
PadAircraft=AirportDesignator,ORCA,BEAG ;关键,第一个必须是指示飞机;此处不允许注册假飞机

[InfantryTypes]
+=SuicideDesignator

[AircraftTypes]
D00=DummyAircraft
D01=AirportDesignator
D02=FakeSCHP

[BuildingTypes]
+=FakeAirport

[Animations]
KA00=KillerAircraft
KA01=KillerAirportDummy
KA02=KillerAirportReally

[SuperWeaponTypes]
FAS=FakeAirportSpecial
Pro00=Pf00S

[WeaponTypes]
+=KillerAirportWeapon
+=FakeAirportKill

[Warheads]
DW00=DummyWH
KW00=KillerAircraftWH
KW01=KillerAirportDummyWH
KW02=FakeAirportKillWH

[ArmorTypes]
killself=0%
killself_aircraft=killself
killself_airport=killself
designator1=killself

[DummyWH]
Verses=0%,0%,0%,0%,0%,0%,0%,0%,0%,0%,0%

[KillerAircraftWH]
Verses=0%,0%,0%,0%,0%,0%,0%,0%,0%,0%,0%
Versus.killself_aircraft=100%
Versus.designator1=20%
AffectsEnemies=no
AffectsAllies=no
AffectsOwner=yes
EffectsRequireVerses=yes
EffectsRequireDamage=yes
Malicious=no
UnitLost.Suppress=yes
PreventScatter=yes
DeathWeapon.SuppressVehicles=yes

[GAAIRC]
HoverPad=yes ;关键
SuperWeapon2=FakeAirportSpecial;投放假机场
SuperWeapons=Pf00S;投放直升机

[AMRADR]
HoverPad=yes ;关键
SuperWeapon2=FakeAirportSpecial ;投放假机场
SuperWeapons=Pf00S ;投放直升机

[FakeAirportSpecial] ;投放假机场
UIName=Name:FakeAIRPORT
Name=Fake Airforce Command Headquarters
IsPowered=false
RechargeTime=0.005
Type=UnitDelivery
Action=Custom
ShowTimer=no
DisableableFromShell=no
Range=0
LineMultiplier=0
Cursor=Nuke
NoCursor=NoCanDo
SW.Animation=DummyAnimation
SW.AnimationHeight=0
SW.RequiresTarget=land,water
SW.FireIntoShroud=yes
SW.AITargeting=Self
SW.ShowCameo=no
SW.AutoFire=yes
SW.ManualFire=no
Deliver.Types=FakeAirport
SW.Deferment=0
SW.CreateRadarEvent=no
FlashSidebarTabFrames=0
SW.Designators=AirportDesignator

[AirportDesignator] ;投放假机场时所需的指示者
UIName=Name:AirportDesignator
Name=Airport Designator
Image=DummyAircraft
CanPassiveAquire=no
CanRetaliate=no
Strength=100
Category=AirPower
Armor=killself_aircraft
TechLevel=128
Sight=0
DesignatorRange=1
AttachEffect.Animation=KillerAircraft
AttachEffect.Duration=-1
AttachEffect.DiscardOnEntry=no
AttachEffect.PenetratesIronCurtain=yes
AttachEffect.InitialDelay=0 ;根据测试,为0效果最好
IronCurtain.Modifier=0%
ForceShield.Modifier=0%
PixelSelectionBracketDelta=-9999
Selectable=no
EVA.Lost=none
Trainable=no
DontScore=yes
Insignificant=yes
RadarInvisible=yes
RadarVisible=no
Smoke.Anim=DummyAnimation
Smoke.ChanceRed=0
Smoke.ChanceDead=0
Landable=yes
MoveToShroud=yes
Dock=FakeAirport,GAAIRC,AMRADR
Speed=0
PitchSpeed=1.1
PitchAngle=0
OmniFire=yes
Owner=British,French,Germans,Americans,Alliance,Russians,Confederation,Africans,Arabs,YuriCountry
Cost=1000
Points=0
ROT=3
Crewed=no
Survivor.RookiePilotChance=0
Survivor.VeteranPilotChance=0
Survivor.ElitePilotChance=0
ConsideredAircraft=yes
AirportBound=no
GuardRange=0
Explosion=DummyAnimation
MaxDebris=0
IsSelectableCombatant=no
VoiceSelect=DummySound
VoiceMove=DummySound
VoiceAttack=DummySound
VoiceCrashing=DummySound
DieSound=DummySound
MoveSound=DummySound
CrashingSound=DummySound
ImpactLandSound=DummySound
Locomotor={4A582746-9839-11d1-B709-00A024DDAFD1}
MovementZone=Fly
ThreatPosed=0
AuxSound1=DummySound
AuxSound2=DummySound
Fighter=yes
AllowedToStartInMultiplayer=no
PreventAttackMove=yes
ImmuneToEMP=yes
ImmuneToPsionics=yes
ImmuneToAbduction=yes
HunterSeeker.Ignore=yes

[FakeAirport] ;假机场
UIName=Name:FakeAirport
Name=Fake Airport
BuildCat=Tech
Strength=1000
Armor=killself_airport ;无所谓,0x0建筑是无敌的
Adjacent=0
TechLevel=128
Sight=0
AttackCursorOnFriendlies=yes
AttackFriendlies=yes
Primary=FakeAirportKill
AttachEffect.Animation=KillerAirportDummy ;关键,自杀的核心
AttachEffect.Duration=-1
AttachEffect.TemporalHidesAnim=no
AttachEffect.PenetratesIronCurtain=yes
UnitReload=yes
Helipad=no ;关键,虚拟机位(对普通飞机来说相当于不存在)
OmniFire=yes
InvisibleInGame=yes ;不能被玩家发现和选中
Owner=British,French,Germans,Americans,Alliance,Russians,Confederation,Africans,Arabs,YuriCountry
AIBasePlanningSide=0
Cost=0
Points=0
Power=0
IronCurtain.Modifier=0%
ForceShield.Modifier=0%
Selectable=no
EVA.Lost=none
Trainable=no
DontScore=yes
Insignificant=yes
RadarInvisible=yes
RadarVisible=no
Factory=AircraftType
Capturable=no
Crewed=no
Explosion=DummyAnimation
MaxDebris=0
ThreatPosed=0
AIBuildThis=no
NumberOfDocks=2 ;机位至少2个
HasStupidGuardMode=false
Radar=no
Spyable=no
PlaceAnywhere=yes
ImmuneToEMP=no
ImmuneToPsionics=yes
ImmuneToAbduction=yes
HunterSeeker.Ignore=yes

[FakeAirportKill]
Damage=3
ROF=1
Range=1
Projectile=InvisibleAll
Speed=100
Warhead=FakeAirportKillWH
Report=
Suicide=yes ;自杀
OmniFire=yes

[FakeAirportKillWH]
Verses=0%,0%,0%,0%,0%,0%,0%,0%,0%,0%,0%
Versus.designator1=3%
Malicious=no
UnitLost.Suppress=yes
PreventScatter=yes
DeathWeapon.SuppressVehicles=yes

[KillerAirportWeapon] ;假机场动画关联的武器
Damage=0
ROF=1
Range=2
Projectile=InvisibleAll
Speed=100
Warhead=KillerAirportDummyWH
Report=
OmniFire=yes

[KillerAirportDummyWH]
Verses=0%,0%,0%,0%,0%,0%,0%,0%,0%,0%,0%
AnimList=KillerAirportReally
AllowZeroDamage=yes
Malicious=no
UnitLost.Suppress=yes
PreventScatter=yes
DeathWeapon.SuppressVehicles=yes

[SuicideDesignator] ;假机场自杀时所需的指示者
UIName=Name: DummyDummy
Name=Suicide Designator
Image=DummyInf
Category=Soldier
CivilianEnemy=yes ;关键,动画武器无所属方,故刷出的兵必定是中立的,因此需要Ares新功能平民单位敌对控制
CrushSound=DummySound
Strength=200
GuardRange=0
Armor=designator1 ;仅能被假机场攻击
AttachEffect.Animation=KillerAircraft
AttachEffect.Duration=-1
AttachEffect.DiscardOnEntry=no
AttachEffect.PenetratesIronCurtain=yes
AttachEffect.InitialDelay=15 ;为了能稳定的自杀,此项不能小于15帧
TechLevel=128
Pip=white
Sight=0
Speed=0
Cost=0
Trainable=no
Points=0
IsSelectableCombatant=no
VoiceSelect=DummySound
PixelSelectionBracketDelta=-9999
VoiceMove=DummySound
VoiceAttack=DummySound
VoiceFeedback=DummySound
VoiceSpecialAttack=DummySound
DieSound=DummySound
Locomotor={4A582744-9839-11d1-B709-00A024DDAFD1}
PhysicalSize=1
MovementZone=Infantry
ThreatPosed=1
ImmuneToVeins=yes
Size=1
AllowedToStartInMultiplayer=no
IFVMode=20
SelfHealing=no
Insignia.Veteran=dummy
Insignia.Elite=dummy
ImmuneToEMP=yes

[ORCA]
BuiltAt=GAAIRC,AMRADR

[BEAG]
BuiltAt=GAAIRC,AMRADR

[Pf00S] ;投送武直
UIName=Name: ProduceSpringboard
Name=Produce SCHP
IsPowered=false
RechargeTime=0.005 ;不建议修改
Type=UnitDelivery
Action=Custom
ShowTimer=no
DisableableFromShell=no
Range=0
LineMultiplier=0
Cursor=Nuke
NoCursor=NoCanDo
SW.Animation=DummyAnimation
SW.AnimationHeight=0
SW.RequiresTarget=land,water
SW.FireIntoShroud=yes
SW.AITargeting=Self
SW.ShowCameo=no
SW.AutoFire=yes
SW.ManualFire=no
Deliver.Types=SCHP
SW.Deferment=0
SW.CreateRadarEvent=no
FlashSidebarTabFrames=0
SW.Designators=FakeSCHP

[FakeSCHP] ;投送武直所需的指示单位
UIName=Name:SiegeChopper
Name=SCHP
Prerequisite.Lists=1
Prerequisite=GAAIRC
Prerequisite.List1=AMRADR
CanPassiveAquire=no
CanRetaliate=no
Strength=300 ;不建议修改
Category=AirPower
Armor=killself_aircraft
TechLevel=7
Sight=0
DesignatorRange=1
AttachEffect.Animation=KillerAircraft
AttachEffect.Duration=-1
AttachEffect.DiscardOnEntry=no
AttachEffect.PenetratesIronCurtain=yes
AttachEffect.InitialDelay=0 ;不建议修改,为0时才能稳定
IronCurtain.Modifier=0%
ForceShield.Modifier=0%
PixelSelectionBracketDelta=-9999
Selectable=no
EVA.Lost=none
Trainable=no
DontScore=yes
Insignificant=yes
RadarInvisible=yes
RadarVisible=no
Smoke.Anim=DummyAnimation
Smoke.ChanceRed=0
Smoke.ChanceDead=0
Landable=yes
MoveToShroud=yes
Dock=FakeAirport,GAAIRC,AMRADR
Speed=0
PitchSpeed=1.1
PitchAngle=0
OmniFire=yes
Owner=British,French,Germans,Americans,Alliance,Russians,Confederation,Africans,Arabs,YuriCountry
Cost=1000
Points=0
ROT=3
Crewed=no
Survivor.RookiePilotChance=0
Survivor.VeteranPilotChance=0
Survivor.ElitePilotChance=0
ConsideredAircraft=yes
AirportBound=no
GuardRange=0
Explosion=DummyAnimation
MaxDebris=0
IsSelectableCombatant=no
VoiceSelect=DummySound
VoiceMove=DummySound
VoiceAttack=DummySound
VoiceCrashing=DummySound
DieSound=DummySound
MoveSound=DummySound
CrashingSound=DummySound
ImpactLandSound=DummySound
Locomotor={4A582746-9839-11d1-B709-00A024DDAFD1}
MovementZone=Fly
ThreatPosed=0
AuxSound1=DummySound
AuxSound2=DummySound
Fighter=yes
AllowedToStartInMultiplayer=no
PreventAttackMove=yes
ImmuneToEMP=yes
ImmuneToPsionics=yes
ImmuneToAbduction=yes
HunterSeeker.Ignore=yes

;art部分
[KillerAircraft] ;各种指示者自杀动画
Normalized=no
Rate=900
Damage=400
Layer=ground
Shadow=no
Warhead=KillerAircraftWH

[DummyAircraft] ;飞机通用空模型
Voxel=yes
Remapable=yes

[FakeSCHP] ;武直指示者
Voxel=yes
Remapable=yes
Cameo=SCHPICON
AltCameo=SCHPUICO

[FakeAirport] ;假机场
Remapable=yes
Foundation=0x0
Height=4
Buildup=FakeAirportAnim
DemandLoadBuildup=true
FreeBuildup=true
NewTheater=yes
CanBeHidden=false
CanHideThings=false

[KillerAirportDummy] ;由于ae动画不能刷兵,需要通过Weapon-弹头动画来间接刷兵
Image=FakeAirportKiller
Normalized=no
Rate=900
Damage=1
Layer=ground
Shadow=no
Weapon=KillerAirportWeapon

[KillerAirportReally] ;刷兵动画,中立步兵
Image=FakeAirportKiller
Normalized=no
Rate=900
MakeInfantry=1


所有素材
已打包好相关素材,方便大家使用:

已对部分小问题进行了修复。2019/11/8 12:34
已对部分小问题进行了第二次修复。2019/11/14 18:06


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

评分

参与人数 3威严 +14 DIY币 +20 素材区入场券 +9999 收起 理由
kenosis + 10 + 9999
紫色放逐 + 3 + 20 神乎其技! 给了 给了
膜术师协会 + 1

查看全部评分

发表于 2019-11-6 16:06:30 | 显示全部楼层
本帖最后由 膜术师协会 于 2019-11-6 16:22 编辑

AE刷标定妙啊
大概可以作为一个通用移除附属0x0建筑的方法

其实假机场可以用EMP炮超武+标定来攻击保证瞬时自杀?


发表于 2019-11-6 16:13:39 | 显示全部楼层
这件事情终于完美了结了,这大半个月为了弄出完美的方案,我们真的是绞尽脑汁搞得寝食难安夜不能寐的……做梦都在想解决之道,光是尝试的方案类型就有:残兵弹幕类、动画伤害类、盖特武器类、中立抑制类、武器禁用类、子机引爆类,并且每一种类型都尝试了很多种方法,每一次都是饱含希望,但是每次都走进了死胡同……

不过万幸的是,最终终于找到了这个真正完美的解决方案,也算是没有白白辛苦一场!

最值得欣慰的是,这种方案不再需要让机场配备武器和威胁度,对游戏不再会造成任何影响,为大家解除了一起后顾之忧,真让机场生产所有空军单位变得真正实用!
发表于 2019-11-6 16:18:14 | 显示全部楼层
膜术师协会 发表于 2019-11-6 16:06
AE刷标定妙啊
大概可以作为一个通用移除附属0x0建筑的方法

感谢大佬的原贴,没有您的启发,我们不可能会想去解决这样的问题。
 楼主| 发表于 2019-11-6 16:25:44 这篇帖子是使用手机发表的! | 显示全部楼层
本帖最后由 Forever丨圣洁 于 2019-11-9 21:03 编辑
膜术师协会 发表于 2019-11-6 16:06
AE刷标定妙啊
大概可以作为一个通用移除附属0x0建筑的方法


emp炮不能调用自杀武器(suicide=yes的武器)
又试了试,emp炮可以调用自杀武器

而且存在一些古怪的灵异现象,上面那些方法不是莫名其妙的无效,就是莫名其妙的IE,搞得我们是一脸懵逼

而且如果是瞬时的话,百分百失败,测试中标定至少存在40帧以上才可以保证绝对稳定自杀
发表于 2019-11-6 16:34:25 | 显示全部楼层
本帖最后由 尚和道人 于 2019-11-6 16:37 编辑
Forever丨圣洁 发表于 2019-11-6 16:25
emp炮不能调用自杀武器(suicide=yes的武器)

是的EMP炮无法调用自杀武器,但是通过AE动画刷标定清除0X0副建筑的方法完全可以通用普及。
发表于 2019-11-7 01:22:37 | 显示全部楼层
sdl,wsl
发表于 2019-11-7 09:00:24 | 显示全部楼层
大佬们辛苦了!
发表于 2019-11-7 20:36:52 | 显示全部楼层
哇,大佬,简直太厉害了,你们是怎么想到这么完美的方案的……awsl……
发表于 2019-11-7 20:51:20 | 显示全部楼层
mustang 发表于 2019-11-7 09:00
大佬们辛苦了!

额……请把“们”去掉……我不是大佬,圣洁宝贝才是大佬……我是一个除了嘤嘤嘤啥也不会的萌新……嘤……
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|Archiver|手机版|管理员邮箱|红警DIY官方论坛

GMT+8, 2019-11-20 22:16 , Processed in 0.021360 second(s), 17 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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