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

Kratos:说明书/叠层检测

来自RA2DIY
Kenosis留言 | 贡献2025年3月21日 (五) 21:44的版本 (创建页面,内容为“== '''基础特性''' == 此AE附着在物体上后,每帧判定物体身上指定名称AE(可以是几个判定对象)的层数。 层数达成要求时,添加或删除指定的AE。可以指定增删发生在检测器的附着对象上,或检测器的来源上。这样添加的AE默认其来源为检测器的附着对象。 == '''但是你不要以为这东西只能做条件判定用''' == 众所周知,AE的Next语句只能填写1个对象。当…”)
(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)

基础特性

此AE附着在物体上后,每帧判定物体身上指定名称AE(可以是几个判定对象)的层数。

层数达成要求时,添加或删除指定的AE。可以指定增删发生在检测器的附着对象上,或检测器的来源上。这样添加的AE默认其来源为检测器的附着对象。

但是你不要以为这东西只能做条件判定用

众所周知,AE的Next语句只能填写1个对象。当你需要在一个AE结束,目标获得一串AE时,应当Next为一个检测自己存在1层的检测器,于是就可以增加一串AE了。

如果假设A单位和B单位之间需要互相产生来自对方的AE建立绑定关系,A可以用弹头、礼物盒、广播等手段给B贴AE,那么费劲的做法是A同时给B贴个自动武器标记,让B发射个武器打A,给A贴AE。需要做一套武器还得注册,实在是烦死了。简单的做法是A同时给B贴个叠层检测,检测器检测自己,给检测器来源贴AE。

已知bug

Stack.RemoveEffectsSkipNext在某些情况下会把Next整个语句都干爆掉。谨慎使用这一机制,如无必要,不要使用。

语句

[AttachEffectTypes]

Stack.Watch=AE1,AE2;待监视的AE

Stack.Level=0,0 ;监视的AE叠加到多少层时触发,-1等于无条件触发

Stack.Condition=EQ,EQ ;条件,EQ=等于,NE=不等于,GT=大于,LT=小于,GE=大于等于,LE=小于等于

Stack.ActionMode=OR ;监视多条AE时触发条件,AND=与,OR=或,AND时AE1和AE2必须同时满足,才会触发

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

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

Stack.AttachToSource=no ;触发后向Stack的来源附加AE,而不是附着对象

Stack.RemoveEffects=AE1,AE2 ;触发后移除的AE

Stack.RemoveEffectsLevel=0,0 ;触发后移除的AE对应的层数

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

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

Stack.RemoveToSource=no ;触发后向Stack的来源移除AE,而不是附着对象

Stack.TriggeredTimes=-1 ;触发多少次后移除自身

Stack.RemoveLevel=0,0 ;触发后移除指定层数监视的AE,从先赋予的开始按赋予顺序关闭,设置>0时优先级高于RemoveAll

Stack.RemoveAll=yes ;触发后移除监视的所有监视的AE

Stack.RemoveSkipNext=no ;触发后移除监视的AE,并且跳过Next

简单样例

[120mm]

Feedback.AttachEffects=Firesig

[Firesig]

Animation=INVISO

Duration=2

[AP]

AttachEffectTypes=Trigger

AttachToSource=yes

CellSpread=2

[Trigger]

Stack.Watch=Firesig

Stack.Level=1

Stack.Condition=GE

Stack.AttachEffects=WEAPON

Stack.AttachToSource=yes

Duration=400

Cumulative=attacker

Stack.TriggeredTimes=3

MaxStack=3

[WEAPON]

AutoWeapon.Types=MissileLauncher

AutoWeapon.IsAttackerMark=yes

AutoWeapon.ReceiverAttack=no

AutoWeapon.FireOnce=yes