Hallo,
ich hab ein problem und konnte es bisher nicht lösen.
ich wollte für gewisse fenster unterschiedliche variablen speichern. dann soll das skript mit anderen fenstern arbeiten und später auf das ursprüngliche fenster zurückkehren und auf die werte zugreifen. soll ein skript für ein browsergame zu werden.
schwer zu beschreiben.
vielleicht wird es so deutlicher.
Local $titelarray[20] = ["a","a","a","a","a","a","a","a","a","a","a","a","a","a","a","a","a","a","a","a"]
Local $aktionsarray[20] = [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]
;definiert am start und nicht in der schleife
$titel = WinGetTitle(""); in der endlosschleife
[/autoit][autoit][/autoit][autoit];ausgelöst durch trigger 1
$asuchen = _ArrayMinIndex($titelarray,0,0,19); hier sucht er ein "leeres" feld im array
$titelarray[$asuchen] = $titel; hier schreibt er den fenstertitel in dieses feld
if $var = true then
$titelsuche = _ArraySearch($titelarray, $titel,0,19,0,1); hier sucht er den aktuellen fenstertitel im array und gibt in der variable die position aus.
$aktionsarray[$titelsuche] = 1; hier schreibt er den zu speichernden wert im aktionsarray ins gleiche feld wie beim titelarray
;ausgelöst durch trigger 2
$titelsuche = _ArraySearch($titelarray, $titel,0,19,0,1);hier wieder die suche
if $aktionsarray[$titelsuche] = 1 Then; hier tritt das problem auf. manchmal gehts, manchmal findet er den titel nicht und -1 liegt nicht im array.
$var1 = True
Else
$var1 = False
EndIf
;ausgelöst durch trigger 3
$titelsuche = _ArraySearch($titelarray, $titel,0,19,0,1)
$titelarray[$titelsuche] = "a"
$aktionsarray[$titelsuche] = 0; Reset
wie im kommentar schon geschrieben liegt das problem darin, dass er bei trigger 2 zu 50% den fenstertitel nicht findet und -1 nicht im array enthalten ist. ich konnte auch kein bestimmtes muster feststellen, wann dieses problem auftritt.
es ist bestimmt zu wenig skript, um den fehler so ausfindig zu machen, aber vielleicht hat einer eine idee, woran es liegen könnte. ansich muss es ja was mit schreiben oder löschen zutun haben. ich hab auch schon eine menge rumprobiert und vielleicht fliegt irgendwo auch noch irgendwo ein rest rum, der probleme macht. werde das am besten komplett nochmal entfernen und dann nochmal reinschreiben.
gibt es alternativen dazu?