при создании переменной(структуры) в статическом методе её переменные остаются в том же состоянии прошлого запуска
struct MyStruct{
unit u =null
bool OnBool=false

static int count =0
static MyStruct my[]

void action(){
OnBool=true;count=0
}


static void  AddActionMyStruct(unit u){
int i = Proverca(u)

if(i!=-1){return}

my[count++] = MyStruct.create()
my[count-1].u=u
string s=""
if(my[count-1].OnBool){s="true"}else{s="false"}
DisplayTextToPlayer(GetOwningPlayer(u), 0, 0,s)//1 раз покажет false последующие true
my[count-1].action()
}

}

Принятый ответ

сории косяк нашел
`
ОЖИДАНИЕ РЕКЛАМЫ...