|
|
楼主 |
发表于 2022-7-28 12:17:21
|
显示全部楼层
本帖最后由 ruanhuhu 于 2022-7-28 12:38 编辑
相关代码又臭又长。。。。实现功能 周围存在受伤单位才开始维修 维修播放动画 维修为范围内全部都可以维修 维修不可叠加 维修结束后停止 维修值 维修移除恐怖机器人 不会受到坦克等级提升或者捡到护甲箱子影响?
rules中
[Animations]
+=RepairAnim
+=RepairAnim2
[ArmorTypes]
;使用以下装甲用以禁止维修
ImmuneweixiuL=Light
ImmuneweixiuM=Medium
ImmuneweixiuH=Heavy
ImmuneweixiuS1=special_1 ;蜘蛛
ImmuneweixiuS2=special_2 ;子机导弹
;。。。改成直接禁止维修厂攻击水面了
;[LCRF]
;Armor=ImmuneweixiuL
[DEST]
Armor=ImmuneweixiuH ;heavy
[DLPH]
Armor=ImmuneweixiuL
[AEGIS]
Armor=ImmuneweixiuL
[CARRIER]
Armor=ImmuneweixiuH ;heavy
;[SAPC]
;Armor=ImmuneweixiuH ;heavy
[HYD]
Armor=ImmuneweixiuH ;heavy
[SUB]
Armor=ImmuneweixiuH ;heavy
[SQD]
Armor=ImmuneweixiuL
[DRED]
Armor=ImmuneweixiuH ;heavy
;应该设定到所有船只上
[NADEPT]
Primary=RM60 ;维修用的武器
HasStupidGuardMode=false ;可以攻击
UnitRepair=no ;可以维修坦克
NumberImpassableRows=1 ;单位是修理厂或者碉堡 可以通行的格数 从game west开始算起
AlphaImage=repaircycle2
AttackCursorOnFriendlies=yes ;可以攻击友军 没有这句好像也可以
CanPassiveAquire=yes ;可以自动攻击 没有这句好像也可以
NoManualFire=yes ;不能手动选择攻击
AIBuildThis=no
RadialIndicatorRadius=0
[GADEPT]
Primary=RM60 ;维修用的武器
HasStupidGuardMode=false ;可以攻击
UnitRepair=no ;可以维修坦克
NumberImpassableRows=1 ;单位是修理厂或者碉堡 可以通行的格数 从game west开始算起
AlphaImage=repaircycle2
AttackCursorOnFriendlies=yes ;可以攻击友军 没有这句好像也可以
CanPassiveAquire=yes ;可以自动攻击 没有这句好像也可以
NoManualFire=yes ;不能手动选择攻击
AIBuildThis=no
RadialIndicatorRadius=0
[RM60]
Damage=-1 ;负值伤害 对受伤单位主动开火 满血后停止
ROF=120 ;这个要小于弹药恢复速度
Range=4.25 ;主动维修的范围 应略大于可维修范围 Kratos才支持范围大于2.25
Projectile=RepairWeapon2 ;抛射体 炸膛
Speed=100
Warhead=SA+
OmniFire=yes ;全向开火
FireOnce=yes
;Report=IFVRepair ;音效
;UseSparkParticles=yes ;粒子
;AttachedParticleSystem=WeldingSys ;粒子
;RadType=WEIXIURAD ; RadType to use instead
;RadLevel=240
[SA+]
CellSpread=4.5 ;范围
PercentAtMax=1 ;范围内伤害相等
AffectsEnemies=no ;不伤害敌人
Verses=0%,0%,0%,3%,3%,3%,0%,0%,0%,3%,3% ;需要维修的护甲类型设为3%
Crit.Chance=100% ; 暴击几率100%
Crit.ApplyChancePerTarget=false ; 不独立计算百分比
;Crit.ExtraDamage=8 ; 额外伤害值 即维修值
;Crit.Warhead=SA- ; 额外伤害使用的弹头
Crit.Affects=units ; 可以伤害的类型 (none|land|water|empty|infantry|units|buildings|all)
Crit.AffectBelowPercent=99.9% ; 对多少血以下的单位才能暴击
;使用99.9%的话 视为最大维修血量为8000的单位 超过该数值可能差一点修满就会停止
;说明书中描述为决定低于多少百分比血量的目标不会被暴击。
;个人感觉描述反了
;用于此处作用为修到99.99%之后再修一次停止
;维修值为8 最大维修血量为80000的单位 超过该数值可能差一点修满就会停止
Crit.AnimList=RepairAnim ;暴击动画
Crit.AnimOnAffectedTargets=true ;仅显示暴击动画
;船只需要新建护甲并做免疫逻辑
Versus.ImmuneweixiuL=0
Versus.ImmuneweixiuM=0
Versus.ImmuneweixiuH=0
Versus.ImmuneweixiuS1=0
Versus.ImmuneweixiuS2=0
;附近有这些护甲的受伤单位 不主动进行维修
TransactMoney=0
TransactMoney.Display=true
;是否显示变动的资金量,绿色表示获得资金,红色表示失去资金,提示会逐渐上移并淡出,默认false
TransactMoney.Display.AtFirer=true
;资金是否显示在开火者身上,若否则在目标位置显示,默认false
TransactMoney.Display.Houses=self
;可以看见该资金显示的国家,值为(none|owner/self|allies/ally|team|enemies/enemy|all),默认all
TransactMoney.Display.Offset=-25,0
Malicious=no
[WeaponTypes]
+=RepairBullet1
+=RepairBullet2
;这是动画使用的武器 需要挂载/注册
;这是动画使用的武器
[RepairBullet1]
Damage=-1
;此处伤害无效 以动画RepairAnim2上的为准
ROF=120
Range=4.5
Projectile=InvisibleLow
Speed=100
Warhead=SA-
[RepairBullet2]
Damage=-8
;铁幕弹头有帧率 则此处伤害有效 否则以动画RepairAnim2上的为准
ROF=120
Range=4.5
Projectile=InvisibleLow
Speed=100
Warhead=SA2-
[SA2-]
CellSpread=0.2 ;范围
PercentAtMax=1 ;范围内伤害相等
;Verses=0%,0%,0%,1%,1%,1%,0%,0%,0%,1%,1%
Verses=0%,0%,0%,1%,1%,1%,0%,0%,0%,1%,1%
;铁幕弹头该比率对伤害无效 仅影响铁幕时长
;该值乘动画上的伤害为最终数值
IronCurtain.Duration=1
IronCurtain.Cap=-1
IronCurtain.Flash=False
;0帧的铁幕弹头 不可叠加 击杀寄生的恐怖机器人用
;改为使用1帧的铁幕弹头 则伤害不以动画上的 而是使用武器上的
;以动画上的话 对于装甲提升的单位 治疗会变少 包括升级和吃箱子
;实际铁幕效力为1*1%
;如果铁幕效果和普通效果同时存在,必定是先常规伤害
;DamageText.Hidden=yes ;隐藏数字显示 开启的话 维修厂附近的单位都会显示治疗值
DamageText.Detail=yes ;显示每一次伤害的数字,或是显示一个总的伤害数字
;DamageText.Rate=120 ;显示总伤害数字时的频率,每多少帧显示一次
DamageText.XOffset=0,0 ;锚点随机横向范围 数值不晃
DamageText.YOffset=0,0 ;锚点随机纵向范围 数值不晃
DamageText.RollSpeed=0.2 ;数字向上滚动的速度 0的话 数值不动
DamageText.Duration=121 ;数字存在的时间
[SA-]
CellSpread=0.2 ;范围
PercentAtMax=1 ;范围内伤害相等
Verses=0%,0%,0%,1%,1%,1%,0%,0%,0%,1%,1%
Versus.ImmuneweixiuL=0
Versus.ImmuneweixiuM=0
Versus.ImmuneweixiuH=0
Versus.ImmuneweixiuS1=0
Versus.ImmuneweixiuS2=0
;对以上护甲不维修
AttachEffect.Animation=RepairAnim2
AttachEffect.TemporalHidesAnim=yes
AttachEffect.DiscardOnEntry=no
AttachEffect.PenetratesIronCurtain=no
AttachEffect.Duration=120
;该数值需要比动画伤害间隔大 没有测试出合适的数值
AttachEffect.ForceDecloak=yes
;解除隐形 修幻影
AttachEffect.Cumulative=no
;不能叠加
AttachEffect.AnimResetOnReapply=no
AttachEffect.DiscardOnEntry=yes
RemoveDisguise=true
Sonar.Duration=125
;解除隐形 修幻影
Particle=WeldingSys
Flash.Duration=10 ;高亮
;EMP.Duration=120 ;被维修的单位不能动也不能攻击
;仅影响残血单位
;对于免疫 EMP的单位无效
;EMP.Cap=-1
Malicious=no
[RepairWeapon2]
Image=none
Arcing=true
Dropping=yes
SubjectToCliffs=yes
SubjectToElevation=yes
SubjectToWalls=yes
art中
[NADEPT2]
Height=6
Remapable=yes
Normalized=no
CameoPCX=RFIXICON.pcx
Foundation=1x3
AnimActive=0,7,2
Flat=yes
Buildup=NADEPTMK
DemandLoadBuildup=true
FreeBuildup=true
NewTheater=yes
ActiveAnim=NADEPT_B
ActiveAnimDamaged=NADEPT_BD
ActiveAnimZAdjust=-70
SpecialAnim=NADEPT_C1
SpecialAnimZAdjust=-70
SpecialAnimDamaged=NADEPT_C4
CanHideThings=True
CanBeHidden=True
OccupyHeight=2
AddOccupy1=-1,0
AddOccupy2=-1,1
AddOccupy3=-2,-1
DamageFireOffset0=-67,22
IsAnimDelayedFire=yes
; Soviet Repair bay active animation
[NADEPT_B]
Image=NADEPT_B
Normalized=no
LoopStart=0
LoopEnd=10
LoopCount=-1
Rate=220
Layer=ground
NewTheater=yes
Shadow=yes
; Soviet Damaged repair bay active animation
[NADEPT_BD]
Image=NADEPT_B
Normalized=no
Start=10
LoopStart=10
LoopEnd=20
LoopCount=-1
Rate=350
Layer=ground
NewTheater=yes
Shadow=yes
; Soviet Repair bay arm extending.
[NADEPT_C1]
Image=NADEPT_C
Normalized=no
Start=0
End=50
Rate=120
NewTheater=yes
Shadow=yes
; Damaged Soviet Repair bay arm extending.
[NADEPT_C4]
Image=NADEPT_C
Normalized=no
Start=50
End=50
Rate=120
NewTheater=yes
Shadow=yes
; Soviet Repair bay arm working
[NADEPT_C2]
Image=NADEPT_C
Normalized=no
Start=22
LoopStart=22
LoopEnd=29
LoopCount=-1
Rate=400
NewTheater=yes
Shadow=yes
; Soviet Repair bay arm retracting
[NADEPT_C3]
Image=NADEPT_C
Normalized=no
Start=29
End=21 ; SJM: End is not ending frame number but rather # of frames in this sequence -- ending frame # is 49
Rate=400
NewTheater=yes
Shadow=yes
; Damaged Soviet Repair bay arm working
[NADEPT_C5]
Image=NADEPT_C
Normalized=no
Start=72
LoopStart=72
LoopEnd=79
LoopCount=-1
Rate=400
NewTheater=yes
Shadow=yes
; Damaged Soviet Repair bay arm retracting
[NADEPT_C6]
Image=NADEPT_C
Normalized=no
Start=79
End=21 ; SJM: End is not ending frame number but rather # of frames in this sequence -- ending frame # is 99
Rate=400
NewTheater=yes
Shadow=yes
;GEF Lost Anim
[NADEPTBB]
Normalized=no
[GADEPT]
Remapable=yes
Normalized=no
CameoPCX=FIXICON.pcx
Foundation=1x3
;ZShapePointMove=60,30 ; SJM is fixing zshape/zshapelocky problems, changed from 0,0
Height=3
AnimActive=0,7,2
Flat=yes
Buildup=GADEPTMK
DemandLoadBuildup=true
FreeBuildup=true
NewTheater=yes
;BibShape=GADEPTBB
ActiveAnim=GADEPT_D
ActiveAnimDamaged=GADEPT_DD
ActiveAnimZAdjust=0
;IdleAnim=GADEPT_D
;IdleAnimDamaged=GADEPT_DD
;IdleAnimZAdjust=0
SpecialAnim=GADEPT_A
SpecialAnimDamaged=GADEPT_AD
SpecialAnimZAdjust=0
SpecialAnimYSort=543
CanHideThings=True
CanBeHidden=False
OccupyHeight=2
AddOccupy1=-1,0
AddOccupy2=-1,1
DamageFireOffset0=-67,22
IsAnimDelayedFire=yes
; Repair bay arm extending.
[GADEPT_A] ;C1
Image=GADEPT_A
Normalized=yes
Start=0
LoopStart=0
LoopEnd=40
LoopCount=0
Rate=200
NewTheater=yes
Shadow=yes
;Next=GADEPT_B
; Repair bay arm extending.
[GADEPT_AD] ;C1
Image=GADEPT_A
Normalized=yes
Start=40
LoopStart=40
LoopEnd=80
LoopCount=0
Rate=200
NewTheater=yes
Shadow=yes
;Next=GADEPT_BD
; Repair bay arm working
[GADEPT_B] ;C2
Image=GADEPT_B
Normalized=yes
Start=0
LoopStart=0
LoopEnd=18
LoopCount=0
Rate=200
NewTheater=yes
Shadow=yes
;Next=GADEPT_C
; Repair bay arm working
[GADEPT_BD] ;C2
Image=GADEPT_B
Normalized=yes
Start=0
LoopStart=0
LoopEnd=18
LoopCount=0
Rate=200
NewTheater=yes
Shadow=yes
;Next=GADEPT_CD
; Repair bay arm retracting
[GADEPT_C] ;C3
Image=GADEPT_C
Normalized=yes
Start=0
LoopStart=0
LoopEnd=9
LoopCount=0
Rate=200
NewTheater=yes
Shadow=yes
; Repair bay arm retracting
[GADEPT_CD] ;C3
Image=GADEPT_C
Normalized=yes
Start=0
LoopStart=0
LoopEnd=9
LoopCount=0
Rate=200
NewTheater=yes
Shadow=yes
; Repair bay arm idle
[GADEPT_D]
Image=GADEPT_D
Normalized=yes
Start=0
LoopStart=0
LoopEnd=1
LoopCount=-1
Rate=200
NewTheater=yes
Shadow=yes
; Repair bay arm idle
[GADEPT_DD]
Image=GADEPT_D
Normalized=yes
Start=1
LoopStart=1
LoopEnd=2
LoopCount=-1
Rate=200
NewTheater=yes
Shadow=yes
[RepairAnim]
Image=NONE
Normalized=no ;不随游戏速度改变
Damage=1 ;动画的伤害
Weapon=RepairBullet1 ;动画不使用弹头而使用武器来制造伤害(Ares)
[RepairAnim2]
;Image=EMP_FX01
;CustomPalette=anim2.pal
Normalized=no ;不随游戏速度改变
Damage=1 ;动画的伤害
;Damage.InitDelay=0
Damage.Delay=1.0 ;每次制造伤害后延迟多久才能制造下一次伤害(Ares)
Damage.DealtByInvoker=true ; boolean
Damage.ApplyOncePerLoop= true ; boolean
Weapon=RepairBullet2 ;动画不使用弹头而使用武器来制造伤害(Ares)
Rate=60
UseNormalLight=yes
Layer=Top
|
|