我在用场景编辑器制作剧情地图,想在地图开始时让单位预先驻扎在建筑或船只中,但编辑器里没有直接的操作界面,请问如何实现这个效果?
我在用场景编辑器制作剧情地图,想在地图开始时让单位预先驻扎在建筑或船只中,但编辑器里没有直接的操作界面,请问如何实现这个效果?
目前有四种绕过此限制的方法,图形化界面解决方案取决于工单 #3008 的进展。
在场景编辑器(即Atlas)中启动模拟,手动驻扎单位,然后在模拟仍运行时保存地图。
编辑 .xml 文件,插入 Garrison 和 GarrisonedEntity,参见
skirmishes/sicilia_nomad_2p.xml
作为示例。操作不当容易导致错误。
打开 .xml 文件,在某些 Script 标签中粘贴以下代码,将 HOLDER_ID 和 ENT1_ID, ENT2_ID, ENTN_ID, ... 替换为实体对应的 uid 编号(可在 .xml 文件中找到,如 <Entity uid="3435">)。通过 Atlas 打开地图后,单位应已在建筑内部。保存地图后,再次打开 .xml 文件并删除 Script 标签和其中的代码。
<?xml version="1.0" encoding="UTF-8"?>
<Scenario version="7">
<Script>
let cmpGarrisonHolder = Engine.QueryInterface(HOLDER_ID, IID_GarrisonHolder)
if (cmpGarrisonHolder)
cmpGarrisonHolder.initGarrison = [ENT1_ID, ENT2_ID, ENTN_ID, ...];
</Script>
在地图中添加一个触发器脚本,在地图启动时自动将实体驻扎到特定建筑中。