|
|
本帖最后由 jgaxmey 于 2022-7-13 23:30 编辑
原理不复杂,可能很多大佬早就想出来了。
简单说就是飞机有个替身给飞机上一个打不烂的护盾,飞机投弹时有个反馈武器把护盾移除。后来我发现原方法有个问题:电脑不会上护盾,因为电脑不会攻击自己。所以我就想着改成替身自动发射武器,但是自动发射武器没法让他在地面时住手,这样就得需要两个替身,一个加护盾,一个去护盾。去护盾的替身放在机场上,这样停机场上没有护盾,飞起来就有护盾。但实际测试发现问题多多。测试了多次,发现即使是在天上自动发射武器,武器产生效果的范围也是在地面。就给弹头加了立体弹头的代码,但测试还是时灵时不灵。最终也没弄清楚到底哪出的问题。还觉得机场添加替身太麻烦,不如两个替身都在飞机上,加护盾的弹头能影响空中,去护盾的弹头只能影响地面。也是失灵时不灵。最后,想出了一个更好的办法。
只需要一个替身。替身自动发射的武器是去护盾的,只影响地面,同时给替身一个反馈武器,效果是加护盾,弹头有范围伤害,反馈武器不会像自动攻击一样会掉到地面上,会准确打到替身上,这样也能给在空中的本体上护盾了。
[AttachEffectTypes]
+=BEAGZY
;注册一个替身,下面是替身代码,很多无用行,图省事也没删。主要注意红色部分。
红色部分是修改的
[BEAGZY]
Animation=none ;动画
ActiveAnim=none ;激活时的动画
HitAnim=none ;被击中的动画
DoneAnim=none ;结束时的动画
Anim.RemoveInCloak=no ;持续动画在单位隐形时移除,显形时恢复
Anim.TranslucentInCloak=no ;持续动画在单位隐形时透明度调整为50
Anim.Visibility=NONE ;
Duration=250
HoldDuration=yes ;不进行有效期计时,即无限时间
ResetDurationOnReapply=no ;如果不允许叠加,持续过程中重复赋予时是否重置计时器
Delay=0 ;替身消失后多久无法再获得
InitialDelay=0 ;获得AE后多久生效
DiscardOnEntry=no ;离开地图后是否即刻失效
PenetratesIronCurtain=no ;用于弹头附加时是否穿透铁幕
FromTransporter=no ;乘客使用弹头附加时,视为乘坐的载具使用弹头附加
OwnerTarget=yes ;用于弹头附加时,AE属于被赋予对象
Cumulative=no ;是否允许同名AE进行叠加,yes=可叠加作用;no=不可叠加;attacker=来源不同的攻击者允许叠加
Group=-1 ;分组,同一个分组的效果互相影响,削减或增加持续时间
OverrideSameGroup=no ;同一个分组已存在,再赋予则覆盖
AttachOnceInTechnoType=no ;用于出厂附加时,只在单位生成时附加一次,不会在Delay后重新获得
Stand.Type=BEAGTS
Stand.Offset=0,0,0 ;替身的位置,单位的FLH,+F在建筑的右下方,
Stand.Direction=0 ;替身的初始朝向,[0-15],16分圆,0是替身前方,单位为右上,建筑为右下,16方向:N=0、NE=2、E=4、SE=6、S=8、SW=10、W=12、NW=14
Stand.LockDirection=no ;强制固定替身朝向始终保持与使者的方位,无论替身是否正在攻击目标
Stand.IsOnTurret=no ;替身绑定在炮管上
Stand.IsOnWorld=no ;替身绑定位置以世界坐标做参考,固定朝向北方,不跟随转动
Stand.DrawLayer=None ;替身的渲染层设置,当ZOffset不为0时启用,NONE为自动识别,NONE\UNDERGROUND\SURFACE\GROUND\AIR\TOP
Stand.ZOffset=12 ;替身在ZAdjust偏移值,正值在上层,负值在下层,火车类型无效
Stand.SameHouse=yes ;替身跟随附属对象的所属变化,本体属性变化如心控,替身所属也跟随变化
Stand.SameTarget=no ;强制替身与使者攻击同一个目标
Stand.SameLoseTarget=no ;使者失去目标同时替身也失去
Stand.SameAmmo=yes ;强制替身弹药数量与使者相同
Stand.UseMasterAmmo=no ;替身在开火时消耗使者的弹药,这样替身在飞机投弹前一直可以给飞机加护盾,而飞机投弹后由于飞机没有弹药了,替身也无法给飞机加护盾。
Stand.ForceAttackMaster=yes ;替身强制选定使者为目标
Stand.MobileFire=yes ;使者在移动时替身仍可攻击
Stand.Powered=no ;替身需要电力支持才能攻击
Stand.Immune=yes ;替身是否可以收到伤害
Stand.DamageFromMaster=0.0 ;替身是否分摊使者收到的伤害,如果替身无法受伤,则不会分摊,如果弹头无法对替身造成伤害,同样分摊
Stand.DamageToMaster=0.0 ;使者是否分摊替身收到的伤害,如果使者无法受伤,则不会分摊,如果弹头无法对使者造成伤害,同样分摊
Stand.Explodes=no ;替身死亡时爆炸
Stand.ExplodesWithMaster=no ;替身在JOJO死亡时爆炸,覆盖上一条设置
Stand.PromoteFromMaster=no ;强制替身等级与使者相同
Stand.ExperienceToMaster=0.0 ;替身可以训练时,分多少经验给使者,替身不能训练时,击杀100%经验转给使者
Stand.VirtualUnit=yes ; 虚拟单位,不存在于地图上的单位
[BEAGTS];除了红色部分都是复制的飞行兵,别忘了在士兵里注册。
UIName=Name:JUMPJET
Name=Rocketeer
;Image=ROCK ;让替身不可看到
Category=Soldier
JumpJet=yes
AirRangeBonus=4
Primary=BEAGTSWQ
;Secondary=BEAGWQ
Prerequisite=GAPILE,RADAR
Crushable=yes
Strength=125
Fearless=yes
;OpportunityFire=yes ;gs Doesn't work because will fly backwards to point towards it and never shoot
Armor=none
TechLevel=-1
;Sight=6
Sight=12
Pip=white
Speed=9
Owner=British,French,Germans,Americans,Alliance
AllowedToStartInMultiplayer=no
Cost=600
Soylent=300
Points=15
IsSelectableCombatant=yes
VoiceSelect=RocketeerSelect
VoiceMove=RocketeerMove
VoiceAttack=RocketeerAttackCommand
VoiceFeedback=RocketeerFear
VoiceSpecialAttack=RocketeerMove
DieSound=
CrashingSound=RocketeerDie
ImpactLandSound=RocketeerCrash
Locomotor={92612C46-F71F-11d1-AC9F-006008055BB5}
PhysicalSize=1
MovementZone=Fly ; This needs to be None, like aircraft
ConsideredAircraft=yes
ThreatPosed=20 ; This value MUST be 0 for all building addons
VeteranAbilities=STRONGER,FIREPOWER,ROF,SIGHT,FASTER
EliteAbilities=SELF_HEAL,STRONGER,FIREPOWER,ROF
JumpjetSpeed=30 ;params not defined use defaults (old globals way up top called Jumpjet controls)
JumpjetClimb=20 ;HY increase climb speed; used to be 10
JumpjetCrash=25 ; Climb, but down
JumpJetAccel=10
JumpJetTurnRate=10
JumpjetHeight=500
JumpjetWobbles=.01
JumpjetDeviation=1
JumpjetNoWobbles=yes ; the wobbling is in the Hover sequence of the art, instead of being programmer art/ sine wave
Size=1
SpeedType=Hover
HoverAttack=yes
Crashable=yes
BalloonHover=yes ; ie never land
MoveSound=RocketeerMoveLoop
CanPassiveAquire=yes
;LandTargeting=2
AutoFireAreaWeapon=0 ;0是主武器,1是副武器
AutoFireAreaWeapon.InitialDelay=0 ;初始延迟,武器发射频率按武器自身ROF计算
AutoFireAreaWeapon.CheckAmmo=yes
;下面是武器,主武器只能对空,用于飞机起飞后加护盾,副武器对地,用于移除飞机起飞溜达被加上的护盾。飞机如果只是溜达了一下,由于没有投弹,护盾还在,这样飞机再停在机场上也是处于无敌状态的,副武器可以去掉护盾。
[BEAGTSWQ]
Damage=5
ROF=80
Range=4
Projectile=BEAGTSWQP
Speed=100
Warhead=BTAP1
Report=none
Anim=none
FeedbackWeapon=BEAGTSWQ1
[BEAGTSWQ1]
Damage=0
ROF=80
Range=4
Projectile=BEAGTSWQP
Speed=100
Warhead=BTAP
Report=none
Anim=none
[BEAGTSWQP]
Inviso=yes
Image=none
AG=yes
AA=yes
[BTAP]
Verses=0%,0%,0%,-10%,0%,0%,0%,0%,0%,0%,0%
InfDeath=1
AnimList=none
DamageText.Hidden=yes
Shield.AttachTypes=BEAGHD
Malicious=yes
CellSpread=.5
PercentAtMax=.5
[ShieldTypes];注册护盾
+=BEAGHD
[BEAGHD] ; ShieldType name
Strength=100 ; integer
InitialStrength=100 ; integer
Armor=BEAGHJ ; ArmorType
Powered=false ; boolean
AbsorbOverDamage=false ; boolean
SelfHealing=0.0 ; double, percents or absolute
SelfHealing.Rate=0.1 ; double, ingame minutes
Respawn=0.0 ; double, percents or absolute
Respawn.Rate=0.5 ; double, ingame minutes
BracketDelta=0 ; integer - pixels
IdleAnim=None ; animation
IdleAnim.OfflineAction=None ; AttachedAnimFlag (None, Hides, Temporal, Paused or PausedTemporal)
IdleAnim.TemporalAction=None ; AttachedAnimFlag (None, Hides, Temporal, Paused or PausedTemporal)
AbsorbPercent=1.0 ; double, percents
PassPercent=0.0 ; double, percents
AllowTransfer=false ; boolean
[ArmorTypes];注册护盾的护甲
BEAGHJ=2%
[BEAG]
AttachEffectTypes=BEAGZY ;黑鹰战机加上这句
[Maverick2]
Warhead=BEAGAP ;把黑鹰武器的弹头改了,别忘了升级后的武器也改
FeedbackWeapon=BEAGWQ
[BEAGAP]
Verses=150%,100%,100%,100%,100%,90%,130%,130%,130%,100%,100%
Sparky=no
AnimList=BRRLEXP1,BRRLEXP2
Fire=yes
InfDeath=4
CellSpread=2.5
PercentAtMax=.5
Wood=yes
Wall=yes
CellSpread.MaxAffect=1
[BEAGWQ]
Damage=0
Range=8
Projectile=InvisibleLow
Speed=70
Warhead=BTAP1
ROF=15
Speed=100
[BTAP1]
CellSpread=3
PercentAtMax=.5
Versus=0%
Versus.BEAGHJ=100%
DamageText.Hidden=yes
;Shield.AttachTypes=
Shield.RemoveTypes=BEAGHD
AllowZeroDamage=yes
AffectsAir=no ;加不加好像都一样,而且这句的作用感觉也不是这样用的
[Warheads]
+=BTAP ;黑鹰替身武器弹头
+=BTAP1
+=BEAGAP
好像没什么遗漏了
|
|