一、用一个点类型全局变量记录不同的点位置,在触发时是否会冲突?

答:在不同的触发里,针对不同的单位,不会彼此覆盖冲突。

实验步骤:

(1)只定义一个名为“p”的点类型全局变量

(2)新建10个区域,放置10个不同的单位,写10个触发(暂不考虑排泄):命令不同的单位移动到不同的点位置。

命令不同的单位移动到不同的点位置.jpg

(3)10个触发中,用同一个点类型的全局变量p记录10个预设区域的中心位置

用一个点类型全局变量记录不同的点位置,在触发时是否会冲突?.jpg

实验结果:在我发出指令的同一时间,10个单位朝10个不同的位置移动。因此,在不同的触发中,且本身动作逻辑不冲突的前提下,用点类型的全局变量记录不同的点位置是不会覆盖冲突的。

二、清除点泄露的有效方法

清除点泄露的有效方法:不管是中心点还是面向指定点,只要是点,你都要用变量记录,然后用完就清除,就能有效清楚点。

(一)全局变量

清除点泄露的有效方法(全局变量).jpg

上面是一个正面案例。我用全局变量p记录了步兵的移动目标点,用完后清除。接着用全局变量p2记录了新建步兵的创建点,用p记录了步兵的朝向点。使用完后清除p和p2。

很多人会忽视朝向点,如果不用变量记录这个点、再清除这个点,就会产生1个泄露。

(二)局部变量

清除点泄露的有效方法(局部变量).jpg

局部变量需要先声明变量local location p

然后初始化变量set p = GetRectCenter(gg_rct_3)

最后使用完使用call RemoveLocation (p)清除点即可

(三)逆天变量

清除点泄露的有效方法(逆天变量).jpg

逆天变量更简单了,使用完后直接清除即可。