找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 6084|回复: 7

利用护盾做了一个蛮王大招的效果(残血后几秒内打不死)

[复制链接]
发表于 2022-7-22 21:34:58 | 显示全部楼层 |阅读模式
本帖最后由 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/





发表于 2022-7-23 08:01:58 来自手机 | 显示全部楼层
血量高度和护盾高度是可以调整的
回复

使用道具 举报

发表于 2022-7-23 08:40:49 | 显示全部楼层
本帖最后由 ruanhuhu 于 2022-7-23 09:15 编辑

PixelSelectionBracketDelta=0
;血条的高度,负值向上 写在单位上
BracketDelta=0                       ; integer - pixels
;底下这句是护盾条的 以血条为基准的 也是负值向上 写在护盾上


回复

使用道具 举报

 楼主| 发表于 2022-7-23 11:22:14 | 显示全部楼层
ruanhuhu 发表于 2022-7-23 08:40
PixelSelectionBracketDelta=0
;血条的高度,负值向上 写在单位上
BracketDelta=0                       ; ...

我知道,1楼在护盾代码里解释了,即使调成重合,也是血条在前面显示,没法让护盾条挡住血条
回复

使用道具 举报

发表于 2022-7-23 11:48:56 | 显示全部楼层
jgaxmey 发表于 2022-7-23 11:22
我知道,1楼在护盾代码里解释了,即使调成重合,也是血条在前面显示,没法让护盾条挡住血条 ...

你调血条的高度啊 给999
护盾高度给-999 具体数值自己调
这样是 血条移到屏幕下方 护盾位置不变 你仔细看看我说的吧
回复

使用道具 举报

 楼主| 发表于 2022-7-23 15:06:18 | 显示全部楼层
ruanhuhu 发表于 2022-7-23 11:48
你调血条的高度啊 给999
护盾高度给-999 具体数值自己调
这样是 血条移到屏幕下方 护盾位置不变 你仔细看 ...

哦哦,是这个意思啊,我只想着能不能让护盾盖住血条,没想过可以把血条移出屏幕,多谢提醒!
回复

使用道具 举报

发表于 2022-7-23 17:40:47 来自手机 | 显示全部楼层
jgaxmey 发表于 2022-7-23 15:06
哦哦,是这个意思啊,我只想着能不能让护盾盖住血条,没想过可以把血条移出屏幕,多谢提醒! ...

障眼法是基本操作啊
回复

使用道具 举报

 楼主| 发表于 2022-7-23 18:37:44 | 显示全部楼层
ruanhuhu 发表于 2022-7-23 17:40
障眼法是基本操作啊

受教了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|Archiver|手机版|管理员邮箱|红警DIY论坛 |网站地图

GMT+8, 2026-8-30 00:29 , Processed in 0.053294 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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