只保留一次 单个单位状态 添加和移除优化
2024/04/24152 浏览案例分享
星火官方的单个单位状态的添加和移除的计数是不重置的,比如添加两次暂停状态,想要让单位取消暂停状态就必须移除两次,有时候我们写触发时会忘记根据计数去添加和移除或者有时候需要先取消之类的,导致达不到想要的效果。这时候我们可以写一个函数,来达到不管是添加或者移除多少次状态,都让单位始终处于初始的计数。
这是对于单个单位状态的问题,如果对于暂停且用于全部单位的话,官方还有个暂停全部单位和取消暂停全部单位的语句,可以直接用,不会出现该问题。

对于暂停且用于全部单位的话
函数相关参数

1. 创建一个名为计数表的简单表全局变量或类成员,并初始化和设置计数值为0 ,设为0是将单位的初始状态设为0,即无状态。这里为什么用简单表,主要是因为星火底层是lua,lua的函数参数,对于不可变类型,如数值,字符串的引用是值引用


2. 创建预设值,并设置两个引用。方便判断是添加还是移除状态,记得将实际值填一下,添加就填添加,移除就填移除就像,反正实际值不要一样

3. 给函数添加语句,先判断是执行添加状态还是移除状态,再分开写相关语句


添加状态的语句

移除状态的语句
4. 在触发里就可以不需要去根据计数添加或移除状态了
