Hallo
Hab folgendes Problem
Rufe ein Script auf beim aktualisieren einer Variable.
In diesem Script moechte ich aber genau diese Variable
ab und zu veraendern.
Damit wuerde aber das Script wieder aufgerufen.
Hab dann die Doku durchsucht und bin auf den Befehl
„IPS_SetEventActive“ gestossen. OK probiert.
Wenn das Script gestartet wird den Event deaktiviert und
am Ende wieder aktiviert. Dachte das muesste gehen - fast.
Beispiel:
if ( GetValueBoolean(36796) )
{
IPS_SetEventActive(29516,false);
SetValueBoolean(36796,false);
//sleep(1);
IPS_SetEventActive(29516,true);
}
Wenn ich es so benutze und die Variable 39798 auf TRUE setze wird
das Script 2x durchlaufen.
Wenn ich sleep(1) aktiviere wird es einmal durchlaufen.
Man muss also eine bestimmte Zeit warten bis man den Event wieder
aktivieren darf.
Geht das irgendwie noch anders ?
Die Variablenveränderung wird in einem seperaten Thread weiterverarbeitet der unter umständen erst später zur „IsActive“ abfrage kommt, als du es in deinem Skript setzt.
Es wäre besser, wenn du eine Lösung finest die entweder
A) Die Variable nicht verändert
B) Das erneute aufrufen des Skriptes muss mit dem neuen Wert klar kommen ohne eine Endlosschleife zu produzieren