「How settlements work」修訂間的差異
(→未来SDK支持相关) |
(→距离缓存相关) |
||
行 10: | 行 10: | ||
== 距离缓存相关 == | == 距离缓存相关 == | ||
+ | 目前尚不清楚距离缓存有何作用。在不使用它时,AI仍旧可正常访问定居点,招募军队、贩卖俘虏和购买物品,玩家也可以正常访问定居点。距离缓存可能与一些AI决策有关,这只是猜测。这个距离缓存可以通过 SettlementPositionScript 中的 SaveSettlementDistanceCache() 方法创建,但 SettlementPositionScript 目前未在游戏中使用,它可能用于前面所提到的地图编辑器。这个类可以在 SandBox.View.dll 中找到。 | ||
+ | |||
== 如何覆盖游戏默认定居点 == | == 如何覆盖游戏默认定居点 == |
於 2020年4月23日 (四) 22:41 的修訂
定居點工作機制
本遊戲添加定居點的機制就是結合兩個XML文件:一個定義定居點的類型(藏身點、村莊、城鎮、城堡等),還有如產出、繁榮、村莊所屬的城鎮等其它相關參數,這個定義在基礎遊戲的 Modules/SandBox/ModuleData/settlements.xml 中。另一個文件是定義距離緩存的,在 Modules/SandBox/ModuleSata/Settlements_distance_cache.bin 中,可以通過代碼生成。
但以上定義並沒有定義定居點的實際外觀,外觀都定義在 Modules/SandBox/SceneObj/Main_map/scene.xscene 文件中。
未來SDK支持相關
從其它可用的 DLLs 中可以看出,未來定居點應該是可以通過編輯器直接編輯的。這個編輯器可以幫助放置定居點、定義定居點外觀和自動生成距離緩存等相關文件。但是在目前,編輯器還未發佈,只能藉助於XML文件進行修改與定義。
距離緩存相關
目前尚不清楚距離緩存有何作用。在不使用它時,AI仍舊可正常訪問定居點,招募軍隊、販賣俘虜和購買物品,玩家也可以正常訪問定居點。距離緩存可能與一些AI決策有關,這只是猜測。這個距離緩存可以通過 SettlementPositionScript 中的 SaveSettlementDistanceCache() 方法創建,但 SettlementPositionScript 目前未在遊戲中使用,它可能用於前面所提到的地圖編輯器。這個類可以在 SandBox.View.dll 中找到。