单位引用:修订间差异
无编辑摘要
小 (→标记的用法) |
无编辑摘要 |
||
| 第183行: | 第183行: | ||
与[[自定义内存]]相比,虽然'''自定义目标1'''<code>customTarget1</code>'''自定义目标2'''<code>customTarget2</code>与<code>@memory x:unit</code>(<code>Unit</code>类型的内存)用途相当,都可用于存储单位,但与内存不同,自定义目标在单位死亡、删除的情况下会自动清除。内存需要手动管理,而自定义目标会自动管理。 | 与[[自定义内存]]相比,虽然'''自定义目标1'''<code>customTarget1</code>'''自定义目标2'''<code>customTarget2</code>与<code>@memory x:unit</code>(<code>Unit</code>类型的内存)用途相当,都可用于存储单位,但与内存不同,自定义目标在单位死亡、删除的情况下会自动清除。内存需要手动管理,而自定义目标会自动管理。 | ||
内存可以用高频触发行动复现。 | 内存可以用高频触发行动复现。 | ||
<nowiki>{{折叠|复现CustomTarget的例子|<pre>[core]# 高频,一秒六十次。autoTriggerCooldownTime: 1autoTriggerCooldownTime_allowDangerousHighCPU: true# 不推荐使用关键字命名内存。@memory customTarget1: unit[hiddenAction_update]# 高频触发检测单位是否死亡或删除。autoTrigger: if substring( str(memory.customTarget1), length(str(memory.customTarget1)) - 7, length(str(memory.customTarget1)) - 1 ) == "[dead]" or substring( str(memory.customTarget1), length(str(memory.customTarget1)) - 10, length(str(memory.customTarget1)) - 1 ) == "[deleted]"# 清空内存。setUnitMemory: customTarget1 = nullUnit</pre>}}</nowiki> | |||
单位生产(<code>canBuild</code>)、产生(<code>produceUnits</code><code>spawnUnit(s)</code>)出来时,该出厂单位的'''自定义目标1'''默认为工厂。工厂不必通过<code>queuedUnitFinished</code>事件配合<code>sendMessageTo</code>告诉出厂单位谁是工厂。 | 单位生产(<code>canBuild</code>)、产生(<code>produceUnits</code><code>spawnUnit(s)</code>)出来时,该出厂单位的'''自定义目标1'''默认为工厂。工厂不必通过<code>queuedUnitFinished</code>事件配合<code>sendMessageTo</code>告诉出厂单位谁是工厂。 | ||
==空引用== | ==空引用== | ||
单位引用中,'''空'''(<code>null</code>)指向不存在的单位引用。逻辑布尔值(<code>Logic Boolean</code>,类似条件判断)中,可搭配不等式避免返回<code>Unit</code>类型。[[自定义内存]]中,也可作为空值赋值,也可用于清空[[数组]]。'''空单位引用'''<code>nullUnit</code>与前者不同,不可用于清空数组。 | 单位引用中,'''空'''(<code>null</code>)指向不存在的单位引用。逻辑布尔值(<code>Logic Boolean</code>,类似条件判断)中,可搭配不等式避免返回<code>Unit</code>类型。[[自定义内存]]中,也可作为空值赋值,也可用于清空[[数组]]。'''空单位引用'''<code>nullUnit</code>与前者不同,不可用于清空数组。 | ||