Что нового

Вывод информации в GUICtrlSetData

Оleg

Новичок
Сообщения
11
Репутация
0
Скрипт ищет картинки , но еще не точно поэтому хочу отловить какую картинку он ищет косячно .Что нужно дописать в
Код:
GUICtrlSetData($logbook, _nowtime() & " - Нашёл  "  & @CRLF,  1)
чтобы в логе после слова "_нашёл" отражалось название картинки.
вот сам кусок кода
Код:
Func search()
		Global $posicount
		
		Local $glit1=_imagesearcharea("data\mos.bmp", 1, $smx1, $smy1, $smx2, $smy2, $x, $y, 30)
		Local $glit2=_imagesearcharea("data\kara.bmp", 1, $smx1, $smy1, $smx2, $smy2, $x, $y, 30)
		Local $glit3=_imagesearcharea("data\hint.bmp", 1, $smx1, $smy1, $smx2, $smy2, $x, $y, 30)
		Local $glit4=_imagesearcharea("data\wood.bmp", 1, $smx1, $smy1, $smx2, $smy2, $x, $y, 30)
                If  $hallo OR $glit1 OR $glit2 OR $glit3 OR $glit4 OR $glit5 Then
                $posicount = $x + $y
			MouseClick("LEFT", $x, $y, 1, 3)
			GUICtrlSetData($logbook, _nowtime() & " - Нашёл  "  & @CRLF,  1)
                         ..........................

Сейчас выводит сообщение
12.45.23 Нашёл
Нужно чтоб после слова "нашёл" было название бмп-шки
 

hedji

Продвинутый
Сообщения
409
Репутация
94
Код:
Local $glit1=_imagesearcharea("data\mos.bmp", 1, $smx1, $smy1, $smx2, $smy2, $x, $y, 30)
Local $glit2=_imagesearcharea("data\kara.bmp", 1, $smx1, $smy1, $smx2, $smy2, $x, $y, 30)
Local $glit3=_imagesearcharea("data\hint.bmp", 1, $smx1, $smy1, $smx2, $smy2, $x, $y, 30)
Local $glit4=_imagesearcharea("data\wood.bmp", 1, $smx1, $smy1, $smx2, $smy2, $x, $y, 30)
If  $glit1 Then
   GUICtrlSetData($logbook, _nowtime() & " - Нашёл data\mos.bmp "  & @CRLF,  1)
Endif
If  $glit2 Then
   GUICtrlSetData($logbook, _nowtime() & " - Нашёл data\kara.bmp "  & @CRLF,  1)
Endif
If  $glit3 Then
   GUICtrlSetData($logbook, _nowtime() & " - Нашёл data\hint.bmp "  & @CRLF,  1)
Endif
If  $glit4 Then
   GUICtrlSetData($logbook, _nowtime() & " - Нашёл data\wood.bmp "  & @CRLF,  1)
Endif
 
Автор
О

Оleg

Новичок
Сообщения
11
Репутация
0
Спасибо за ответ , но такое решение не очень мне подходит т.к картинок 62шт и код растянется до неимоверного
 

hedji

Продвинутый
Сообщения
409
Репутация
94
Код:
Local $glit[4]
$glit[0] = "data\mos.bmp"
$glit[1] = "data\kara.bmp"
$glit[2] = "data\hint.bmp"
$glit[3] = "data\wood.bmp"

for $i in $glit
	$glit1=_imagesearcharea($i, 1, $smx1, $smy1, $smx2, $smy2, $x, $y, 30)
	if $glit1 Then
		GUICtrlSetData($logbook, _nowtime() & " - Нашёл " & $i & @CRLF,  1)
	endif
Next
 
Автор
О

Оleg

Новичок
Сообщения
11
Репутация
0
Погонял потестил ,всё пишет,но тут возникла дополнительная сложность.У каждой бмп-шки после отлова при поиске нужно менять % совпадения ,а в данном случае
Код:
$glit1=_imagesearcharea($i, 1, $smx1, $smy1, $smx2, $smy2, $x, $y, 30)


у всех будет 30.Как всё ето склеить,чтоб писало как в вашем последнем примере и можно было менять % совпадения у отдельно взятой бмп-шки как в первом моём примере?
 

hedji

Продвинутый
Сообщения
409
Репутация
94
Сделайте двумерный массив для хранения пар "имя файла - процент", при выпадении перезаписывайте величину процента в массиве.
 
Автор
О

Оleg

Новичок
Сообщения
11
Репутация
0
Я новичок в AUtoIt да и вообще в программировании поэтому если не сложно напишите пример связанный с моим скриптом как это должно выглядеть
 

Hikari

Новичок
Сообщения
22
Репутация
0
Oleg, милости просим
Код:
$elements = 4
Local $glit[$elements]
Local $percents[$elements]
$glit[0] = "data\mos.bmp"
$glit[1] = "data\kara.bmp"
$glit[2] = "data\hint.bmp"
$glit[3] = "data\wood.bmp"
 $percents[0] = 10
$percents[1] = 15
$percents[2] = 40
$percents[3] = 30

for $i = 0 To $elements
    $glit1=_imagesearcharea($glit[i], 1, $smx1, $smy1, $smx2, $smy2, $x, $y, $percents[i])
    if $glit1 Then
        GUICtrlSetData($logbook, _nowtime() & " - Нашёл " & $i & @CRLF,  1)
    endif
Next
 
Автор
О

Оleg

Новичок
Сообщения
11
Репутация
0
при таком раскладе ругается на
Код:
iCupBot_.au3" (27385) : ==> Unknown function name.:
$glit1=_imagesearcharea($glit[i], 1, $smx1, $smy1, $smx2, $smy2, $x, $y, $percents[i])
$glit1=_imagesearcharea($glit[^ ERROR
>Exit code: 1    Time: 24.11
 

Hikari

Новичок
Сообщения
22
Репутация
0
Oleg, попробуйте так
Код:
$elements = 4
Local $glit[$elements]
Local $percents[$elements]
$glit[0] = "data\mos.bmp"
$glit[1] = "data\kara.bmp"
$glit[2] = "data\hint.bmp"
$glit[3] = "data\wood.bmp"
 $percents[0] = 10
$percents[1] = 15
$percents[2] = 40
$percents[3] = 30

for $i = 0 To $elements
    $glit1=_imagesearcharea($glit[i], 1, $smx1, $smy1, $smx2, $smy2, $x, $y, $percents[i])
    if $glit1 Then
        GUICtrlSetData($logbook, _nowtime() & " - Нашёл " & $i & @CRLF,  1)
    endif
Next

возможно for вышел за пределы массива...(я сам новичок в AutoIT)
 
Автор
О

Оleg

Новичок
Сообщения
11
Репутация
0
Я не вижу разницы ,выделите то что вы поменяли
 

ra4o

AutoIT Гуру
Сообщения
1,165
Репутация
247
Исправьте эту строку
Код:
for $i = 0 To $elements ; не верно, так как последний элемент массива на единицу меньше размера самого массива
for $i = 0 To $elements-1 ; так нужно
 
Автор
О

Оleg

Новичок
Сообщения
11
Репутация
0
Нет ,та же самая ошибка
Код:
$glit1=_imagesearcharea($glit[i], 1, $smx1, $smy1, $smx2, $smy2, $x, $y, $percents[i])
$glit1=_imagesearcharea($glit[^ ERROR
>Exit code: 1    Time: 11.69
 

Hikari

Новичок
Сообщения
22
Репутация
0
Код:
$glit[$i];я потерял "доллар" перед названием переменной
:rofl:
 
Автор
О

Оleg

Новичок
Сообщения
11
Репутация
0
и еще в $percents[$i] (это если кому то еще понадобится код) .
Спасибо всем за помощь.Буду тестить ,а завтра закрою тему



Добавлено:
Сообщение автоматически объединено:

Всем спасибо за помощь,скрипт работает.Темау закрываю
 
Верх