跳转到内容
RA2DIY-WIKI 当前处于维护模式:页面上的内容随时可能发生更改且不会事先告知。

Kratos:说明书/计数器及触发器:修订间差异

来自RA2DIY
Kenosis留言 | 贡献
无编辑摘要
Yuchen2010留言 | 贡献
无编辑摘要
 
(未显示3个用户的8个中间版本)
第9行: 第9行:
[[File:比例转换盾.gif|thumb|护盾模式计数器,在经过初始延迟后,一个计数触发器将计数器补回初始值,每触发一次获得一次伤害]]
[[File:比例转换盾.gif|thumb|护盾模式计数器,在经过初始延迟后,一个计数触发器将计数器补回初始值,每触发一次获得一次伤害]]


== [AttachEffectType] ==
= '''计数器''' =
Counter.Mark=Counter1 ;计数器组名称
'''Counter.Mark=(Special)'''


Counter.Num=0 ;赋予时的计数可以用特殊值HP、MAXHP读取当前单位的血量作为计数,对于抛射体,HP即抛射体的威力
计数器组名称默认'''Counter1'''


Counter.NumFromSource=no ;当Num使用特殊值时,优先读取来源


Counter.Min=0 ;计数器的最小值


Counter.Max=-1 ;计数器的最大值,-1表示不限制
'''Counter.Num=(Int or Special)'''


Counter.Action=ADD ;计数器操作,ADD=增加,INIT=设置,SUB=减少,MUL=倍数,如有同组计数后贴的计数器做运算对象。
赋予时的计数'''默认0'''


Counter.AttachIfNotFound=yes ;如果没找到这个计器时,Action设置为:ADD或INIT,可获得一个计数器;SUB或MUL,仅为计算,不会赋予,视为无效AE
'''Int:指定的值'''


CounterX.RemoveWhenNum=0,-1 ;计数器值在该范围内时移除该计数器,X=[0-127],最大值大于0且大于等于最小值时有效
'''HP:被下个标签指定的目标当前血量'''


注意移除只是计数器,承载计数器的AE不会消失。
'''MAXHP:被下个标签指定目标最大血量'''


<nowiki>;</nowiki> 自动调整计数
'''Counter.NumFromSource=(boolean)'''


Counter.Reaction=NORMAL ;响应计数模式,NORMAL\HITPOINT\SHIELD,HITPOINT与SHIELD模式在收到伤害时,按照伤害数值扣除计数,SHIELD模式会抵扣伤害
当Num使用特殊值时,优先读取来源,'''默认no'''


<nowiki>;</nowiki> 受伤计数模式细节设置


Counter.Reaction.Limit=-1 ;最高可保护的伤害值,超过的伤害不参与转换


Counter.Reaction.Protect=100% ;使用伤害的比例,Shield模式下剩余部分不会被抵扣,30%的比例下收到100伤害,使用30伤害进行计数结算,余下70伤害正常传递
'''Counter.Min=(Int)'''


Counter.Reaction.Percent=100% ;使用的伤害数值转换为计数的比例优先扣除计数,Shield模式下若计数不足抵扣,剩余伤害会照常反馈。比如写10%就是受100伤扣10计数器。
计数最小值'''默认0'''


Counter.Reaction.OnlyReactionWarheads=none ;只对这些弹头进行响应


Counter.Reaction.NotReactionWarheads=none ;不对这些弹头进行响应


== [AttachEffectType] ==
'''Counter.Max=(Int)'''
<nowiki>;</nowiki> 模块:计数触发器 —— 与计数器分离的单独触发器,在执行时检查监视的计数器值,满足条件时触发效果


CountTrigger.Watch=Counter1 ;待监视的计数器组名称
计数器的最大值,-1表示不限制,'''默认-1'''


<nowiki>;</nowiki> 触发条件,X=[0-127],触发可有多个,按ID顺序执行


CountTriggerX.Range=0,100 ;监视计数器在[0, 100]时触发,最大值小于最小值时表示无条件触发


CountTriggerX.TriggeredTimes=-1 ;X单独统计触发次数,触发多少次后移除自身,若存在多个触发器,后续的触发将停止执行
'''Counter.Action=(Special)'''


计数器的操作,如有同组计数器,后贴的计数器做运算对象。'''默认ADD'''


<nowiki>;</nowiki> 操作计数,操作计数会影响后续执行触发器检查条件,但不影响本次触发执行
'''ADD:在原Counter当前值基础上增加Counter.Num指定的值'''


CountTriggerX.Num=0 ;操作的计数,可以用特殊值HP、MAXHP读取当前单位的血量作为计数,对于抛射体,HP即抛射体威力
'''INIT:调整原Counter当前值上设置为Counter.Num指定值'''


CountTriggerX.NumFrom=ME ;当Num使用特殊时,ME\SOURCE\COUNTERSOURCE,自身、自身来源、计数器来源
'''SUB:在原Counter当前值的基础上减少Counter.Num指定的'''


CountTriggerX.Action=ADD ;计数器操作,ADD=增加,INIT=设置,SUB=减少,MUL=倍数
'''MUL:在原Counter当前值的基础上乘以Counter.Num指定值'''


CountTriggerX.ResetNum=no ;重置计数器为计数器初始值Num
'''Counter.AttachIfNotFound=(boolean)'''


CountTriggerX.RemoveCounter=no ;移除计数器,若存在多个触发器,后续的触发将停止执行
此Counter是否'''只能在目标身上存在有同组计数器时'''才能被附加并作为运算对象。


'''Counter.Action=ADD/INIT:作为新的计数器赋予'''


<nowiki>;</nowiki> 赋予效果
'''Counter.Action=SUB/MUL:仅为计算,不会赋予,视作无效AE'''


CountTriggerX.AttachEffects=AE1,AE2 ;触发后赋予的新AE


CountTriggerX.AttachChances=100%,100% ;附加效果的成功率


CountTriggerX.AttachTo=ME ;触发后向谁附加AE,ME\SOURCE\COUNTERSOURCE
'''CounterX.RemoveWhenNum=(Int),(Int)'''


CountTriggerX.AttachFrom=SOURCE ;附加果的来源设置,ME\SOURCE\COUNTERSOURCE
计数器值在该范围内时移除该计数器,最大值大于0且大于等于最小值时有,'''默认0,-1    X可取0-127'''


CountTriggerX.RemoveEffects=AE1,AE2 ;触发后移除的AE
'''注意移除的只是计数器,承载计数器的AE不会消失。'''


CountTriggerX.RemoveEffectsLevel=0,0 ;触发后移除的AE对应的层
'''<big>自动调整计模式</big>'''


CountTriggerX.RemoveEffectsWithMarks=none ;触发后移除带这些标记的AE


CountTriggerX.RemoveEffectsSkipNext=no ;触发后移除的AE将跳过Next


CountTriggerX.RemoveWho=ME ;触发后移除谁身上的AE,ME\SOURCE\COUNTERSOURCE
 
 
'''Counter.Reaction=(Special)'''
 
响应计数模式,'''默认NORMAL'''
 
'''NORMAL:常规计数器算法,只受CountTrigger影响'''
 
'''HITPOINT:自动记录受到的最终伤害,并按下列标签额外设置扣除相应数值。'''
 
'''SHIELD:同HITPOINT,但是计数器存在时本体不会受伤,直到计数器消失。就是护盾。计数器数值就是护盾的血量。'''
 
'''Counter.Reaction.Limit=(boolean)'''
 
最高可保护的伤害值,超过的伤害不参与转换,'''默认-1'''
 
'''Counter.Reaction.Protect=(boolean)'''
 
使用伤害的比例,'''默认100%'''
 
'''Shield模式下剩余部分不会被抵扣'''
 
'''Counter.Reaction.Percent=(boolean)'''
 
使用的伤害数值转换为计数的比例,优先扣除计数,'''默认100%'''
 
'''Shield模式下若计数不足抵扣,剩余伤害会照常反馈'''
 
'''<br />'''例:
 
Counter.Num=300
 
Counter.Reaction.Protect=30%
 
Counter.Reaction.Percent=50%
 
HITPOINT:'''单位受到100伤害''','''Counter'''减去100*30%*50%=15后'''变成285'''
 
SHIELD:'''单位受到'''100*(1-30%)='''70伤害''','''Counter'''减去100*30%*50%=15后'''变成285'''
 
 
 
<big>'''弹头响应相关设置'''</big>
 
'''Counter.Reaction.OnlyReactionWarheads=(boolean)'''
 
只对这些弹头进行响应,默认'''none'''
 
'''Counter.Reaction.NotReactionWarheads=(boolean)'''
 
不对这些弹头进行响应,默认'''none'''
 
= '''计数触发器''' =
'''与计数器分离的单独触发器,在执行时检查监视的计数器值,满足条件时触发效果'''
 
 
'''CountTrigger.Watch=(boolean)'''
 
待监视的计数器组名称,'''默认None'''
 
 
 
'''<big>触发条件,X=[0-127],触发可有多个,按ID顺序执行</big>'''
 
 
 
'''CountTriggerX.Range=(Int),(Int)'''
 
监视计数器在[0, 100]时触发,最大值小于最小值时表示无条件触发,'''默认0,-1'''
 
 
 
 
 
'''CountTriggerX.TriggeredTimes=(Int)'''
 
触发多少次后移除自身,'''默认-1'''
 
'''仅对X值对应的触发器相关标签有效'''
 
'''例如CountTrigger1.TriggeredTimes=1,那么CountTrigger1会在触发一次后移除,而不影响CountTrigger2,CountTrigger3等等'''
 
 
 
 
 
'''<big>操作计数</big>'''
 
'''操作计数会影响后续执行的触发器检查条件,但不影响本次触发执行'''
 
以下'''X=[0-127]'''
 
 
 
'''CountTriggerX.Num=(Int)'''
 
操作的计数,可以用特殊值HP、MAXHP读取当前单位的血量作为计数,对于抛射体,HP即抛射体的威力,默认'''0'''
 
 
 
'''CountTriggerX.NumFrom=(Special)'''
 
当Num使用特殊值时,ME\SOURCE\COUNTERSOURCE,自身、自身来源、计数器来源,默认'''ME'''
 
 
 
'''CountTriggerX.Action=(Special)'''
 
计数器的操作,ADD=增加,INIT=设置,SUB=减少,MUL=倍数,'''默认ADD'''
 
 
 
 
 
'''CountTriggerX.ResetNum=(boolean)'''
 
重置计数器为计数器初始值Num,默认'''no'''
 
 
 
'''CountTriggerX.RemoveCounter=(boolean)'''
 
移除计数器,若存在多个触发器,后续的触发将停止执行,默认'''no'''
 
 
 
'''<big>赋予效果</big>'''
 
'''CountTriggerX.AttachEffects=(List of AttachEffectTypes)'''
 
触发后赋予的新AE,默认'''AE1,AE2'''
 
'''CountTriggerX.AttachChances=(List of Precent)'''
 
附加效果的成功率,默认'''100%,100%'''
 
 
 
'''CountTriggerX.AttachTo=(Special)'''
 
触发后向谁附加AE,ME\SOURCE\COUNTERSOURCE,默认'''ME'''
 
 
 
'''CountTriggerX.AttachFrom=(Special)'''
 
附加效果的来源设置,ME\SOURCE\COUNTERSOURCE,默认'''SOURCE'''
 
 
 
'''CountTriggerX.RemoveEffects=(List of Precent)'''
 
触发后移除的AE,默认'''AE1,AE2'''
 
 
 
'''CountTriggerX.RemoveEffectsLevel=(List of Int)'''
 
触发后移除的AE对应的层数,默认'''0,0'''
 
 
 
'''CountTriggerX.RemoveEffectsWithMarks=(Special)'''
 
触发后移除带这些标记的AE,默认'''none'''
 
 
 
'''CountTriggerX.RemoveEffectsSkipNext=(boolean)'''
 
触发后移除的AE将跳过Next,默认'''no'''
 
 
 
'''CountTriggerX.RemoveWho=(Special)'''
 
触发后移除谁身上的AE,ME\SOURCE\COUNTERSOURCE,默认'''ME'''
 
 
== [WarheadType] ==
'''IgnoreCounterReaction=(Boolean)'''
 
不触发计数器响应弹头,'''默认no'''

2026年3月15日 (日) 10:31的最新版本

特性&注意事项

  • 真正的计数器(以及计数器触发器)。计数器和计数触发器分开摆放,具有非常高的灵活性。计数器是AE的一种效果器。一个AE上写了Counter.Mark后,在单位获得这个AE时,单位也就得到计数器。这个AE被移除时,计数器也移除。
  • 用Counter初始化计数器,CountTrigger(注意不是Count ER Trigger,没有ER)进行计数器变更。根据初始化Num和计数器模式,可以直接实现护盾(第二血条),并拥有极其多的扩展效果,并可以接入AE系统。
  • 附着计数器(以及触发器)的单位知道自己身上计数器的来源、触发器的来源,原生支持3个对象的互动,比复仇不知高到哪里去了。
  • 可以拿来做许许多多奇奇怪怪的效果。比如用计数器模拟AMMO或MP,武器设为无伤害无视觉效果。在攻击时,给自己反馈计数器触发器,判定计数器数值是否位于可释放技能或开火的区间,如是,将计数器减少一次释放或攻击的COST值,触发自动武器,攻击同目标或贴上其他AE。回复则是贴上一个无条件触发的触发器即可。 以后或许会将自然衰减作为计数器的固有特性。
  • 单位获得复仇,每次受击时,使用Stack反向器令单位获得来自攻击者的持续性无限触发Stack。经过初始延迟后,使用计数触发器将计数器补满,每次补充,令单位获得持续性Stack检测的信号AE,每触发一次激发一次自动武器
    计数并转换的实现方法:初始化计数器后,每有一些操作,如SHIELD模式下受击,或Feedback给自己贴CountTrigger变更计数器,将计数器减少,记录结束后,在0-初始值的触发条件下内无限次执行CountTrigger把计数器补回去,同时每触发一次Trigger就触发一次额外效果,比如加血,发射武器之类的。
护盾模式计数器,在经过初始延迟后,一个计数触发器将计数器补回初始值,每触发一次获得一次伤害

计数器

Counter.Mark=(Special)

计数器组名称,默认Counter1


Counter.Num=(Int or Special)

赋予时的计数值,默认0

Int:指定的数值

HP:被下个标签指定的目标当前血量

MAXHP:被下个标签指定的目标最大血量

Counter.NumFromSource=(boolean)

当Num使用特殊值时,优先读取来源,默认no


Counter.Min=(Int)

计数器的最小值,默认0


Counter.Max=(Int)

计数器的最大值,-1表示不限制,默认-1


Counter.Action=(Special)

计数器的操作,如有同组计数器,后贴的计数器做运算对象。默认ADD

ADD:在原Counter当前值的基础上增加Counter.Num指定的值

INIT:调整原Counter当前值上设置为Counter.Num指定的值

SUB:在原Counter当前值的基础上减少Counter.Num指定的值

MUL:在原Counter当前值的基础上乘以Counter.Num指定的值

Counter.AttachIfNotFound=(boolean)

此Counter是否只能在目标身上存在有同组计数器时,才能被附加并作为运算对象。

Counter.Action=ADD/INIT:作为新的计数器赋予

Counter.Action=SUB/MUL:仅为计算,不会赋予,视作无效AE


CounterX.RemoveWhenNum=(Int),(Int)

计数器值在该范围内时移除该计数器,最大值大于0且大于等于最小值时有效,默认0,-1 X可取0-127

注意移除的只是计数器,承载计数器的AE不会消失。

自动调整计数模式



Counter.Reaction=(Special)

响应计数模式,默认NORMAL

NORMAL:常规计数器算法,只受CountTrigger影响

HITPOINT:自动记录受到的最终伤害,并按下列标签额外设置扣除相应数值。

SHIELD:同HITPOINT,但是计数器存在时本体不会受伤,直到计数器消失。就是护盾。计数器数值就是护盾的血量。

Counter.Reaction.Limit=(boolean)

最高可保护的伤害值,超过的伤害不参与转换,默认-1

Counter.Reaction.Protect=(boolean)

使用伤害的比例,默认100%

Shield模式下剩余部分不会被抵扣

Counter.Reaction.Percent=(boolean)

使用的伤害数值转换为计数的比例,优先扣除计数,默认100%

Shield模式下若计数不足抵扣,剩余伤害会照常反馈


例:

Counter.Num=300

Counter.Reaction.Protect=30%

Counter.Reaction.Percent=50%

HITPOINT:单位受到100伤害Counter减去100*30%*50%=15后变成285

SHIELD:单位受到100*(1-30%)=70伤害Counter减去100*30%*50%=15后变成285


弹头响应相关设置

Counter.Reaction.OnlyReactionWarheads=(boolean)

只对这些弹头进行响应,默认none

Counter.Reaction.NotReactionWarheads=(boolean)

不对这些弹头进行响应,默认none

计数触发器

与计数器分离的单独触发器,在执行时检查监视的计数器值,满足条件时触发效果


CountTrigger.Watch=(boolean)

待监视的计数器组名称,默认None


触发条件,X=[0-127],触发可有多个,按ID顺序执行


CountTriggerX.Range=(Int),(Int)

监视计数器在[0, 100]时触发,最大值小于最小值时表示无条件触发,默认0,-1



CountTriggerX.TriggeredTimes=(Int)

触发多少次后移除自身,默认-1

仅对X值对应的触发器相关标签有效

例如CountTrigger1.TriggeredTimes=1,那么CountTrigger1会在触发一次后移除,而不影响CountTrigger2,CountTrigger3等等



操作计数

操作计数会影响后续执行的触发器检查条件,但不影响本次触发执行

以下X=[0-127]


CountTriggerX.Num=(Int)

操作的计数,可以用特殊值HP、MAXHP读取当前单位的血量作为计数,对于抛射体,HP即抛射体的威力,默认0


CountTriggerX.NumFrom=(Special)

当Num使用特殊值时,ME\SOURCE\COUNTERSOURCE,自身、自身来源、计数器来源,默认ME


CountTriggerX.Action=(Special)

计数器的操作,ADD=增加,INIT=设置,SUB=减少,MUL=倍数,默认ADD



CountTriggerX.ResetNum=(boolean)

重置计数器为计数器初始值Num,默认no


CountTriggerX.RemoveCounter=(boolean)

移除计数器,若存在多个触发器,后续的触发将停止执行,默认no


赋予效果

CountTriggerX.AttachEffects=(List of AttachEffectTypes)

触发后赋予的新AE,默认AE1,AE2

CountTriggerX.AttachChances=(List of Precent)

附加效果的成功率,默认100%,100%


CountTriggerX.AttachTo=(Special)

触发后向谁附加AE,ME\SOURCE\COUNTERSOURCE,默认ME


CountTriggerX.AttachFrom=(Special)

附加效果的来源设置,ME\SOURCE\COUNTERSOURCE,默认SOURCE


CountTriggerX.RemoveEffects=(List of Precent)

触发后移除的AE,默认AE1,AE2


CountTriggerX.RemoveEffectsLevel=(List of Int)

触发后移除的AE对应的层数,默认0,0


CountTriggerX.RemoveEffectsWithMarks=(Special)

触发后移除带这些标记的AE,默认none


CountTriggerX.RemoveEffectsSkipNext=(boolean)

触发后移除的AE将跳过Next,默认no


CountTriggerX.RemoveWho=(Special)

触发后移除谁身上的AE,ME\SOURCE\COUNTERSOURCE,默认ME


[WarheadType]

IgnoreCounterReaction=(Boolean)

不触发计数器响应弹头,默认no