Ииии, мне снова нужна ваша помощь друзья:)
Проблема: иногда пилот НЕНАХОДИТ окна, вот мой скрипт:
Код
init_arr %list (1 1) Персонаж1 Персонаж2 Персонаж3 Персонаж4 ... Персонаж(х)
set #listsize size(%list)
while (1 = 1)
for #j 1 #listsize
set %handle FindWindow ("_ИГРА")
set #handlesize size(%handle)
set #result indexOf (%handle noabs (%list[#j 1]) )
if #result = -1 and #handlesize < #listsize
log Вылетел: %list [#j 1]
stop_script
gosub %list [#j 1] // перенаправление в подпрограмму для завода окна
set #result 0
end_if
end_for
for #i 1 #handlesize
.....
код
.....
end_for
end_while
:Персонаж1
...
код
...
return
:Персонаж(х)
...
код
...
return
Вот что пишут логи:
23:57:45 : while (1 = 1)
23:57:45 : for #j(18) 1 #listsize(18)
23:57:45 : set %handle FindWindow ("_ИГРА")
23:57:45 : %("_ИГРА") [ 19 1 ] =
23:57:45 : set #handlesize(18) size(%handle)
23:57:45 : #handlesize = 18
23:57:45 : set #result(1) indexOf (%handle noabs (%list[#j(1) 1]) )
23:57:45 : #result = 6
23:57:45 : if #result(6) = -1 and #handlesize(18) < #listsize(18)
23:57:45 : end_for
23:57:46 : set %handle FindWindow ("_ИГРА")
23:57:46 : %("_ИГРА") [ 19 1 ] =
23:57:46 : set #handlesize(18) size(%handle)
23:57:46 : #handlesize = 18
23:57:46 : set #result(6) indexOf (%handle noabs (%list[#j(2) 1]) )
23:57:46 : #result = 1
23:57:46 : if #result(1) = -1 and #handlesize(18) < #listsize(18)
23:57:46 : end_for
23:57:46 : set %handle FindWindow ("_ИГРА")
23:57:46 : %("_ИГРА") [ 19 1 ] =
23:57:46 : set #handlesize(18) size(%handle)
23:57:46 : #handlesize = 18
23:57:46 : set #result(1) indexOf (%handle noabs (%list[#j(3) 1]) )
23:57:46 : #result = 2
23:57:47 : if #result(2) = -1 and #handlesize(18) < #listsize(18)
23:57:47 : end_for
23:57:47 : set %handle FindWindow ("_ИГРА")
23:57:47 : %("_ИГРА") [ 0 0 ] = handle
23:57:47 : set #handlesize(18) size(%handle)
23:57:47 : #handlesize = 0
23:57:47 : set #result(2) indexOf (%handle noabs (%list[#j(4) 1]) )
23:57:47 : #result = -1
23:57:47 : if #result(-1) = -1 and #handlesize(0) < #listsize(18)
23:57:47 : Вылетел: Персонаж(х)
23:57:50 : stop_script
Подскажите, в каком направлении хоть копать, не понимаю из за чего это может происходить, если в отдельную вкладку вывожу указанный скрипт, он безошибочно находит все запущенные окна, если в общем скрипте так делаю, рано или поздно он не находит ни одного окна игры и решает, что они вылетели. В переменную %handle ничего кроме хендлов и имён окон не записываю.
Раньше было всё нормально, после каких то изменений в скрипте, перестал находить окна, уже ума не приложу в чём может быть дело.