diff --git a/rustedwarfareapicode/src/Unit/loginboolean.md b/rustedwarfareapicode/src/Unit/loginboolean.md index a462500..eeb349f 100644 --- a/rustedwarfareapicode/src/Unit/loginboolean.md +++ b/rustedwarfareapicode/src/Unit/loginboolean.md @@ -8,12 +8,15 @@ outline: deep 由于这个组的特殊性,格式不标准,请勿参考这个组的写法。 ::: -### 前置知识 +## 前置知识 +::: tip +以下的内容为`逻辑组前置知识`,是学习逻辑必备的前置内容。 +::: -#### 布尔值 +### 布尔值 布尔值表达“真(true)”或“假(false)”的一个状态。在铁锈中,布尔值(`boolean`)被运用于逻辑判断。 -#### 数据类型 +### 数据类型 数据类型指数据的种类,在铁锈中,不同的数据有不同的类型,不同的数据类型之间通常不能直接进行运算。 |常见数据类型英文 |存储的值类型 | @@ -27,97 +30,153 @@ outline: deep 数据类型之间的转换函数包括:`int`、`str`。 -#### 算数优先级 +### 算数优先级 与数学中计算符一样,铁锈中算数运算符有优先级区别。`%`和`*`和`/`的优先级大于`+`和`-`。 -### 比较运算符 +## 比较运算符 +::: tip +以下的内容为逻辑中用于`比较`的运算符。 +::: -#### 如果 -代码:if 中文释义:如果 +### if +#### if-代码简介 +代码:if 中文释义:如果 类型:逻辑函数 +#### if-要点指示 `if`是大部分逻辑运算的开头(select等不需要if),用于在支持逻辑的键引入逻辑判断。 - - -
-

演示例子:

-
- +#### if-演示例子 ```ini [action] autoTrigger:if self.maxHp() > memory.emx_hp ``` -#### 小于 -代码:< 中文释义:小于
+
+ +### < +#### <-代码简介 +代码:< 中文释义:小于 类型:比较运算符 +#### <-要点指示 小于用于在逻辑布尔值中比较两个数的大小,格式为`数据a < 数据b`,若`a -
-

- 要点指示:

-
- - +#### <-演示例子 ```ini [action] autoTrigger:if memory.a < memory.b ``` -#### 大于 -代码:> 中文释义:大于
-同上,格式为`数据a > 数据b`,若`a>b`则整个式子的值为`true`,否则为`false`。 +
-#### 小于等于 -代码:<= 中文释义:小于等于
-同上,若`a<=b`则整个式子的值为`true`,否则为`false`。 +### > +#### >-代码简介 +代码:> 中文释义:大于 类型:比较运算符 +#### >-要点指示 +大于用于在逻辑布尔值中比较两个数的大小,格式为`数据a > 数据b`,若`a>b`则整个式子的值为`true`,否则为`false`。 +#### >-演示例子 +```ini +[action] +autoTrigger:if memory.a > memory.b +``` -#### 大于等于 -代码:>= 中文释义:大于等于
-同上,若`a>=b`则整个式子的值为`true`,否则为`false`。 +
-#### 等于 -代码:== 中文释义:等于
+### <= +#### <=-代码简介 +代码:<= 中文释义:小于等于 类型:比较运算符 +#### <=-要点指示 +小于等于用于在逻辑布尔值中比较两个数的大小,格式为`数据a <= 数据b`,若`a<=b`则整个式子的值为`true`,否则为`false`。 +#### <=-演示例子 +```ini +[action] +autoTrigger:if memory.a <= memory.b +``` +
+ +### >= +#### >=-代码简介 +代码:>= 中文释义:大于等于 类型:比较运算符 +#### >=-要点指示 +大于等于用于在逻辑布尔值中比较两个数的大小,格式为`数据a >= 数据b`,若`a>=b`则整个式子的值为`true`,否则为`false`。 +#### >=-演示例子 +```ini +[action] +autoTrigger:if memory.a >= memory.b +``` + +
+ +### == +#### ==-代码简介 +代码:== 中文释义:等于 类型:比较运算符 +#### ==-要点指示 +等于用于在逻辑布尔值中比较值是否相同,格式为`数据a = 数据b`,若`a=b`则整个式子的值为`true`,否则为`false`。 ::: tip 请注意,铁锈中等于的符号为===在铁锈中用于赋值或参数。 ::: +#### ==-演示例子 +```ini +[action] +autoTrigger:if memory.a == memory.b +``` +
-同上,若`a=b`则整个式子的值为`true`,否则为`false`。 +### != +#### !=-代码简介 +代码:!= 中文释义:不等于 类型:比较运算符 +#### !=-要点指示 +不等于用于在逻辑布尔值中比较值是否相同,格式为`数据a = 数据b`,若`a!=b`则整个式子的值为`true`,否则为`false`。 +#### !=-演示例子 +```ini +[action] +autoTrigger:if memory.a != memory.b +``` -#### 不等于 -代码:!= 中文释义:不等于
-同上,若`a!=b`则整个式子的值为`true`,否则为`false`。 +
-### 逻辑运算符 +## 逻辑运算符 +::: tip +以下的内容为逻辑中用于`进行逻辑运算`的运算符,它们的结果都是`boolean`类型。 +::: -#### 且 -代码:and 中文释义:且
+### and +#### and-代码简介 +代码:and 中文释义:且 类型:逻辑运算符 +#### and-要点指示 ::: tip and用于连接两个逻辑判断,只有在这两个逻辑判断的值都为true时,and的值才为true。
::: - -
-

- 要点指示:

-
- - +#### and-演示例子 ```ini [action] autoTrigger:if memory.a < memory.b and memory.a > memory.c # 在这个例子中,只有a小于b且a大于c时,自动触发才会被触发 ``` -#### 或 -代码:or 中文释义:或
+
+ +### or +#### or-代码简介 +代码:or 中文释义:或 类型:逻辑运算符 +#### or-要点指示 ::: tip or用于连接两个逻辑判断,只要这两个逻辑判断的值有一个为true时,or的值就为true。 +
::: -#### 非 -代码:not 中文释义:非
+#### or-演示例子 +```ini +[action] +autoTrigger:if memory.a < memory.b or memory.a > memory.c +# 在这个例子中,只要a小于b或a大于c,自动触发就会被触发 +``` + +
+ +### not +#### not-代码简介 +代码:not 中文释义:非 类型:逻辑运算符 +#### not-要点指示 ::: tip not用于将某个逻辑判断的值取反,即`true`变`false`,`false`变`true`。 ::: @@ -127,6 +186,9 @@ autoTrigger:if memory.a < memory.b and memory.a > memory.c
推荐在不确定优先级时打括号。 ::: +#### not-演示例子 +::: +

演示例子:

@@ -141,60 +203,102 @@ autoTrigger:if (memory.a < memory.b or memory.a > memory.c) and not memory.a < m 考考你,在上述这个例子中,满足什么条件才会触发? ``` ```bash [显示答案] -答案:a必须满足小于b和大于c中的一个,且a必须小于d,自动触发才会被触发。 +答案:a必须满足小于b和大于c中的一个,且a必须不小于d,自动触发才会被触发。 ``` ::: +
-### 算数运算符 - -#### 加 -代码:+ 中文释义:加
- -加用于将两个逻辑值相加,得到结果,格式为`数据a + 数据b`。 +## 算数运算符 +::: tip +以下的内容为逻辑中用于`进行算数运算`的运算符,它们的结果类型为`参与运算的值的`类型。 +::: ::: info 不同数据类型通常不能直接进行算数运算,但在部分情况下,numberfloat类型可以混用(建议所有数值全部使用float来避免混淆)。 ::: -
-

演示例子:

-
- +### + +#### +-代码简介 +代码:+ 中文释义:加 类型:算数运算符 +#### +-要点指示 +加用于将两个逻辑值相加,得到结果,格式为`数据a + 数据b`。 +#### +-演示例子 ```ini [action] autoTrigger:if (memory.a + memory.c) < memory.b +#内存a和c的值之和需要小于b ``` -#### 减 -代码:- 中文释义:减
+
+### - +#### --代码简介 +代码:- 中文释义:减 类型:算数运算符 +#### --要点指示 减用于将两个逻辑值相减,得到结果,格式为`数据a - 数据b`。 - ::: info 对于不满足交换律的运算符,需要注意运算优先级是否正确。由于铁锈本身bug,在数学上正确的优先级不一定在铁锈中正确,因此可能出现减法顺序混乱等问题。
为了避免可能的问题,请尽量在任何不满足交换律的运算符两边打上括号。 ::: -#### 乘 -代码:* 中文释义:乘
+#### --演示例子 +```ini +[action] +autoTrigger:if (memory.a - memory.c) < memory.b +#内存a与c的值之差需要小于b +``` +
+ +### * +#### *-代码简介 +代码:* 中文释义:乘 类型:算数运算符 +#### *-要点指示 乘用于将两个逻辑值相乘,得到结果,格式为`数据a * 数据b`。 +#### *-演示例子 +```ini +[action] +autoTrigger:if (memory.a * memory.c) == memory.b +#内存a和c的乘积需要等于b +``` -#### 除 -代码:/ 中文释义:除
+
+### / +#### /-代码简介 +代码:/ 中文释义:除 类型:算数运算符 +#### /-要点指示 除用于将两个逻辑值相除,得到结果,格式为`数据a / 数据b`。 +#### /-演示例子 +```ini +[action] +autoTrigger:if (memory.a / memory.c) == memory.b +#内存a除以c的积需要等于b +``` -#### 求余 -代码:% 中文释义:求余(取模)
+
-求余用于获取两个逻辑值中,第一个除第二个的余数,格式为`数据a % 数据b`。 -例如`7%3=1(7除3余1)` +### % +#### %-代码简介 +代码:% 中文释义:求余(取模) 类型:算数运算符 +#### %-要点指示 +求余用于获取两个逻辑值中,第一个除第二个的余数,格式为`数据a % 数据b`,例如`7%3=1(7除3余1)`。 +#### %-演示例子 +```ini +[action] +autoTrigger:if (memory.a % memory.c) == memory.b +#内存a除以c的余数需要等于b +``` -### 单位统计 +
-#### 通用统计关键字 +## 单位统计 +::: tip +以下的内容为逻辑中用于`单位数值获取`的函数,它们的类型与单位此项数值对应。 +::: + +### 通用统计关键字 单位统计中部分通用的关键字: 1. `greaterThan` 大于 2. `lessThan` 小于 @@ -202,7 +306,7 @@ autoTrigger:if (memory.a + memory.c) < memory.b 4. `full` 满 5. `equalTo` 等于 -#### 内置参数 +### 内置参数-单一或无传参 单位统计中部分内置参数返回代码(由于过于简单不单独列出): 1. `self.hp()` 生命值 2. `self.maxHp()` 最大生命值 @@ -242,6 +346,10 @@ autoTrigger:if (memory.a + memory.c) < memory.b 36. `game.mapHeight()` 地图高度 37. `game.nukesEnabled()` 是否启用核武器 +### 内置参数-需要传参 + + + self.hasResources() 代码:self.hasResources() 中文释义:有资源 返回类型:boolean
@@ -283,7 +391,7 @@ self.numberOfQueuedWaypoints() `self.numberOfQueuedWaypoints()`用于返回队列中路径点的数量。格式为`self.numberOfQueuedWaypoints(type="路径点类型")`。 -#### 单位运动与定位 +### 单位运动与定位 这部分代码的返回值全部为`boolean`类型,用于检测单位的运动和位置情况 1. `self.underwater/self.isUnderwater()` 单位在水下 2. `self.gound/self.ground/self.isAtGroundHeight()` 单位位于地面高度 @@ -314,7 +422,7 @@ self.numberOfQueuedWaypoints() -### 单位计时 +## 单位计时 self.hasTakenDemage() 代码:self.hasTakenDemage() 中文释义:受到伤害 返回类型:bool
@@ -351,7 +459,7 @@ resetCustomTimer:true showMessageToPlayers:10秒过去了 ``` -### 杂项 +## 杂项 thisActionIndex/index() 代码:thisActionIndex/index() 中文释义:索引 返回类型:float(number)
@@ -494,9 +602,9 @@ if parent.readUnitMemory("boostTarget", type="unit") == self #如果 父单位内存boostTarget的值等于自己 ``` -### 单位参照 +## 单位参照 -#### 当前动作目标 +### 当前动作目标 ::: info `thisActionTarget`是一条用于获取当前行动目标的代码,不同的行动中,`thisActionTarget`也不同(或没有)。 以下是不同情况下的`thisActionTarget`。 @@ -537,7 +645,7 @@ autoTriggerOnEvent: touchTargetSuccess
-#### 杂项 +### 杂项 attachment 代码:self.attachment() 中文释义:附属物 返回类型:unit/marker
@@ -614,7 +722,7 @@ nullUnit 代码:nullUnit 中文释义:空单位 返回类型:unit/marker
`nullUnit`是铁锈的空单位,用于比较/判断。 -#### 标记 +### 标记 getAsMarker 代码:self.getAsMarker() 中文释义:获取标记 返回类型:unit/marker
@@ -637,7 +745,7 @@ eventSource 代码:eventSource 中文释义:事件源 返回类型:event
`eventSource`用于获取`autoTriggerOnEvent`当前触发器,没有则返回`null`,可以看作对于事件的`autoTriggerOnEvent`。 -#### 全局函数 +### 全局函数 readUnitMemory 代码:self.readUnitMemory() 中文释义:读取单位内存 返回类型:跟随内存类型
@@ -753,11 +861,11 @@ rnd ::: lowercase -代码:lowercase() 中文释义:转小写 返回类型:float
+代码:lowercase() 中文释义:转小写 返回类型:string
`lowercase`用于将一个字符串中的大写字符全部转换成小写,格式为`lowercase(string)`。
uppercase -代码:uppercase() 中文释义:转大写 返回类型:float
+代码:uppercase() 中文释义:转大写 返回类型:string
`uppercase`用于将一个字符串中的小写字符全部转换成大写,格式为`uppercase(string)`。
direction