来源与附着对象:修订间差异
小无编辑摘要 |
|||
| (未显示2个用户的5个中间版本) | |||
| 第13行: | 第13行: | ||
==== 对于一般情况 ==== | ==== 对于一般情况 ==== | ||
如 P 上写着 | 如 P 上写着 {{cd|AttachEffectTypes{{=}}AE}},则 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 上写着 | 如 W 上写着 {{cd|AttachEffectTypes{{=}}AE}},命中 <font style="color:blue">B</font> 后,AE 附着在 <font style="color:blue">B</font> 上,来源为 <font style="color:red">A</font>。 | ||
如上述 W 上写着 | 如上述 W 上写着 {{cd|AttachToSource{{=}}yes}},命中 <font style="color:blue">B</font> 后,AE 附着在 <font style="color:red">A</font> 上,来源为 <font style="color:blue">B</font>。 | ||
如果 W 上写的 AE 是<b>自伤</b>,则 <font style="color:blue">B</font> 受到来自 <font style="color:red">A</font> 的伤害(正常结算击杀经验),搭配 | 如果 W 上写的 AE 是<b>自伤</b>,则 <font style="color:blue">B</font> 受到来自 <font style="color:red">A</font> 的伤害(正常结算击杀经验),搭配 {{cd|ForceMission}} 弹头即可达成点对点的嘲讽。 | ||
如果 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> 。 | 如果 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 中指定 | *如果礼物盒 AE 中指定 {{cd|GiftBox.AttachEffects}},且 {{cd|GiftBox.Remove{{=}}no}},则<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:green">C</font> 的物体来源,而非礼物盒 AE 来源)的 AE。 | ||
*如果礼物盒 AE 中指定 | *如果礼物盒 AE 中指定 {{cd|GiftBox.AttachEffects}},且 {{cd|GiftBox.Remove{{=}}yes}},则<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 需要写上 {{cd|ReceiverOwn{{=}}yes}}。 | |||
==== 对于广播的情况 ==== | ==== 对于广播的情况 ==== | ||
---- | ---- | ||
如 W 上写着的 AE 是 | 如 W 上写着的 AE 是 {{cd|ReceiverOwn{{=}}no}} 的广播,则命中后,<font style="color:blue">B</font> 获得广播效果,粘贴 AE2,则所有广播对其他对象产生的 AE2 都来自于 <b><big><font style="color:red">A</font></big></b> | ||
如果上述广播 | 如果上述广播 {{cd|ReceiverOwn{{=}}yes}},则所有广播产生的 AE2 都来自于 <font style="color:blue">B</font>。 | ||
如果广播的是自动武器标记,则在没有 ReceiverOwn 情况下,ReceiverAttack 正常,但武器所属无法自动调整,会视为来自广播目标。掰不明白的话就记住广播贴的 AE,'''如果不是你清楚知道自己在干什么,一定要带 ReceiverOwn''' | |||
==== 对于复仇类的情况 ==== | ==== 对于复仇类的情况 ==== | ||
---- | ---- | ||
如果 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>。 | 如果 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>身上发射武器或粘 | 默认情况下复仇触发后,会从 <font style="color:blue">B</font> 身上发射武器或粘贴 AE 到 <font style="color:green">C。</font> | ||
* | *{{cd|Revenge.FromSource{{=}}yes}} 时,将会从 <font style="color:red">A</font> 上发射武器或附着 AE。 | ||
* | *{{cd|Revenge.ToSource{{=}}yes}} 时,将会发射武器或附着 AE 到 <font style="color:red">A</font> 上。 | ||
==== 对于叠层检测的情况 ==== | ==== 对于叠层检测的情况 ==== | ||
| 第46行: | 第49行: | ||
如果 W 上写着的 AE 是叠层检测,条件通过后粘贴 AE2,则 <font style="color:red">A</font> 打完 <font style="color:blue">B</font> 后,<font style="color:blue">B</font> 获得来自 <font style="color:blue">B</font> 的 AE2。 | 如果 W 上写着的 AE 是叠层检测,条件通过后粘贴 AE2,则 <font style="color:red">A</font> 打完 <font style="color:blue">B</font> 后,<font style="color:blue">B</font> 获得来自 <font style="color:blue">B</font> 的 AE2。 | ||
如果上述的叠层检测 | 如果上述的叠层检测 {{cd|Stack.AttachToSource{{=}}yes}},则AE2的去向是 <font style="color:red">A</font>(跟随检测器来源),来源是 <font style="color:blue">B</font>。 | ||
因为叠层检测用处广泛,且经常互相嵌套,其来源和附着对象常常乱成一团,在复杂 ini 中把人耍得团团转。嵌套时,必须理清相互的关系。 | 因为叠层检测用处广泛,且经常互相嵌套,其来源和附着对象常常乱成一团,在复杂 ini 中把人耍得团团转。嵌套时,必须理清相互的关系。 | ||
| 第52行: | 第55行: | ||
==== 对于武器标记的情况 ==== | ==== 对于武器标记的情况 ==== | ||
---- | ---- | ||
如果你使用 | 如果你使用 {{cd|AutoWeapon.IsAttackerMark{{=}}yes}} 启用了武器标记, | ||
*若 | * 若 {{cd|AutoWeapon.ReceiverAttack{{=}}yes}},意思为自动武器标记 AE 将会使得这个 AE 的附着对象发射武器到 AE 的来源。 | ||
*若 | * 若 {{cd|AutoWeapon.ReceiverAttack{{=}}no}},则 AE 的来源发射武器到 AE 的附着对象。 | ||
若 | |||
若 {{cd|AutoWeapon.ReceiverOwnBullet{{=}}yes}},则炮弹视为AE的附着对象发射。炮弹的归属和其他自动武器语句无关,包括 {{cd|AutoWeapon.FireToTarget}} 或 {{cd|AutoWeapon.ReceiverAttack}},也就是可以从 A 的炮口发射出属于 B 的炮弹。 | |||
如果你的 ini 设计中存在许多 AE 嵌套,且你想和人讨论你的设计图,那么你必须声明其中所有的AE从哪里来,到哪里去,如果用效果贴,那么谁给谁贴。如此你的设计才是语言层面上可理解的。 | 如果你的 ini 设计中存在许多 AE 嵌套,且你想和人讨论你的设计图,那么你必须声明其中所有的AE从哪里来,到哪里去,如果用效果贴,那么谁给谁贴。如此你的设计才是语言层面上可理解的。 | ||
[[Category:教程]] | |||
2025年10月2日 (四) 22:33的最新版本
这是个什么属性
除了 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 打完 B,B 身上生成 C 。
- 如果礼物盒 AE 中指定
GiftBox.AttachEffects,且GiftBox.Remove=no,则B不会移除, 生成所属方和 A 相同的 C ,获得来自 B(生成 C 的物体来源,而非礼物盒 AE 来源)的 AE。 - 如果礼物盒 AE 中指定
GiftBox.AttachEffects,且GiftBox.Remove=yes,则B移除,生成所属方和 A 相同的 C。C 无法和 B 互动,身上的 AE 来源已经没有意义,毕竟 B 已经移除了。 - 如果需要保持 C 和 B 的所属一致,礼物盒 AE 需要写上
ReceiverOwn=yes。
对于广播的情况
如 W 上写着的 AE 是 ReceiverOwn=no 的广播,则命中后,B 获得广播效果,粘贴 AE2,则所有广播对其他对象产生的 AE2 都来自于 A
如果上述广播 ReceiverOwn=yes,则所有广播产生的 AE2 都来自于 B。
如果广播的是自动武器标记,则在没有 ReceiverOwn 情况下,ReceiverAttack 正常,但武器所属无法自动调整,会视为来自广播目标。掰不明白的话就记住广播贴的 AE,如果不是你清楚知道自己在干什么,一定要带 ReceiverOwn
对于复仇类的情况
如果 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 的附着对象。
若 AutoWeapon.ReceiverOwnBullet=yes,则炮弹视为AE的附着对象发射。炮弹的归属和其他自动武器语句无关,包括 AutoWeapon.FireToTarget 或 AutoWeapon.ReceiverAttack,也就是可以从 A 的炮口发射出属于 B 的炮弹。
如果你的 ini 设计中存在许多 AE 嵌套,且你想和人讨论你的设计图,那么你必须声明其中所有的AE从哪里来,到哪里去,如果用效果贴,那么谁给谁贴。如此你的设计才是语言层面上可理解的。