把时间、区域与增援串成一个事件
让两项条件同时满足后只触发一次,学会追踪地图对象间的连接
把目标写成可判断的条件
目标设为开局经过 20 秒,并且两辆防守车在指定区域停留 3 秒,再发一批增援,时间条件、单位检测和结果各用一个对象,这样可以单独检查每一步,不必把全部规则塞进同一个对象
检测对象只描述区域和单位
unitDetect 的矩形是检查范围,team 指定队伍,onlyWithTag 对应单位 core 的 v08defender 标签,minUnits 为 2,warmup 表示条件要持续满足,先确认地图真的存在队伍 0,再放入两辆带标签的单位
<object name="v08_zone" type="unitDetect" x="200" y="200" width="160" height="120">
<properties>
<property name="team" value="0"/>
<property name="onlyWithTag" value="v08defender"/>
<property name="minUnits" value="2"/>
<property name="warmup" value="3s"/>
</properties>
</object>明确所有条件还是任一条件
增援对象的 activatedBy 连接时间和区域检测,allToActivate 设为 true 表示两者都要满足,repeatCount 为 1 表示最多激活一次,如果省略所有条件的要求,任意一条上游成立就可能提前触发
<object name="v08_reward" type="unitAdd" x="400" y="280" width="20" height="20">
<properties>
<property name="team" value="0"/>
<property name="activatedBy" value="v08_clock,v08_zone"/>
<property name="allToActivate" value="true"/>
<property name="repeatCount" value="1"/>
<property name="spawnUnits" value="rwa08Firecontrol*1,rwa08Skyguard*1"/>
</properties>
</object>按未满足和已满足分别观察
使用有效地图的副本,把配套 XML 对象合入 triggers 层,它不是独立地图,先只让时间满足,再只放一辆车,最后放入两辆并保持 3 秒,观察增援是否只出现一批,地图 XML 的 alsoActivate、activatedBy 与单位 INI 的动作引用属于两套连接规则
动手练习
把人数要求改为 3,并把时间门槛改为 30 秒,写下哪些观察场景应当触发或不触发