@@ -25,6 +25,8 @@ outline: deep
2525| unit | 单位 |
2626<!-- MarkDown表格必须有上方的分割线以告诉浏览器是表格 -->
2727
28+ 数据类型之间的转换函数包括:` int ` 、` str ` 。
29+
2830#### 算数优先级
2931与数学中计算符一样,铁锈中算数运算符有优先级区别。` % ` 和` * ` 和` / ` 的优先级大于` + ` 和` - ` 。
3032
@@ -238,6 +240,7 @@ autoTrigger:if (memory.a + memory.c) < memory.b
23824034 . ` self.isInMap() ` 在地图内
23924135 . ` game.mapWidth() ` 地图宽度
24024236 . ` game.mapHeight() ` 地图高度
243+ 37 . ` game.nukesEnabled() ` 是否启用核武器
241244
242245self.hasResources()
243246代码: self .hasResources() 中文释义:有资源 返回类型: boolean <br >
@@ -633,3 +636,134 @@ getOffsetRelative
633636eventSource
634637代码: eventSource 中文释义:事件源 返回类型: event <br >
635638` eventSource ` 用于获取` autoTriggerOnEvent ` 当前触发器,没有则返回` null ` ,可以看作对于事件的` autoTriggerOnEvent ` 。
639+
640+ #### 全局函数
641+
642+ readUnitMemory
643+ 代码: self .readUnitMemory() 中文释义:读取单位内存 返回类型:跟随内存类型<br >
644+ ` readUnitMemory ` 用于读取指定单位上的自定义内存,与读取其他单位的资源不同,内存可以直接读取而不需要在本单位进行定义。<br >
645+ ` readUnitMemory ` 的格式为` 单位参考.readUnitMemory("内存名称",type="内存类型") ` ,简写格式为` memory.内存名称 ` ,但简写格式只能用于读取自己的内存。<br >
646+
647+ <div class =" alert callout tip " >
648+ <p >self.readUnitMemory()基础演示例子:</p >
649+ </div >
650+
651+ ``` ini
652+ if parent.readUnitMemory(" a" , type =" float" ) == 1
653+ # 如果 父单位内存a的值为1
654+ ```
655+
656+ ::: warning
657+ ` readUnitMemory ` 还可以用于读取内存数组,格式为` 单位参考.readUnitMemory("数组名称",type="数组类型",index=数组下标) ` <br >
658+ 在<font color =orange >跨单位读取数组</font >时,如果下标使用了逻辑,无论逻辑值都会返回第零项,
659+ <font color =orange >为游戏bug</font >,解决方法可以参考:
660+ https://www.bilibili.com/video/BV17v4y1r7dV (感谢十山月)
661+ :::
662+
663+ <!-- 写完才发现readUnitMemory写过了:( -->
664+
665+ distance
666+ 代码: distance () 中文释义:两点距离 返回类型: float <br >
667+ ` distance ` 用于获取两个坐标之间的距离,格式为` distance(x1,y1,x2,y2) ` 。<br >
668+
669+ distanceSquared
670+ 代码: distanceSquared () 中文释义:两点距离平方 返回类型: float <br >
671+ ` distanceSquared ` 返回两个点的距离的平方,速度更快,格式与` distance ` 一样。<br >
672+
673+ distanceBetween
674+ 代码: distanceBetween () 中文释义:单位间的距离 返回类型: float <br >
675+ ` distanceBetween ` 返回两个单位(标记)之间的距离,格式为` distanceBetween(单位1,单位2) ` 。<br >
676+
677+ distanceBetweenSquared
678+ 代码: distanceBetweenSquared () 中文释义:单位间的距离平方 返回类型: float <br >
679+ ` distanceBetweenSquared ` 返回两个单位(标记)之间的距离的平方,速度更快,格式与` distanceBetween ` 一致。<br >
680+
681+ select
682+ 代码: select () 中文释义:三目运算符 返回类型:随结果类型(有说为string)<br >
683+ ` select ` 用于简化部分需要使用如果进行分别判断的场景,格式为` select(bool a,str b,str c) ` ,当` a ` 成立时,整个` select ` 返回` b ` ,否则返回` c ` 。<br >
684+
685+ ::: tip
686+ ` select ` 支持套娃。在适当的地方使用,可以<font color =orange >极大的简化代码</font >。
687+ :::
688+
689+ debug
690+ 代码: debug () 中文释义:返回调试值 返回类型: string <br >
691+ ` debug ` 可以针对逻辑布尔值输出一个字符串,解释这个值产生的原因,可以查看嵌套逻辑、比较和运算符。<br >
692+
693+ ::: code-group
694+ ``` ini{3} [演示例子]
695+ showMessageToAllPlayers:%{debug(memory.a)}
696+ #假设a为unit类型memory
697+ #这里就会输出a单位的id等信息
698+ ```
699+ :::
700+
701+ substring
702+ 代码: substring () 中文释义:取子字符串 返回类型: string <br >
703+ ` substring ` 用于截取一个字符串的一部分,格式为` substring(开始处,结束处) ` ,字符串的“下标”从0开始。<br >
704+
705+ length
706+ 代码: length () 中文释义:取字符串长度 返回类型: number /float<br >
707+ ` length ` 用于获取一个字符串的长度,格式为` length(string) ` ,返回长度数字。<br >
708+
709+ squareRoot
710+ 代码: squareRoot () 中文释义:平方根 返回类型: number /float<br >
711+ ` squareRoot ` 用于获取一个数的平方根,格式为` squareRoot(number/float) ` 。<br >
712+
713+ min
714+ 代码: min () 中文释义:最小值 返回类型: number /float<br >
715+ ` min ` 用于获取两个数中更小的那个,格式为` min(number1,number2) ` 。<br >
716+
717+ max
718+ 代码: max () 中文释义:最大值 返回类型: number /float<br >
719+ ` max ` 用于获取两个数中更大的那个,格式为` max(number1,number2) ` 。<br >
720+
721+ createMarker
722+ 代码: createMarker () 中文释义:创建标记 返回类型: marker <br >
723+ ` createMarker ` 用于创建一个临时的标记,格式为` createMarker(x, y, [height], [teamId], [dir]) ` 。其中` x ` 、` y ` 为必须的参数<br >
724+ 标记的创建速度很快,创建后可以用于填入路径点等` unit/marker ` 类型处。<br >
725+
726+ ::: tip
727+ 其实marker也是一个单位,可以通过路径点` thisActionTarget ` 和` debug ` 发现它。
728+ :::
729+
730+ eventData
731+ 代码: eventData () 中文释义:事件数据 返回类型:跟随事件<br >
732+ ` eventData ` 用于获取自身接收的` [action]sendMessageTo ` 中发送的信息,格式为` eventData("数据名称",type="数据类型") ` 。<br >
733+ ` eventData ` 只在` autoTriggerOnEvent:newMessage ` 事件中使用。<br >
734+
735+ sin
736+ 代码: sin () 中文释义:正弦 返回类型: float <br >
737+ ` sin ` 用于正弦值,格式为` sin(角度) ` 。<br >
738+
739+ cos
740+ 代码: cos () 中文释义:余弦 返回类型: float <br >
741+ ` cos ` 用于余弦值,格式为` cos(角度) ` 。<br >
742+
743+ ::: tip
744+ 铁锈三角函数没有tan,但是可以通过` tan(a)=sin(a)/cos(a) ` 来求。
745+ :::
746+
747+ rnd
748+ 代码: rnd () 中文释义:随机数 返回类型: float <br >
749+ ` rnd ` 用于生成一个自定义区间内的随机数,格式为` rnd(最小,最大) ` 。<br >
750+
751+ ::: warning
752+ 沙盒地图中随机数种子是一样的,且<font color =orange >卢克的随机数并不“随机”</font >,实际使用可能需要自己增加参数后求余。
753+ :::
754+
755+ lowercase
756+ 代码: lowercase () 中文释义:转小写 返回类型: float <br >
757+ ` lowercase ` 用于将一个字符串中的大写字符全部转换成小写,格式为` lowercase(string) ` 。<br >
758+
759+ uppercase
760+ 代码: uppercase () 中文释义:转大写 返回类型: float <br >
761+ ` uppercase ` 用于将一个字符串中的小写字符全部转换成大写,格式为` uppercase(string) ` 。<br >
762+
763+ direction
764+ 代码: direction () 中文释义:相对角度 返回类型: float <br >
765+ ` direction ` 用于获取两个点之间的相对角度,格式为` direction(x1,y1,x2,y2) ` 。<br >
766+
767+ directionBetween
768+ 代码: direction () 中文释义:单位相对角度 返回类型: float <br >
769+ ` direction ` 用于获取两个单位之间的相对角度,格式为` direction(unit1,unit2) ` 。<br >directionBetween
0 commit comments