來源與附著對象
這是個什麼屬性
除了 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從哪裡來,到哪裡去,如果用效果貼,那麼誰給誰貼。如此你的設計才是語言層面上可理解的。