Kratos:说明书/叠层检测:修订间差异
创建页面,内容为“== '''基础特性''' == 此AE附着在物体上后,每帧判定物体身上指定名称AE(可以是几个判定对象)的层数。 层数达成要求时,添加或删除指定的AE。可以指定增删发生在检测器的附着对象上,或检测器的来源上。这样添加的AE默认其来源为检测器的附着对象。 == '''但是你不要以为这东西只能做条件判定用''' == 众所周知,AE的Next语句只能填写1个对象。当…” |
|||
| (未显示3个用户的14个中间版本) | |||
| 第1行: | 第1行: | ||
[[Category:Kratos说明书]] | |||
== '''基础特性''' == | == '''基础特性''' == | ||
此AE附着在物体上后,每帧判定物体身上指定名称AE(可以是几个判定对象)的层数。 | 此AE附着在物体上后,每帧判定本AE附着的物体身上指定名称AE(可以是几个判定对象)的层数。 | ||
层数达成要求时,添加或删除指定的AE。可以指定增删发生在检测器的附着对象上,或检测器的来源上。这样添加的AE默认其来源为检测器的附着对象。 | 层数达成要求时,添加或删除指定的AE。可以指定增删发生在检测器的附着对象上,或检测器的来源上。这样添加的AE默认其来源为检测器的附着对象。 | ||
如果检测的ae没有任何实际效果,一般称为信号。 | |||
这个机制存在联机方面的重大缺陷,极其容易导致断连!!! | |||
== '''但是你不要以为这东西只能做条件判定用''' == | == '''但是你不要以为这东西只能做条件判定用''' == | ||
| 第10行: | 第16行: | ||
== '''已知bug''' == | == '''已知bug''' == | ||
Stack.RemoveEffectsSkipNext在某些情况下会把Next整个语句都干爆掉。谨慎使用这一机制,如无必要,不要使用。 | '''Stack.RemoveEffectsSkipNext'''和'''Stack.RemoveSkipNext'''在某些情况下会把Next整个语句都干爆掉。谨慎使用这一机制,如无必要,不要使用。<br>如确实有此功能需求,可参考[[Kratos:说明书/运用范例和模板|'''运用范例和模板''']]中给出的实例<br>检测任何信号,信号AE必须不得为'''仅 1 帧'''的,否则有概率爆炸,无法触发。同时,检测器自己也不要少于2帧,否则有概率触发不了。 | ||
== ''' | == [AttachEffectTypes] == | ||
'''Stack.Watch=(AttachEffectType),(AttachEffectType)''' | |||
待监视的AE,'''默认none''' | |||
Stack.Level= | '''Stack.Level=(Ingeter),(Ingeter)''' | ||
监视的AE叠加到多少层时触发,-1等于无条件触发,'''默认0,0''' | |||
Stack. | '''Stack.Condition= (two comma-separated strings - Enumeration <code><nowiki>[EQ|NE|GT|LT|GE|LE]</nowiki></code>)''' | ||
条件,'''默认 EQ,EQ''' | |||
{| class="wikitable" | |||
! 值 !! 含义 | |||
|- | |||
| EQ || 等于 | |||
|- | |||
| NE || 不等于 | |||
|- | |||
| GT || 大于 | |||
|- | |||
| LT || 小于 | |||
|- | |||
| GE || 大于等于 | |||
|- | |||
| LE || 小于等于 | |||
|} | |||
Stack. | '''Stack.ActionMode=(Special)''' | ||
监视多条AE时触发条件,AND时AE1和AE2必须同时满足,才会触发,'''默认OR''' | |||
'''AND''':与 | |||
'''OR''':或 | |||
Stack. | '''Stack.AttachEffects=(List of AttachEffectType)''' | ||
触发后赋予的新AE,'''默认none''' | |||
Stack. | '''Stack.AttachChances=(List of Integer - Precent)''' | ||
附加效果的成功率,'''默认100%,100%''' | |||
Stack. | '''Stack.AttachToSource=(Boolean)''' | ||
触发后向Stack的来源附加AE,而不是附着对象,'''默认no''' | |||
= | '''Stack.RemoveEffects=(List of AttachEffectType)''' | ||
触发后移除的AE,'''默认none''' | |||
'''Stack.RemoveEffectsLevel=(List of Integer)''' | |||
触发后移除的AE对应的层数,'''默认0,0''' | |||
'''Stack.RemoveEffectsWithMarks=(List of MarkType)''' | |||
触发后移除带这些标记的AE,'''默认none''' | |||
'''Stack.RemoveEffectsSkipNext=(Boolean)''' | |||
触发后移除的AE将跳过Next,'''默认no''' | |||
'''Stack.RemoveToSource=(Boolean)''' | |||
触发后向Stack的来源移除AE,而不是附着对象,'''默认no''' | |||
Stack. | '''Stack.TriggeredTimes=(Integer)''' | ||
触发多少次后移除自身,'''默认-1''' | |||
Stack. | '''Stack.RemoveLevel=(List of Integer)''' | ||
触发后移除指定层数监视的AE,从先赋予的开始按赋予顺序关闭,设置>0时优先级高于'''RemoveAll''','''默认0,0''' | |||
Stack. | '''Stack.RemoveAll=(Boolean)''' | ||
触发后移除监视的所有监视的AE,'''默认yes''' | |||
这句在启用时,如果多个Stack侦测同一个信号,会在触发任意一个后直接移除信号,使得其他Stack无法触发。非必要不要写yes。 | |||
Stack. | '''Stack.RemoveSkipNext=(Boolean)''' | ||
触发后移除监视的AE,并且跳过Next,'''默认no''' | |||
[WEAPON] | == 简单样例 == | ||
[[File:Stack作为触发器.gif|效果如上|thumb]] | |||
AutoWeapon.Types=MissileLauncher | [120mm] | ||
Feedback.AttachEffects=Firesig | |||
AutoWeapon.IsAttackerMark=yes | |||
[Firesig] | |||
AutoWeapon.ReceiverAttack=no | Animation=INVISO | ||
Duration=2 | |||
AutoWeapon.FireOnce=yes | |||
[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 | |||
2025年10月29日 (三) 08:58的最新版本
基础特性
此AE附着在物体上后,每帧判定本AE附着的物体身上指定名称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和Stack.RemoveSkipNext在某些情况下会把Next整个语句都干爆掉。谨慎使用这一机制,如无必要,不要使用。
如确实有此功能需求,可参考运用范例和模板中给出的实例
检测任何信号,信号AE必须不得为仅 1 帧的,否则有概率爆炸,无法触发。同时,检测器自己也不要少于2帧,否则有概率触发不了。
[AttachEffectTypes]
Stack.Watch=(AttachEffectType),(AttachEffectType)
待监视的AE,默认none
Stack.Level=(Ingeter),(Ingeter)
监视的AE叠加到多少层时触发,-1等于无条件触发,默认0,0
Stack.Condition= (two comma-separated strings - Enumeration [EQ|NE|GT|LT|GE|LE])
条件,默认 EQ,EQ
| 值 | 含义 |
|---|---|
| EQ | 等于 |
| NE | 不等于 |
| GT | 大于 |
| LT | 小于 |
| GE | 大于等于 |
| LE | 小于等于 |
Stack.ActionMode=(Special)
监视多条AE时触发条件,AND时AE1和AE2必须同时满足,才会触发,默认OR
AND:与
OR:或
Stack.AttachEffects=(List of AttachEffectType)
触发后赋予的新AE,默认none
Stack.AttachChances=(List of Integer - Precent)
附加效果的成功率,默认100%,100%
Stack.AttachToSource=(Boolean)
触发后向Stack的来源附加AE,而不是附着对象,默认no
Stack.RemoveEffects=(List of AttachEffectType)
触发后移除的AE,默认none
Stack.RemoveEffectsLevel=(List of Integer)
触发后移除的AE对应的层数,默认0,0
Stack.RemoveEffectsWithMarks=(List of MarkType)
触发后移除带这些标记的AE,默认none
Stack.RemoveEffectsSkipNext=(Boolean)
触发后移除的AE将跳过Next,默认no
Stack.RemoveToSource=(Boolean)
触发后向Stack的来源移除AE,而不是附着对象,默认no
Stack.TriggeredTimes=(Integer)
触发多少次后移除自身,默认-1
Stack.RemoveLevel=(List of Integer)
触发后移除指定层数监视的AE,从先赋予的开始按赋予顺序关闭,设置>0时优先级高于RemoveAll,默认0,0
Stack.RemoveAll=(Boolean)
触发后移除监视的所有监视的AE,默认yes
这句在启用时,如果多个Stack侦测同一个信号,会在触发任意一个后直接移除信号,使得其他Stack无法触发。非必要不要写yes。
Stack.RemoveSkipNext=(Boolean)
触发后移除监视的AE,并且跳过Next,默认no
简单样例

[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