Skip to content

Commit d078bae

Browse files
authored
Merge pull request #28 from tobby3600/main
逻辑节更新4
2 parents 9b6035c + 71ca7c9 commit d078bae

2 files changed

Lines changed: 177 additions & 3 deletions

File tree

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@
5656
<a href="https://github.com/tobby3600">
5757
<img src="https://avatars.githubusercontent.com/u/79432329?v=4" width="100;" alt="tobby3600"/>
5858
<br />
59-
<sub><b>Null</b></sub>
59+
<sub><b>Tobby</b></sub>
6060
</a>
6161
</td></tr>
6262
</table>

rustedwarfareapicode/src/Unit/loginboolean.md

Lines changed: 176 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -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

285316
self.hasTakenDemage()
@@ -458,4 +489,147 @@ setUnitMemory:Afloat[index] = thisActionTarget.readUnitMemory("Afloat",type="flo
458489
```ini
459490
if 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

Comments
 (0)