@@ -139,7 +139,7 @@ autoTrigger:if (memory.a < memory.b or memory.a > memory.c) and not memory.a < m
139139考考你,在上述这个例子中,满足什么条件才会触发?
140140```
141141``` bash [显示答案]
142- 答案:a必须满足小于b和大于c中的一个,且a必须小于c ,自动触发才会被触发。
142+ 答案:a必须满足小于b和大于c中的一个,且a必须小于d ,自动触发才会被触发。
143143```
144144:::
145145
@@ -280,6 +280,37 @@ self.numberOfQueuedWaypoints()
280280
281281` self.numberOfQueuedWaypoints() ` 用于返回队列中路径点的数量。格式为` self.numberOfQueuedWaypoints(type="路径点类型") ` 。
282282
283+ #### 单位运动与定位
284+ 这部分代码的返回值全部为` boolean ` 类型,用于检测单位的运动和位置情况
285+ 1 . ` self.underwater/self.isUnderwater() ` 单位在水下
286+ 2 . ` self.gound/self.ground/self.isAtGroundHeight() ` 单位位于地面高度
287+ 3 . ` self.flying/self.isFlying() ` 单位在飞行
288+ 4 . ` self.isMoving() ` 单位正在移动
289+ 5 . ` self.isAtTopSpeed() ` 单位处于最高速度
290+ 6 . ` self.inwater/self.isInWater() ` 单位在水中
291+ 7 . ` self.isReversing() ` 单位在倒车
292+ 8 . ` self.isOverwater() ` 单位在水上(在水上方或接触水)
293+ 9 . ` self.isOverLiquid() ` 单位在液体上(岩浆等)
294+ 10 . ` self.isOverClift/self.isOverCliff() ` 单位在悬崖上
295+ 11 . ` self.isOverOpenLand() ` 单位在开阔的陆地上
296+ 12 . ` self.isTransportUnloading() ` 单位正在卸载单位
297+ 13 . ` self.isOverPassableTile() ` 单位在可通过的地块上(可通过加参数` type=地块类型 ` 来指定特定类型的地块)
298+
299+
300+ 附移动类型:
301+ | 英文 | 移动类型 |
302+ | ------------------| -------|
303+ | NONE | 无 |
304+ | LAND | 陆地 |
305+ | BUILDING | 建筑 |
306+ | AIR | 空中 |
307+ | WATER | 水中 |
308+ | HOVER | 两栖 |
309+ | OVER_CLIFF | 跨悬崖 |
310+ | OVER_CLIFF_WATER | 跨水和悬崖 |
311+
312+
313+
283314### 单位计时
284315
285316self.hasTakenDemage()
@@ -458,4 +489,147 @@ setUnitMemory:Afloat[index] = thisActionTarget.readUnitMemory("Afloat",type="flo
458489``` ini
459490if parent.readUnitMemory(" boostTarget" , type =" unit" ) == self
460491# 如果 父单位内存boostTarget的值等于自己
461- ```
492+ ```
493+
494+ ### 单位参照
495+
496+ #### 当前动作目标
497+ ::: info
498+ ` thisActionTarget ` 是一条用于获取当前行动目标的代码,不同的行动中,` thisActionTarget ` 也不同(或没有)。
499+ 以下是不同情况下的` thisActionTarget ` 。
500+ :::
501+
502+ fireTurretXAtGround: mainTurret <br >
503+ 此时` thisActionTarget ` 是目标地面位置的标记
504+
505+ alsoTriggerAction: x <br >
506+ 此时` thisActionTarget ` 是原动作的` thisActionTarget `
507+
508+ [ turret] onShoot_triggerActions: x <br >
509+ 此时` thisActionTarget ` 是被击中的目标
510+
511+ takeResources_triggerActionIfAnyCollected: x <br >
512+ 此时` thisActionTarget ` 是该资源
513+
514+ addWaypoint_triggerActionIfMatched: x <br >
515+ 此时` thisActionTarget ` 是搜索到的标记/目标
516+
517+ autoTriggerOnEvent: tookDamage <br >
518+ 此时` thisActionTarget ` 是造成伤害的单位
519+
520+ autoTriggerOnEvent: killedAnyUnit <br >
521+ 此时` thisActionTarget ` 是被杀死的单位
522+
523+ autoTriggerOnEvent: transportingNewUnit <br >
524+ 此时` thisActionTarget ` 是被运输的单位
525+
526+ autoTriggerOnEvent: transportUnloadedOrRemovedUnit <br >
527+ 此时` thisActionTarget ` 是被卸载打单位
528+
529+ autoTriggerOnEvent: queuedUnitFinished <br >
530+ 此时` thisActionTarget ` 是创建的新单位
531+
532+ autoTriggerOnEvent: touchTargetSuccess <br >
533+ 此时` thisActionTarget ` 是接触的目标
534+
535+ <!-- 这一段内容是这样的,不知道怎么优化格式好一点,ling帮帮 :D -->
536+
537+ #### 杂项
538+
539+ attachment
540+ 代码: self .attachment() 中文释义:附属物 返回类型: unit /marker<br >
541+
542+ ` attachment ` 用于获取单位特定附属物的单位参考,参数有` slot ` 和` withFlag ` 。<br >
543+ ` slot ` 参数即代码中` [attachment_abc] ` 的` abc ` ,` withFlag ` 参数用于获取拥有指定标签的附属物。
544+
545+ ::: code-group
546+ ``` ini{2} [演示例子]
547+ self.attachment(withTag="x").lastDamagedBy.getAsMarker()
548+ #这里获取有x标签的附属物,然后获取此附属物上一个攻击者,并创建标记
549+ ```
550+ :::
551+
552+ transporting
553+ 代码: self .transporting() 中文释义:运载的单位 返回类型: unit /marker<br >
554+
555+ ` transporting ` 用于获取单位运输队列中特定单位的单位参考,参数有` slot ` 。<br >
556+ 与` attachment ` 不同,` transporting ` 的` slot ` 参数为数字,即运输队列的第几个。
557+
558+ attacking
559+ 代码: self .attacking() 中文释义:攻击目标 返回类型: unit /marker<br >
560+
561+ ` attacking ` 用于获取单位的攻击目标。
562+
563+ ::: warning
564+ attacking不一定是正在攻击的目标,<font color =orange >只要是设定了攻击目标都会存在</font >。
565+ :::
566+
567+ lastDamagedBy
568+ 代码: self .lastDamagedBy() 中文释义:最后伤害源 返回类型: unit /marker<br >
569+ ` attacking ` 用于获取最后攻击该单位的单位。
570+
571+ parent
572+ 代码: self .parent() 中文释义:父单位 返回类型: unit /marker<br >
573+ ` parent ` 用于获取单位的附属主单位或运输单位。<br >
574+ 当单位离开附属/运输时,父单位会为` null ` ,因此可以用于检测单位是否被运输/在附属中。
575+
576+ activeWaypointTarget
577+ 代码: self .activeWaypointTarget() 中文释义:自身活动的路径点 返回类型: unit /marker<br >
578+ ` activeWaypointTarget ` 用于获取自身正在进行的路径点,参数有` type ` 。<br >
579+ ` type ` 参数用于指定路径点类型。
580+
581+ customTarget1
582+ 代码: self .customTarget1() 中文释义:自定义目标1 返回类型: unit /marker<br >
583+ ` customTarget1 ` 是铁锈内置的unit类型内存,<font color =orange >默认值为创建该单位的单位</font >。
584+
585+ customTarget2
586+ 代码: self .customTarget2() 中文释义:自定义目标1 返回类型: unit /marker<br >
587+ ` customTarget2 ` 是铁锈内置的unit类型内存。
588+
589+ nearestUnit
590+ 代码: self .nearestUnit() 中文释义:指定最近单位 返回类型: unit /marker<br >
591+ ` nearestUnit ` 用于获取满足条件的最近单位,参数有` withinRange ` 、` withTag ` 、` relation ` 。
592+ ` withinRange ` :指定最大搜索范围(最高为1000)
593+ ` withTag ` :指定需要含有的标签
594+ ` relation ` :目标单位与自己的关系(与路径点靠近类型相同)
595+
596+ | 英文 | 关系类型 |
597+ | ------------| ------|
598+ | any | 所有 |
599+ | enemy | 敌对 |
600+ | own | 己方 |
601+ | ally | 盟友 |
602+ | allyNotOwn | 仅盟友 |
603+ | notOwn | 除己方 |
604+ | neutral | 中立 |
605+
606+ globalSearchForFirstUnit
607+ 代码: self .globalSearchForFirstUnit() 中文释义:指定最近单位 返回类型: unit /marker<br >
608+ ` globalSearchForFirstUnit ` 用于在全局范围内搜索第一个满足条件的最近单位,参数有` withTag ` 、` relation ` ,用法与` nearestUnit ` 基本相同。
609+
610+ nullUnit
611+ 代码: nullUnit 中文释义:空单位 返回类型: unit /marker<br >
612+ ` nullUnit ` 是铁锈的空单位,用于比较/判断。
613+
614+ #### 标记
615+
616+ getAsMarker
617+ 代码: self .getAsMarker() 中文释义:获取标记 返回类型: unit /marker<br >
618+ ` getAsMarker ` 用于在指定单位创建标记。标记的创建速度非常快,不再需要时会自动删除。<br >
619+ 标记不链接到任何单位并且在单位死亡时仍然存在,在源头移动时保持不变。
620+
621+ getOffsetAbsolute
622+ 代码: self .getOffsetAbsolute() 中文释义:获取绝对偏移标记 返回类型: unit /marker<br >
623+ ` getOffsetAbsolute ` 用于在指定单位创建一个绝对偏移后的标记。可用的参数有` x ` 、` y ` 、` height ` (-y为北,+x为东)。
624+
625+ getOffsetRelative
626+ 代码: self .getOffsetRelative() 中文释义:获取相对偏移标记 返回类型: unit /marker<br >
627+ ` getOffsetRelative ` 用于在指定单位创建一个相对偏移后的标记。可用的参数有` x ` 、` y ` 、` height ` (+y为前,-为左)、` dirOffset ` (角度偏移)。
628+
629+ ::: tip
630+ 相对偏移可以理解为<font color =orange >在单位自己位置以自己的方向建立一个平面直角坐标系</font >,然后计算在这个坐标系内的便宜,并返回地图中大坐标系的单位参考。
631+ :::
632+
633+ eventSource
634+ 代码: eventSource 中文释义:事件源 返回类型: event <br >
635+ ` eventSource ` 用于获取` autoTriggerOnEvent ` 当前触发器,没有则返回` null ` ,可以看作对于事件的` autoTriggerOnEvent ` 。
0 commit comments