[LogicBoolean] 逻辑序列组
DANGER
由于这个组的特殊性,格式不标准,请勿参考这个组的写法。
前置知识
TIP
以下的内容为逻辑组前置知识,是学习逻辑必备的前置内容。
布尔值
表达“真(true)”或“假(false)”的一个状态。在铁锈中,布尔值(boolean)被运用于逻辑判断。数据类型
数据类型指数据的种类,在铁锈中,不同的数据有不同的类型,不同的数据类型之间通常不能直接进行运算。
| 常见数据类型英文 | 存储的值类型 |
|---|---|
| string | 字符串 |
| number | 整数 |
| float | 浮点数(小数) |
| boolean | 布尔值 |
| unit | 单位 |
数据类型之间的转换函数包括:int、str。
算数优先级
与数学中计算符一样,铁锈中算数运算符有优先级区别。%和*和/的优先级大于+和-。
比较运算符
TIP
以下的内容为逻辑中用于比较的运算符。
if
if-代码简介
代码:if 中文释义:如果 类型:逻辑函数
if-要点指示
if是大部分逻辑运算的开头(select等不需要if),用于在支持逻辑的键引入逻辑判断。
if-演示例子
[action]
autoTrigger:if self.maxHp() > memory.emx_hp<
<-代码简介
代码:< 中文释义:小于 类型:比较运算符
<-要点指示
小于用于在逻辑布尔值中比较两个数的大小,格式为数据a < 数据b,若a<b则整个式子的值为true,否则为false。
<-演示例子
[action]
autoTrigger:if memory.a < memory.b>
>-代码简介
代码:> 中文释义:大于 类型:比较运算符
>-要点指示
大于用于在逻辑布尔值中比较两个数的大小,格式为数据a > 数据b,若a>b则整个式子的值为true,否则为false。
>-演示例子
[action]
autoTrigger:if memory.a > memory.b<=
<=-代码简介
代码:<= 中文释义:小于等于 类型:比较运算符
<=-要点指示
小于等于用于在逻辑布尔值中比较两个数的大小,格式为数据a <= 数据b,若a<=b则整个式子的值为true,否则为false。
<=-演示例子
[action]
autoTrigger:if memory.a <= memory.b>=
>=-代码简介
代码:>= 中文释义:大于等于 类型:比较运算符
>=-要点指示
大于等于用于在逻辑布尔值中比较两个数的大小,格式为数据a >= 数据b,若a>=b则整个式子的值为true,否则为false。
>=-演示例子
[action]
autoTrigger:if memory.a >= memory.b==
==-代码简介
代码:== 中文释义:等于 类型:比较运算符
==-要点指示
等于用于在逻辑布尔值中比较值是否相同,格式为数据a = 数据b,若a=b则整个式子的值为true,否则为false。
TIP
请注意,铁锈中等于的符号为,在铁锈中用于赋值或参数。
==-演示例子
[action]
autoTrigger:if memory.a == memory.b!=
!=-代码简介
代码:!= 中文释义:不等于 类型:比较运算符
!=-要点指示
不等于用于在逻辑布尔值中比较值是否相同,格式为数据a = 数据b,若a!=b则整个式子的值为true,否则为false。
!=-演示例子
[action]
autoTrigger:if memory.a != memory.b逻辑运算符
TIP
以下的内容为逻辑中用于进行逻辑运算的运算符,它们的结果都是boolean类型。
and
and-代码简介
代码:and 中文释义:且 类型:逻辑运算符
and-要点指示
TIP
用于连接两个逻辑判断,只有在这两个逻辑判断的值都为时,的值才为true。and-演示例子
[action]
autoTrigger:if memory.a < memory.b and memory.a > memory.c
# 在这个例子中,只有a小于b且a大于c时,自动触发才会被触发or
or-代码简介
代码:or 中文释义:或 类型:逻辑运算符
or-要点指示
TIP
用于连接两个逻辑判断,只要这两个逻辑判断的值有一个为时,的值就为true。or-演示例子
[action]
autoTrigger:if memory.a < memory.b or memory.a > memory.c
# 在这个例子中,只要a小于b或a大于c,自动触发就会被触发not
not-代码简介
代码:not 中文释义:非 类型:逻辑运算符
not-要点指示
TIP
用于将某个逻辑判断的值取反,即true变false,false变true。INFO
多个逻辑运算符同时使用时,优先级为not>and>or,同时。
推荐。
not-演示例子
:::
演示例子:
[action]
autoTrigger:if (memory.a < memory.b or memory.a > memory.c) and not memory.a < memory.d考考你,在上述这个例子中,满足什么条件才会触发?答案:a必须满足小于b和大于c中的一个,且a必须不小于d,自动触发才会被触发。算数运算符
TIP
以下的内容为逻辑中用于进行算数运算的运算符,它们的结果类型为参与运算的值的类型。
INFO
不同数据类型通常,但在部分情况下,和类型可以混用(建议来避免混淆)。
+
+-代码简介
代码:+ 中文释义:加 类型:算数运算符
+-要点指示
加用于将两个逻辑值相加,得到结果,格式为数据a + 数据b。
+-演示例子
[action]
autoTrigger:if (memory.a + memory.c) < memory.b
#内存a和c的值之和需要小于b-
--代码简介
代码:- 中文释义:减 类型:算数运算符
--要点指示
减用于将两个逻辑值相减,得到结果,格式为数据a - 数据b。
INFO
对于,需要注意是否正确。由于铁锈本身bug,,因此可能出现减法顺序混乱等问题。
为了避免可能的问题,请尽量在任何两边打上括号。
--演示例子
[action]
autoTrigger:if (memory.a - memory.c) < memory.b
#内存a与c的值之差需要小于b*
*-代码简介
代码:* 中文释义:乘 类型:算数运算符
*-要点指示
乘用于将两个逻辑值相乘,得到结果,格式为数据a * 数据b。
*-演示例子
[action]
autoTrigger:if (memory.a * memory.c) == memory.b
#内存a和c的乘积需要等于b/
/-代码简介
代码:/ 中文释义:除 类型:算数运算符
/-要点指示
除用于将两个逻辑值相除,得到结果,格式为数据a / 数据b。
/-演示例子
[action]
autoTrigger:if (memory.a / memory.c) == memory.b
#内存a除以c的积需要等于b%
%-代码简介
代码:% 中文释义:求余(取模) 类型:算数运算符
%-要点指示
求余用于获取两个逻辑值中,第一个除第二个的余数,格式为数据a % 数据b,例如7%3=1(7除3余1)。
%-演示例子
[action]
autoTrigger:if (memory.a % memory.c) == memory.b
#内存a除以c的余数需要等于b单位统计
TIP
以下的内容为逻辑中用于单位数值获取的函数,它们的类型与单位此项数值对应。
通用统计关键字
单位统计中部分通用的关键字:
greaterThan大于lessThan小于empty空full满equalTo等于
内置参数-单一或无传参
单位统计中部分内置参数返回代码(由于过于简单不单独列出):
self.hp()生命值self.maxHp()最大生命值self.energy()能量self.shield()护盾self.kills()击杀数self.maxEnergy()最大能量self.maxShield()最大护盾self.height()/self.x()高度self.ammo()弹药self.isAmmoEmpty()弹药为空(快捷方式:self.ammo(empty=true))self.ammoIncludingQueued()包括队列中的弹药self.energyIncludingQueued()包括队列中的能量self.isEnergyFull()能量满(快捷方式:self.energy(full=true))self.isEnergyEmpty()能量空(快捷方式:self.energy(empty=true))self.isEnergyRecharing()能量充能中self.playerName()玩家名称self.teamName()队伍名称self.x(),self.y()x,y坐标self.dir()方向self.priceCredits()金钱价格self.speed()当前速度self.maxMoveSpeed()最大速度self.id()单位id(每个单位的序号)self.builtAmount()建造数量self.complate()自身建造完成self.teamDefeatedTech()队伍失败self.teamWipedOut()队伍全部死亡self.teamVictory()队伍获胜self.queueSize()自身队列大小self.transportingCount()运输数量self.isAttacking()在攻击self.isOnNeutralTeam()是中立队伍self.isControlledByAI()是AI控制self.isInMap()在地图内game.mapWidth()地图宽度game.mapHeight()地图高度game.nukesEnabled()是否启用核武器
内置参数-需要传参
self.hasResources() 代码:self.hasResources() 中文释义:有资源 返回类型:boolean
self.hasResources() 用于检测自身某资源是否大于等于某数值,格式为self.hasResources(资源名=数值)
演示例子:
self.hasResources(hp=10,energy=5)self.resource() 代码:self.resource() 中文释义:资源 返回类型:float
与self.hasResources()不同,self.resource()直接返回某个资源的数值。格式为self.resource(type="资源名")。
INFO
引用资源时,请确保,否则会报错。
self.resource.RESOURCE_TYPE 代码:self.resource.RESOURCE_TYPE 中文释义:资源 返回类型:float
self.resource.RESOURCE_TYPE是self.resource()的快捷方式。格式为self.resource.资源名称,引用更加方便。
self.isResourceLargerThan() 代码:self.isResourceLargerThan() 中文释义:资源是否大于 返回类型:boolean
WARNING
此代码为老旧解决方案,不推荐使用。
self.isResourceLargerThan()用于比较两种资源的大小。格式为self.isResourceLargerThan(source=资源A,compareTarget=资源B,byMoreThan=大于资源B数量,multiplyTargetBy=资源B倍数)
self.numberOfQueuedWaypoints() 代码:self.numberOfQueuedWaypoints() 中文释义:队列中路径点数量 返回类型:float
self.numberOfQueuedWaypoints()用于返回队列中路径点的数量。格式为self.numberOfQueuedWaypoints(type="路径点类型")。
单位运动与定位
这部分代码的返回值全部为boolean类型,用于检测单位的运动和位置情况
self.underwater/self.isUnderwater()单位在水下self.gound/self.ground/self.isAtGroundHeight()单位位于地面高度self.flying/self.isFlying()单位在飞行self.isMoving()单位正在移动self.isAtTopSpeed()单位处于最高速度self.inwater/self.isInWater()单位在水中self.isReversing()单位在倒车self.isOverwater()单位在水上(在水上方或接触水)self.isOverLiquid()单位在液体上(岩浆等)self.isOverClift/self.isOverCliff()单位在悬崖上self.isOverOpenLand()单位在开阔的陆地上self.isTransportUnloading()单位正在卸载单位self.isOverPassableTile()单位在可通过的地块上(可通过加参数type=地块类型来指定特定类型的地块)
附移动类型:
| 英文 | 移动类型 |
|---|---|
| NONE | 无 |
| LAND | 陆地 |
| BUILDING | 建筑 |
| AIR | 空中 |
| WATER | 水中 |
| HOVER | 两栖 |
| OVER_CLIFF | 跨悬崖 |
| OVER_CLIFF_WATER | 跨水和悬崖 |
单位计时
self.hasTakenDemage() 代码:self.hasTakenDemage() 中文释义:受到伤害 返回类型:bool
INFO
单位计时部分能返回到最小时间精度为。
self.hasTakenDemage()用于获取指定时间内是否收到伤害。使用self.hasTakenDemage(withInSecounds=多少秒内,laterThanSecounds=多少秒后)格式时,返回bool类型。
self.timeAlive() 代码:self.timeAlive() 中文释义:存活时间 返回类型:float/bool
self.timeAlive()用于获取单位存活时间。使用self.timeAlive(withInSecounds=多少秒内,laterThanSecounds=多少秒后)格式时,返回bool类型(是否符合此范围);使用self.timeAlive()格式时,返回float类型。(更推荐使用后者)
self.lastConverted() 代码:self.lastConverted() 中文释义:最后转换时间 返回类型:float/bool
self.timeAlive()用于获取单位上次转换后的时间。使用self.lastConverted(withInSecounds=多少秒内,laterThanSecounds=多少秒后)格式时,返回bool类型(是否符合此范围);使用self.lastConverted()格式时,返回float类型。
self.customTimer() 代码:self.customTimer() 中文释义:自定义计时器 返回类型:float/bool
self.timeAlive()用于获取自定义计时器的时间。使用self.customTimer(withInSecounds=多少秒内,laterThanSecounds=多少秒后)格式时,返回bool类型(是否符合此范围);使用self.customTimer()格式时,返回float类型。
演示例子:
[action]
autoTrigger:if self.customTimer() >= 10
resetCustomTimer:true
showMessageToPlayers:10秒过去了杂项
thisActionIndex/index() 代码:thisActionIndex/index() 中文释义:索引 返回类型:float(number)
thisActionIndex/index()是alsoTriggerActionRepeat中当前的索引。例如alsoTriggerActionRepeat:10,那么index在10次循环中分别为1-10。
self.hasFlag() 代码:self.hasFlag() 中文释义:有标志 返回类型:boolean
self.hasFlag()用于获取自身是否有,格式为self.hasFlag(id=数字)。
INFO
不同于,是内置的一些,无需定义即可直接使用。
标签的添加方法为,且只支持,标签的移除方法与之相反。
self.tags() 代码:self.tags() 中文释义:有标签 返回类型:boolean
self.tags()用于检测自身是否有某个标签,格式为self.tags(includes="标签")。
self.globalTeamTags/self.hasGlobalTeamTags() 代码:self.globalTeamTags/self.hasGlobalTeamTags() 中文释义:有全局标签 返回类型:boolean
self.globalTeamTags/self.hasGlobalTeamTags()用于检测队伍内是否有某个全局标签,格式为self.globalTeamTags/self.hasGlobalTeamTags(includes="标签")
self.numberOfConnections() 代码:self.numberOfConnections() 中文释义:连接数 返回类型:float
隐藏代码,用途不明。
self.numberOfAttachedUnits() 代码:self.numberOfAttachedUnits() 中文释义:有附属物 返回类型:int/bool
self.numberOfAttachedUnits()用于获取自身附属物数量,可以通过self.numberOfAttachedUnits(withTag="标签")格式来限制附属物标签。
self.hasActiveWaypoint() 代码:self.hasActiveWaypoint() 中文释义:有活动的路径点 返回类型:bool
self.hasActiveWaypoint()用于获取自身有无活动的路径点,格式为self.hasActiveWaypoint(type="路径点类型")。
INFO
路径点类型可以是。
self.transportingUnitWithTags() 代码:self.transportingUnitWithTags() 中文释义:运输单位中有此标签 返回类型:bool
self.transportingUnitWithTags()用于检测自身运输的单位中是否有含有特定标签的单位,格式为self.transportingUnitWithTags(includes="标签")。
self.hasParent() 代码:self.hasParent() 中文释义:有父单位 返回类型:bool
self.hasParent()用于检测自身是否有父单位,且可以通过self.hasParent(hasTag="标签")来筛选父单位标签。
通常情况下,附属和被运输单位会有父单位。
self.numberOfUnitsInTeam() 代码:self.numberOfUnitsInTeam() 中文释义:队伍中此单位数量 返回类型:float
self.numberOfUnitsInTeam()(可省略self.)用于检测自身队伍符合条件的单位数量,格式为self.numberOfUnitsInTeam(withTag="标签",withinRange=此距离内,incompleteBuildings=包含不完整建筑,factoryQueue=包含工厂队列)
演示例子:
self.numberOfUnitsInTeam(withTag="air",withInRange=500,factoryQueue=true)
#有air标签,500范围内,包含工厂队列中的单位self.numberOfUnitsInAllyNotOwnTeam() 代码:self.numberOfUnitsInAllyNotOwnTeam() 中文释义:盟友队伍中此单位数量 返回类型:float
self.numberOfUnitsInAllyNotOwnTeam()与self.numberOfUnitsInTeam()用法完全相同,区别仅在于前者的查询范围是盟友中。
self.numberOfUnitsInEnemyTeam() 代码:self.numberOfUnitsInEnemyTeam() 中文释义:敌方队伍中此单位数量 返回类型:float
self.numberOfUnitsInEnemyTeam()与self.numberOfUnitsInTeam()用法完全相同,区别仅在于前者的查询范围是敌方中。
self.numberOfUnitsInNeutralTeam() 代码:self.numberOfUnitsInNeutralTeam() 中文释义:中立队伍中此单位数量 返回类型:float
self.numberOfUnitsInNeutralTeam()与self.numberOfUnitsInTeam()用法完全相同,区别仅在于前者的查询范围是中立中。
self.numberOfUnitsInAggressiveTeam() 代码:self.numberOfUnitsInAggressiveTeam() 中文释义:敌对中立队伍中此单位数量 返回类型:float
self.numberOfUnitsInAggressiveTeam()与self.numberOfUnitsInTeam()用法完全相同,区别仅在于前者的查询范围是敌对中立中。
self.numberOfUnitsInAllyTeam() 代码:self.numberOfUnitsInAllyTeam() 中文释义:所有队伍中此单位数量 返回类型:float
self.numberOfUnitsInAllyTeam()与self.numberOfUnitsInTeam()用法完全相同,区别仅在于前者的查询范围是所有中。
self.hasUnitInTeam() 代码:self.hasUnitInTeam() 中文释义:队伍中有单位 返回类型:bool
self.hasUnitInTeam()与self.numberOfUnitsInTeam()格式完全相同,区别在于前者仅查询队伍中有无符合条件的单位,并返回boolean类型。
self.noUnitInTeam() 代码:self.noUnitInTeam() 中文释义:队伍中无单位 返回类型:bool
self.noUnitInTeam()与self.numberOfUnitsInTeam()格式完全相同,区别在于前者仅查询队伍中是否无符合条件的单位,并返回boolean类型。
self.readUnitMemory() 代码:self.readUnitMemory() 中文释义:读取单位内存 返回类型:跟随memory类型
self.readUnitMemory()用于获取指定单位内存,格式为self.readUnitMemory("内存名",type="类型",index=下标(仅当类型是数组时可选填写))。
DANGER
在时,如果下标使用了逻辑,无论逻辑值都会返回第零项,
,解决方法可以参考:https://www.bilibili.com/video/BV17v4y1r7dV (感谢十山月)
[action_copyArry]
text:copyFromUnit
alsoTriggerAction:copyOne
alsoTriggerActionRepeat:memory.target.readUnitMemory("Afloat",type="float[]").size
## 最重要的
alsoTriggerOrQueueActionWithTarget:memory.target
[hiddenAction_copyOne]
setUnitMemory:Afloat[index] = thisActionTarget.readUnitMemory("Afloat",type="float[]")[index]self.readUnitMemory()基础演示例子:
if parent.readUnitMemory("boostTarget", type="unit") == self
#如果 父单位内存boostTarget的值等于自己单位参照
当前动作目标
INFO
thisActionTarget是一条用于获取当前行动目标的代码,不同的行动中,thisActionTarget也不同(或没有)。 以下是不同情况下的thisActionTarget。
fireTurretXAtGround: mainTurret
此时thisActionTarget是目标地面位置的标记
alsoTriggerAction: x
此时thisActionTarget是原动作的thisActionTarget
[turret]onShoot_triggerActions: x
此时thisActionTarget是被击中的目标
takeResources_triggerActionIfAnyCollected: x
此时thisActionTarget是该资源
addWaypoint_triggerActionIfMatched: x
此时thisActionTarget是搜索到的标记/目标
autoTriggerOnEvent: tookDamage
此时thisActionTarget是造成伤害的单位
autoTriggerOnEvent: killedAnyUnit
此时thisActionTarget是被杀死的单位
autoTriggerOnEvent: transportingNewUnit
此时thisActionTarget是被运输的单位
autoTriggerOnEvent: transportUnloadedOrRemovedUnit
此时thisActionTarget是被卸载打单位
autoTriggerOnEvent: queuedUnitFinished
此时thisActionTarget是创建的新单位
autoTriggerOnEvent: touchTargetSuccess
此时thisActionTarget是接触的目标
杂项
attachment 代码:self.attachment() 中文释义:附属物 返回类型:unit/marker
attachment用于获取单位特定附属物的单位参考,参数有slot和withFlag。slot参数即代码中[attachment_abc]的abc,withFlag参数用于获取拥有指定标签的附属物。
self.attachment(withTag="x").lastDamagedBy.getAsMarker()
#这里获取有x标签的附属物,然后获取此附属物上一个攻击者,并创建标记transporting 代码:self.transporting() 中文释义:运载的单位 返回类型:unit/marker
transporting用于获取单位运输队列中特定单位的单位参考,参数有slot。
与attachment不同,transporting的slot参数为数字,即运输队列的第几个。
attacking 代码:self.attacking() 中文释义:攻击目标 返回类型:unit/marker
attacking用于获取单位的攻击目标。
WARNING
attacking不一定是正在攻击的目标,。
lastDamagedBy 代码:self.lastDamagedBy() 中文释义:最后伤害源 返回类型:unit/markerattacking用于获取最后攻击该单位的单位。
parent 代码:self.parent() 中文释义:父单位 返回类型:unit/markerparent用于获取单位的附属主单位或运输单位。
当单位离开附属/运输时,父单位会为null,因此可以用于检测单位是否被运输/在附属中。
activeWaypointTarget 代码:self.activeWaypointTarget() 中文释义:自身活动的路径点 返回类型:unit/markeractiveWaypointTarget用于获取自身正在进行的路径点,参数有type。type参数用于指定路径点类型。
customTarget1 代码:self.customTarget1() 中文释义:自定义目标1 返回类型:unit/markercustomTarget1是铁锈内置的unit类型内存,。
customTarget2 代码:self.customTarget2() 中文释义:自定义目标1 返回类型:unit/markercustomTarget2是铁锈内置的unit类型内存。
nearestUnit 代码:self.nearestUnit() 中文释义:指定最近单位 返回类型:unit/markernearestUnit用于获取满足条件的最近单位,参数有withinRange、withTag、relation。 withinRange:指定最大搜索范围(最高为1000) withTag:指定需要含有的标签 relation:目标单位与自己的关系(与路径点靠近类型相同)
| 英文 | 关系类型 |
|---|---|
| any | 所有 |
| enemy | 敌对 |
| own | 己方 |
| ally | 盟友 |
| allyNotOwn | 仅盟友 |
| notOwn | 除己方 |
| neutral | 中立 |
globalSearchForFirstUnit 代码:self.globalSearchForFirstUnit() 中文释义:指定最近单位 返回类型:unit/markerglobalSearchForFirstUnit用于在全局范围内搜索第一个满足条件的最近单位,参数有withTag、relation,用法与nearestUnit基本相同。
nullUnit 代码:nullUnit 中文释义:空单位 返回类型:unit/markernullUnit是铁锈的空单位,用于比较/判断。
标记
getAsMarker 代码:self.getAsMarker() 中文释义:获取标记 返回类型:unit/markergetAsMarker用于在指定单位创建标记。标记的创建速度非常快,不再需要时会自动删除。
标记不链接到任何单位并且在单位死亡时仍然存在,在源头移动时保持不变。
getOffsetAbsolute 代码:self.getOffsetAbsolute() 中文释义:获取绝对偏移标记 返回类型:unit/markergetOffsetAbsolute用于在指定单位创建一个绝对偏移后的标记。可用的参数有x、y、height(-y为北,+x为东)。
getOffsetRelative 代码:self.getOffsetRelative() 中文释义:获取相对偏移标记 返回类型:unit/markergetOffsetRelative用于在指定单位创建一个相对偏移后的标记。可用的参数有x、y、height(+y为前,-为左)、dirOffset(角度偏移)。
TIP
相对偏移可以理解为,然后计算在这个坐标系内的便宜,并返回地图中大坐标系的单位参考。
eventSource 代码:eventSource 中文释义:事件源 返回类型:eventeventSource用于获取autoTriggerOnEvent当前触发器,没有则返回null,可以看作对于事件的autoTriggerOnEvent。
全局函数
readUnitMemory 代码:self.readUnitMemory() 中文释义:读取单位内存 返回类型:跟随内存类型readUnitMemory用于读取指定单位上的自定义内存,与读取其他单位的资源不同,内存可以直接读取而不需要在本单位进行定义。readUnitMemory的格式为单位参考.readUnitMemory("内存名称",type="内存类型"),简写格式为memory.内存名称,但简写格式只能用于读取自己的内存。
self.readUnitMemory()基础演示例子:
if parent.readUnitMemory("a", type="float") == 1
#如果 父单位内存a的值为1WARNING
readUnitMemory还可以用于读取内存数组,格式为单位参考.readUnitMemory("数组名称",type="数组类型",index=数组下标)
在时,如果下标使用了逻辑,无论逻辑值都会返回第零项,
distance 代码:distance() 中文释义:两点距离 返回类型:floatdistance用于获取两个坐标之间的距离,格式为distance(x1,y1,x2,y2)。
distanceSquared 代码:distanceSquared() 中文释义:两点距离平方 返回类型:floatdistanceSquared返回两个点的距离的平方,速度更快,格式与distance一样。
distanceBetween 代码:distanceBetween() 中文释义:单位间的距离 返回类型:floatdistanceBetween返回两个单位(标记)之间的距离,格式为distanceBetween(单位1,单位2)。
distanceBetweenSquared 代码:distanceBetweenSquared() 中文释义:单位间的距离平方 返回类型:floatdistanceBetweenSquared返回两个单位(标记)之间的距离的平方,速度更快,格式与distanceBetween一致。
select 代码:select() 中文释义:三目运算符 返回类型:随结果类型(有说为string)select用于简化部分需要使用如果进行分别判断的场景,格式为select(bool a,str b,str c),当a成立时,整个select返回b,否则返回c。
TIP
select支持套娃。在适当的地方使用,可以。
debug 代码:debug() 中文释义:返回调试值 返回类型:stringdebug可以针对逻辑布尔值输出一个字符串,解释这个值产生的原因,可以查看嵌套逻辑、比较和运算符。
showMessageToAllPlayers:%{debug(memory.a)}
#假设a为unit类型memory
#这里就会输出a单位的id等信息substring 代码:substring() 中文释义:取子字符串 返回类型:stringsubstring用于截取一个字符串的一部分,格式为substring(开始处,结束处),字符串的“下标”从0开始。
length 代码:length() 中文释义:取字符串长度 返回类型:number/floatlength用于获取一个字符串的长度,格式为length(string),返回长度数字。
squareRoot 代码:squareRoot() 中文释义:平方根 返回类型:number/floatsquareRoot用于获取一个数的平方根,格式为squareRoot(number/float)。
min 代码:min() 中文释义:最小值 返回类型:number/floatmin用于获取两个数中更小的那个,格式为min(number1,number2)。
max 代码:max() 中文释义:最大值 返回类型:number/floatmax用于获取两个数中更大的那个,格式为max(number1,number2)。
createMarker 代码:createMarker() 中文释义:创建标记 返回类型:markercreateMarker用于创建一个临时的标记,格式为createMarker(x, y, [height], [teamId], [dir])。其中x、y为必须的参数
标记的创建速度很快,创建后可以用于填入路径点等unit/marker类型处。
TIP
其实marker也是一个单位,可以通过路径点thisActionTarget和debug发现它。
eventData 代码:eventData() 中文释义:事件数据 返回类型:跟随事件eventData用于获取自身接收的[action]sendMessageTo中发送的信息,格式为eventData("数据名称",type="数据类型")。eventData只在autoTriggerOnEvent:newMessage事件中使用。
sin 代码:sin() 中文释义:正弦 返回类型:floatsin用于正弦值,格式为sin(角度)。
cos 代码:cos() 中文释义:余弦 返回类型:floatcos用于余弦值,格式为cos(角度)。
TIP
铁锈三角函数没有tan,但是可以通过tan(a)=sin(a)/cos(a)来求。
rnd 代码:rnd() 中文释义:随机数 返回类型:floatrnd用于生成一个自定义区间内的随机数,格式为rnd(最小,最大)。
WARNING
沙盒地图中随机数种子是一样的,且,实际使用可能需要自己增加参数后求余。
lowercase 代码:lowercase() 中文释义:转小写 返回类型:stringlowercase用于将一个字符串中的大写字符全部转换成小写,格式为lowercase(string)。
uppercase 代码:uppercase() 中文释义:转大写 返回类型:stringuppercase用于将一个字符串中的小写字符全部转换成大写,格式为uppercase(string)。
direction 代码:direction() 中文释义:相对角度 返回类型:floatdirection用于获取两个点之间的相对角度,格式为direction(x1,y1,x2,y2)。
directionBetween 代码:direction() 中文释义:单位相对角度 返回类型:floatdirection用于获取两个单位之间的相对角度,格式为direction(unit1,unit2)。
directionBetween