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

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

来自RA2DIY
CCC1478留言 | 贡献
无编辑摘要
Yuchen2010留言 | 贡献
无编辑摘要
 
(未显示3个用户的5个中间版本)
第8行: 第8行:


[[File:比例转换盾.gif|thumb|护盾模式计数器,在经过初始延迟后,一个计数触发器将计数器补回初始值,每触发一次获得一次伤害]]
[[File:比例转换盾.gif|thumb|护盾模式计数器,在经过初始延迟后,一个计数触发器将计数器补回初始值,每触发一次获得一次伤害]]
== [AttachEffectType] ==


'''Counter.Mark=(boolean)'''
= '''计数器''' =
'''Counter.Mark=(Special)'''


计数器组名称,默认'''Counter1'''
计数器组名称,默认'''Counter1'''
第16行: 第16行:




'''Counter.Num=(boolean)'''
'''Counter.Num=(Int or Special)'''


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


'''Int:指定的数值'''


'''HP:被下个标签指定的目标当前血量'''
'''MAXHP:被下个标签指定的目标最大血量'''


'''Counter.NumFromSource=(boolean)'''
'''Counter.NumFromSource=(boolean)'''


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






'''Counter.Min=(boolean)'''
'''Counter.Min=(Int)'''


计数器的最小值,默认'''0'''
计数器的最小值,'''默认0'''






'''Counter.Max=(boolean)'''
'''Counter.Max=(Int)'''


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






'''Counter.Action=(boolean)'''
'''Counter.Action=(Special)'''


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


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


'''INIT:调整原Counter当前值上设置为Counter.Num指定的值'''
'''SUB:在原Counter当前值的基础上减少Counter.Num指定的值'''
'''MUL:在原Counter当前值的基础上乘以Counter.Num指定的值'''


'''Counter.AttachIfNotFound=(boolean)'''
'''Counter.AttachIfNotFound=(boolean)'''


如果没找到这个计数器时,Action设置:ADD或INIT,可获得一个计数器;SUB或MUL,仅为计算,不会赋予,视无效AE,默认'''yes'''
此Counter是否'''只能在目标身上存在有同组计数器时''',才能被附加并作运算对象。
 
'''Counter.Action=ADD/INIT:作为新的计数器赋予'''
 
'''Counter.Action=SUB/MUL:仅为计算,不会赋予,视无效AE'''
 




'''CounterX.RemoveWhenNum=(Int),(Int)'''


'''CounterX.RemoveWhenNum=(boolean)'''
计数器值在该范围内时移除该计数器,最大值大于0且大于等于最小值时有效,'''默认0,-1    X可取0-127'''


计数器值在该范围内时移除该计数器,X=[0-127],最大值大于0且大于等于最小值时有效,默认'''0,-1'''
'''注意移除的只是计数器,承载计数器的AE不会消失。'''


'''<big>自动调整计数模式</big>'''


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


<nowiki>;</nowiki> 自动调整计数




'''Counter.Reaction=(boolean)'''


响应计数模式,NORMAL\HITPOINT\SHIELD,HITPOINT与SHIELD模式在收到伤害时,按照伤害数值扣除计数,SHIELD模式会抵扣伤害,默认'''NORMAL'''
'''Counter.Reaction=(Special)'''


响应计数模式,'''默认NORMAL'''


<nowiki>;</nowiki> 受伤计数模式细节设置
'''NORMAL:常规计数器算法,只受CountTrigger影响'''


'''HITPOINT:自动记录受到的最终伤害,并按下列标签额外设置扣除相应数值。'''
'''SHIELD:同HITPOINT,但是计数器存在时本体不会受伤,直到计数器消失。就是护盾。计数器数值就是护盾的血量。'''


'''Counter.Reaction.Limit=(boolean)'''
'''Counter.Reaction.Limit=(boolean)'''


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


'''Counter.Reaction.Protect=(boolean)'''


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


'''Counter.Reaction.Protect=(boolean)'''
'''Shield模式下剩余部分不会被抵扣'''
 
'''Counter.Reaction.Percent=(boolean)'''
 
使用的伤害数值转换为计数的比例,优先扣除计数,'''默认100%'''
 
'''Shield模式下若计数不足抵扣,剩余伤害会照常反馈'''
 
'''<br />'''例:
 
Counter.Num=300


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


Counter.Reaction.Percent=50%


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


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


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




<big>'''弹头响应相关设置'''</big>


'''Counter.Reaction.OnlyReactionWarheads=(boolean)'''
'''Counter.Reaction.OnlyReactionWarheads=(boolean)'''


只对这些弹头进行响应,默认'''none'''
只对这些弹头进行响应,默认'''none'''
'''Counter.Reaction.NotReactionWarheads=(boolean)'''
不对这些弹头进行响应,默认'''none'''
= '''计数触发器''' =
'''与计数器分离的单独触发器,在执行时检查监视的计数器值,满足条件时触发效果'''
'''CountTrigger.Watch=(boolean)'''
待监视的计数器组名称,'''默认None'''






'''Counter.Reaction.NotReactionWarheads=(boolean)'''
'''<big>触发条件,X=[0-127],触发可有多个,按ID顺序执行</big>'''
 
 


不对这些弹头进行响应,默认'''none'''
'''CountTriggerX.Range=(Int),(Int)'''


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


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




'''CountTrigger.Watch=(boolean)'''


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


'''CountTriggerX.TriggeredTimes=(Int)'''


<nowiki>;</nowiki> 触发条件,X=[0-127],触发可有按ID顺序执行
触发多少次后移除自身'''默认-1'''


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


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


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






'''CountTriggerX.TriggeredTimes=(boolean)'''


X单独统计触发次数,触发多少次后移除自身,若存在多个触发器,后续的触发将停止执行,默认'''-1'''
'''<big>操作计数</big>'''


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


以下'''X=[0-127]'''


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




'''CountTriggerX.Num=(boolean)'''
'''CountTriggerX.Num=(Int)'''


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




'''CountTriggerX.NumFrom=(boolean)'''
'''CountTriggerX.NumFrom=(Special)'''


当Num使用特殊值时,ME\SOURCE\COUNTERSOURCE,自身、自身来源、计数器来源,默认'''ME'''
当Num使用特殊值时,ME\SOURCE\COUNTERSOURCE,自身、自身来源、计数器来源,默认'''ME'''
第138行: 第182行:




'''CountTriggerX.Action=(boolean)'''
'''CountTriggerX.Action=(Special)'''
 
计数器的操作,ADD=增加,INIT=设置,SUB=减少,MUL=倍数,'''默认ADD'''
 


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




第156行: 第202行:




<nowiki>;</nowiki> 赋予效果
'''<big>赋予效果</big>'''


 
'''CountTriggerX.AttachEffects=(List of AttachEffectTypes)'''
'''CountTriggerX.AttachEffects=(boolean)'''


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


 
'''CountTriggerX.AttachChances=(List of Precent)'''
 
'''CountTriggerX.AttachChances=(boolean)'''


附加效果的成功率,默认'''100%,100%'''
附加效果的成功率,默认'''100%,100%'''
第171行: 第214行:




'''CountTriggerX.AttachTo=(boolean)'''
'''CountTriggerX.AttachTo=(Special)'''


触发后向谁附加AE,ME\SOURCE\COUNTERSOURCE,默认'''ME'''
触发后向谁附加AE,ME\SOURCE\COUNTERSOURCE,默认'''ME'''
第177行: 第220行:




'''CountTriggerX.AttachFrom=(boolean)'''
'''CountTriggerX.AttachFrom=(Special)'''


附加效果的来源设置,ME\SOURCE\COUNTERSOURCE,默认'''SOURCE'''
附加效果的来源设置,ME\SOURCE\COUNTERSOURCE,默认'''SOURCE'''
第183行: 第226行:




'''CountTriggerX.RemoveEffects=(boolean)'''
'''CountTriggerX.RemoveEffects=(List of Precent)'''


触发后移除的AE,默认'''AE1,AE2'''
触发后移除的AE,默认'''AE1,AE2'''
第189行: 第232行:




'''CountTriggerX.RemoveEffectsLevel=(boolean)'''
'''CountTriggerX.RemoveEffectsLevel=(List of Int)'''


触发后移除的AE对应的层数,默认'''0,0'''
触发后移除的AE对应的层数,默认'''0,0'''
第195行: 第238行:




'''CountTriggerX.RemoveEffectsWithMarks=(boolean)'''
'''CountTriggerX.RemoveEffectsWithMarks=(Special)'''


触发后移除带这些标记的AE,默认'''none'''
触发后移除带这些标记的AE,默认'''none'''
第207行: 第250行:




'''CountTriggerX.RemoveWho=(boolean)'''
'''CountTriggerX.RemoveWho=(Special)'''


触发后移除谁身上的AE,ME\SOURCE\COUNTERSOURCE,默认'''ME'''
触发后移除谁身上的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