|
|
本帖最后由 jgaxmey 于 2022-7-22 21:36 编辑
这样说也不准确,毕竟蛮王大招需要自己看时机释放,不是自动释放的。如果做成需要自己看实际释放,反而好做很多。自动释放的就很麻烦。
忙活了老长时间,测试很多次,最终做到了效果上几乎完美,但是视觉上有问题。
单位加上ShieldType=BRUTEHD ;护盾注册上。
InitialStrength=10 ;初始生命为10,如果会自己回血也给关了。
[BRUTEHD] ; ShieldType name
Strength=800 ; integer
InitialStrength=800 ; integer
Armor=Hero ; 生命和护甲都跟单位一致,使用这个护盾代替血条
Powered=false ; boolean
AbsorbOverDamage=true ; 效果是护盾就剩1滴血,挨一下也只是破掉护盾,不会掉血,保证任何时候都不会被一击干掉,铁幕什么的不算……
SelfHealing=3.0% ; double, percents or absolute
SelfHealing.Rate=0.1 ; double, ingame minutes,护盾自动回复,代替单位回血
Respawn=0.1 ;
Respawn.Rate=0.0 ;立即重生
BracketDelta=0 ; 调整护盾条的位置,可以调整成血条和护盾条重合,但是盖不住血条……要是能盖住就完美了
Pips=16,16,16 ; integer, frames of pips.shp (zero-based) for Green, Yellow, Red,写16的效果就是一直是安全的绿色(毕竟打空了也不会死),代表大招就绪,
Pips.Building=-1,-1,-1 ; integer, frames of pips.shp (zero-based) for Green, Yellow, Red
Pips.Background= ; filename - including the .shp/.pcx extension
Pips.Building.Empty= ; integer, frame of pips.shp (zero-based) for empty building pip
IdleAnim= ; 如果护盾和血条重合了,可以加个动画,用来看是不是有大招
IdleAnim.ConditionYellow= ; Animation
IdleAnim.ConditionRed= ; Animation
IdleAnimDamaged= ; Animation
IdleAnimDamaged.ConditionYellow= ; Animation
IdleAnimDamaged.ConditionRed= ; Animation
IdleAnim.OfflineAction=None ; AttachedAnimFlag (None, Hides, Temporal, Paused or PausedTemporal)
IdleAnim.TemporalAction=None ; AttachedAnimFlag (None, Hides, Temporal, Paused or PausedTemporal)
BreakAnim=RING1 ; 看到动画代表大招激活了
HitAnim= ; Animation
BreakWeapon=BRUTEWQ ; 护盾碎掉时的武器,好像不注册也没事,最好注册了吧
AbsorbPercent=0.9 ; floating point value
PassPercent=0.0 ; floating point value
AllowTransfer=false ; boolean
[BRUTEWQ]
Damage=0
Range=1
ROF=50 ;200 needs to be closer to animation time (Kills everything anyway)
Projectile=Psychic
Speed=1
Warhead=BHDDT ;弹头,要注册
;AreaFire=yes ; just shoot straight at ground under feet
FireOnce=yes ; Only fire once; don't stay in attack mission
[BHDDT]
CellSpread=.3
PercentAtMax=.85
Verses=0%,0%,100%,0%,0%,0%,0%,0%,0%,0%,0%
Versus.Hero=100% ;这些好像都无所谓,加护盾不看弹头比率
AnimList=None
Shield.RemoveTypes=BRUTEHD
Shield.AttachTypes=BRUTEHD1
[BRUTEHD1] ; 护盾,需要注册
Strength=5000 ; integer
InitialStrength=5000 ; integer
Armor=none ; ArmorType
Powered=false ; boolean
AbsorbOverDamage=true ; boolean
SelfHealing=-250.1 ; double, percents or absolute
SelfHealing.Rate=0.1 ; 和上一行合起来控制大招持续时间
Respawn=0.0 ; double, percents or absolute
Respawn.Rate=0.0 ; double, ingame minutes
BracketDelta=0 ; integer - pixels
Pips=18,18,18 ; 写18就一直是红色,可以把这个红色血条当成大招剩余时间指示条
Pips.Building=-1,-1,-1 ; integer, frames of pips.shp (zero-based) for Green, Yellow, Red
Pips.Background= ; filename - including the .shp/.pcx extension
Pips.Building.Empty= ; integer, frame of pips.shp (zero-based) for empty building pip
IdleAnim= ; Animation
IdleAnim.ConditionYellow= ; Animation
IdleAnim.ConditionRed= ; Animation
IdleAnimDamaged= ; Animation
IdleAnimDamaged.ConditionYellow= ; Animation
IdleAnimDamaged.ConditionRed= ; Animation
IdleAnim.OfflineAction=None ; AttachedAnimFlag (None, Hides, Temporal, Paused or PausedTemporal)
IdleAnim.TemporalAction=None ; AttachedAnimFlag (None, Hides, Temporal, Paused or PausedTemporal)
BreakAnim=BRUTEA ; 动画,要注册
HitAnim= ; Animation
BreakWeapon=BRUTEWQ1 ; 武器,最好注册
AbsorbPercent=0.0 ; 一定写0.0
PassPercent=0.0 ; floating point value
AllowTransfer=false ; boolean
[BRUTEWQ1]
Damage=0
Range=1
ROF=50 ;200 needs to be closer to animation time (Kills everything anyway)
Projectile=Psychic
Speed=1
Warhead=BHDDT1 ;注册
[BHDDT1]
CellSpread=.3
PercentAtMax=.85
Verses=0%,0%,100%,0%,0%,0%,0%,0%,0%,0%,0%
AnimList=None
Shield.RemoveTypes=BRUTEHD1
Shield.AttachTypes=BRUTEHD2
Shield.ReplaceOnly=true
Shield.InheritStateOnReplace=true
[BRUTEHD2] ; 护盾,注册
Strength=800 ; integer
InitialStrength=800 ; integer
Armor=Hero ; 生命,护甲,和第一个护盾一致即可
Powered=false ; boolean
AbsorbOverDamage=true ; boolean
SelfHealing=3.0% ; double, percents or absolute
SelfHealing.Rate=0.1 ; double, ingame minutes
Respawn=0.1 ; double, percents or absolute
Respawn.Rate=0.2 ; double, ingame minutes
BracketDelta=0 ; 和第一个一致
Pips=17,17,17 ; 写17,一直是黄色,代表现在大招冷却
Pips.Building=-1,-1,-1 ; integer, frames of pips.shp (zero-based) for Green, Yellow, Red
Pips.Background= ; filename - including the .shp/.pcx extension
Pips.Building.Empty= ; integer, frame of pips.shp (zero-based) for empty building pip
IdleAnim= ; Animation
IdleAnim.ConditionYellow= ; Animation
IdleAnim.ConditionRed= ; Animation
IdleAnimDamaged= ; Animation
IdleAnimDamaged.ConditionYellow= ; Animation
IdleAnimDamaged.ConditionRed= ; Animation
IdleAnim.OfflineAction=None ; AttachedAnimFlag (None, Hides, Temporal, Paused or PausedTemporal)
IdleAnim.TemporalAction=None ; AttachedAnimFlag (None, Hides, Temporal, Paused or PausedTemporal)
BreakAnim= ; Animation
HitAnim= ; Animation
BreakWeapon= ; WeaponType
AbsorbPercent=0.9 ; 和第一个一致,单位收到的伤害会乘以这个数,写得越小单位越耐打。
PassPercent=0.0 ; floating point value
AllowTransfer=false ; boolean
下面三个动画都注册
[BRUTEA]
Image=INVISO
Normalized=no
LoopCount=1
Layer=Top
Rate=900
Next=BRUTEA1
[BRUTEA1]
Image=INVISO
Normalized=no
LoopCount=1
Rate=1 ;和上一行一起控制大招CD
Next=BRUTEA2
[BRUTEA2]
Image=INVISO
Normalized=no
LoopCount=1
Rate=900
Weapon=BRUTEWQ2
Damage=1
[BRUTEWQ2] ;这个武器是动画产生的,必须注册
Damage=0
Range=5
ROF=200 ;200 needs to be closer to animation time (Kills everything anyway)
Projectile=Psychic
Speed=1
Warhead=BHDDT2 ;弹头,注册
[BHDDT2]
CellSpread=.3
PercentAtMax=.85
Verses=0%,0%,100%,0%,0%,0%,0%,0%,0%,0%,0%
;AffectsEnemies=no;
AnimList=None
Shield.RemoveTypes=BRUTEHD2
Shield.AttachTypes=BRUTEHD
Shield.ReplaceOnly=true
Shield.InheritStateOnReplace=true
完整的效果就是单位造出来是几乎空血的,但会有一个跟血条属性几乎一样的护盾条,代替血条,原来的血条当不存在,你就说这才是血条就行了。整条一直是绿色,代表大招在手,非常安全,被打空后大招开启,头上出现一个红条,会随时间减少,用来指示大招还能持续多久。红条减少至0,大招结束,如果没死的话,单位会开始慢慢回血,血条一直是黄色的,代表现在大招CD,即使回满也不能算非常安全。
要是能把血条给去掉或者隐藏起来就更好了。图片不好示范,录了个视频:
https://www.bilibili.com/video/BV1va411M7ek/
|
|