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

来源与附着对象:修订间差异

来自RA2DIY
Kenosis留言 | 贡献
Kenosis留言 | 贡献
第14行: 第14行:


如 P 上写着 <code>AttachEffectTypes=AE</code>,则 AE 的附着对象为 P,来源为 <font style="color:red">A</font>。
如 P 上写着 <code>AttachEffectTypes=AE</code>,则 AE 的附着对象为 P,来源为 <font style="color:red">A</font>。
但是如果P上的AE是自动武器,此自动武器永远视为<font style="color:red">A</font>发射的,而不是抛射体P发射的,用自动武器贴上的AE来源一律视为<font style="color:red">A</font>而不是抛射体P。


如 W 上写着 <code>AttachEffectTypes=AE</code>,命中 <font style="color:blue">B</font> 后,AE 附着在 <font style="color:blue">B</font> 上,来源为 <font style="color:red">A</font>。
如 W 上写着 <code>AttachEffectTypes=AE</code>,命中 <font style="color:blue">B</font> 后,AE 附着在 <font style="color:blue">B</font> 上,来源为 <font style="color:red">A</font>。
第21行: 第23行:
如果 W 上写的 AE 是<b>自伤</b>,则 <font style="color:blue">B</font> 受到来自 <font style="color:red">A</font> 的伤害(正常结算击杀经验),搭配 <code>ForceMission</code> 弹头即可达成点对点的嘲讽。
如果 W 上写的 AE 是<b>自伤</b>,则 <font style="color:blue">B</font> 受到来自 <font style="color:red">A</font> 的伤害(正常结算击杀经验),搭配 <code>ForceMission</code> 弹头即可达成点对点的嘲讽。


如果 W 上写着的 AE 是<b>礼物盒</b>,且 <code>GiftBox.Remove=no</code>,则 <font style="color:red">A</font> 打完 <font style="color:blue">B</font>,<font style="color:blue">B</font> 身上生成 <font style="color:green">C</font>
如果 W 上写着的 AE 是<b>礼物盒</b>,则 <font style="color:red">A</font> 打完 <font style="color:blue">B</font>,<font style="color:blue">B</font> 身上生成 <font style="color:green">C</font> 。
*如果礼物盒 AE 中指定 <code>GiftBox.AttachEffects</code>,则 <font style="color:green">C</font> 获得来自 <font style="color:blue">B</font>(生成 <font style="color:green">C</font> 的物体来源,而非礼物盒 AE 来源)的 AE。
*如果礼物盒 AE 中指定 <code>GiftBox.AttachEffects</code>,且 <code>GiftBox.Remove=no</code>,则<font style="color:blue">B</font>不会移除, <font style="color:green">C</font> 获得来自 <font style="color:blue">B</font>(生成 <font style="color:green">C</font> 的物体来源,而非礼物盒 AE 来源)的 AE。
*如果礼物盒 AE 中指定 <code>GiftBox.AttachEffects</code>,且 <code>GiftBox.Remove=yes</code>,则<font style="color:blue">B</font>移除,'''生成所属方和<font style="color:red">A</font>相同的<font style="color:green">C</font>'''。<font style="color:green">C</font>无法和<font style="color:blue">B</font>互动,身上的AE来源已经没有意义,毕竟<font style="color:blue">B</font>已经移除了。为了保持<font style="color:green">C</font>和<font style="color:blue">B</font>的所属一致,礼物盒AE需要写上<code>ReceiverOwn=yes</code>


==== 对于广播的情况 ====
==== 对于广播的情况 ====
第32行: 第35行:
==== 对于复仇类的情况 ====
==== 对于复仇类的情况 ====
----
----
如果 W 上写着的 AE 是复仇类效果,则 <font style="color:red">A</font> 打完 <font style="color:blue">B</font> 后,<font style="color:blue">B</font> 获得来自 <font style="color:red">A</font> 的复仇。
如果 W 上写着的 AE 是复仇类效果,则 <font style="color:red">A</font> 打完 <font style="color:blue">B</font> 后,<font style="color:blue">B</font> 获得来自 <font style="color:red">A</font> 的复仇。设第三个单位<font style="color:green">C</font>攻击<font style="color:blue">B</font>。
 
默认情况下复仇触发后,会从<font style="color:blue">B</font>身上发射武器或粘贴AE到<font style="color:green">C。</font>


*<code>Revenge.FromSource=yes</code> 时,将会从 <font style="color:red">A</font> 上发射武器或附着 AE。
*<code>Revenge.FromSource=yes</code> 时,将会从 <font style="color:red">A</font> 上发射武器或附着 AE。

2025年3月23日 (日) 00:45的版本

这是个什么属性

除了 AttachEffectTypes 内配置的 AE 对象固有属性,如自动武器是否只发射一次,叠层检测到底检测几层外

任何AE都有两个在实际使用中才会产生的固有属性:

  • 附着对象是谁
  • AE来源是谁

许多 AE 的效果器都涉及到附着对象和 AE 来源,只读 INI 的语句含义最终绝对无法理解 AE ini如何运作,必须根据给出的规则想象物体之间的互动和 AE 溯源/ AE 链条的传递。

这个属性怎么构成


假设有单位 A,单位 B 两个单位,A 发射武器 P,使用弹头 W,抛射体 P,攻击 B

对于一般情况

如 P 上写着 AttachEffectTypes=AE,则 AE 的附着对象为 P,来源为 A

但是如果P上的AE是自动武器,此自动武器永远视为A发射的,而不是抛射体P发射的,用自动武器贴上的AE来源一律视为A而不是抛射体P。

如 W 上写着 AttachEffectTypes=AE,命中 B 后,AE 附着在 B 上,来源为 A

如上述 W 上写着 AttachToSource=yes,命中 B 后,AE 附着在 A 上,来源为 B

如果 W 上写的 AE 是自伤,则 B 受到来自 A 的伤害(正常结算击杀经验),搭配 ForceMission 弹头即可达成点对点的嘲讽。

如果 W 上写着的 AE 是礼物盒,则 A 打完 BB 身上生成 C

  • 如果礼物盒 AE 中指定 GiftBox.AttachEffects,且 GiftBox.Remove=no,则B不会移除, C 获得来自 B(生成 C 的物体来源,而非礼物盒 AE 来源)的 AE。
  • 如果礼物盒 AE 中指定 GiftBox.AttachEffects,且 GiftBox.Remove=yes,则B移除,生成所属方和A相同的CC无法和B互动,身上的AE来源已经没有意义,毕竟B已经移除了。为了保持CB的所属一致,礼物盒AE需要写上ReceiverOwn=yes

对于广播的情况


如 W 上写着的 AE 是 ReceiverOwn=no 的广播,则命中后,B 获得广播效果,粘贴 AE2,则所有广播对其他对象产生的 AE2 都来自于 A

如果上述广播 ReceiverOwn=yes,则所有广播产生的 AE2 都来自于 B

对于复仇类的情况


如果 W 上写着的 AE 是复仇类效果,则 A 打完 B 后,B 获得来自 A 的复仇。设第三个单位C攻击B

默认情况下复仇触发后,会从B身上发射武器或粘贴AE到C。

  • Revenge.FromSource=yes 时,将会从 A 上发射武器或附着 AE。
  • Revenge.ToSource=yes 时,将会发射武器或附着 AE 到 A 上。

对于叠层检测的情况


如果 W 上写着的 AE 是叠层检测,条件通过后粘贴 AE2,则 A 打完 B 后,B 获得来自 B 的 AE2。

如果上述的叠层检测 Stack.AttachToSource=yes,则AE2的去向是 A(跟随检测器来源),来源是 B

因为叠层检测用处广泛,且经常互相嵌套,其来源和附着对象常常乱成一团,在复杂 ini 中把人耍得团团转。嵌套时,必须理清相互的关系。

对于武器标记的情况


如果你使用 AutoWeapon.IsAttackerMark=yes 启用了武器标记,

  • AutoWeapon.ReceiverAttack=yes,意思为自动武器标记 AE 将会使得这个 AE 的附着对象发射武器到 AE 的来源。
  • AutoWeapon.ReceiverAttack=no,则 AE 的来源发射武器到 AE 的附着对象。

如果你的 ini 设计中存在许多 AE 嵌套,且你想和人讨论你的设计图,那么你必须声明其中所有的AE从哪里来,到哪里去,如果用效果贴,那么谁给谁贴。如此你的设计才是语言层面上可理解的。