Помогите в написание бота.

PRO_100_IGROK

Новичок
Автор темы
2
0
Здарова, я столкнулся с проблемой, что функция ImageSearch не может найти картинку. Код очень просто но большего по сути и не надо. Мне надо, чтобы он видел вот такие картинками (они с рандомными буквами и позициями внутри прямоугольника) Вот такие буквы я заставляю его найти на экране. Я откырвал их через Googlе и скрипт их находил, а вот в игре не получается.
Код:
NumPad0::
Loop, 50
{
CoordMode, Pixel, Relative
ImageSearch, outputX, outputY, 437, 603, 804, 693, C.png
If(ErrorLevel = 0)
{
SendInput {c}
return
}
CoordMode, Pixel, Relative
ImageSearch, outputX, outputY, 437, 603, 804, 693, H.png
If(ErrorLevel = 0)
{
SendInput {h}
return
}
CoordMode, Pixel, Relative
ImageSearch, outputX, outputY, 437, 603, 804, 693, N.png
If(ErrorLevel = 0)
{
SendInput {n}
return
}
CoordMode, Pixel, Relative
ImageSearch, outputX, outputY, 437, 603, 804, 693, Y.png
If(ErrorLevel = 0)
{
SendInput {y}
return
}
CoordMode, Pixel, Relative
ImageSearch, outputX, outputY, 437, 603, 804, 693, PKM.png
If(ErrorLevel = 0)
{
SendInput {RButton}
return
}
CoordMode, Pixel, Relative
ImageSearch, outputX, outputY, 437, 603, 804, 693, SKM.png
If(ErrorLevel = 0)
{
SendInput {MButton}
return
}
CoordMode, Pixel, Relative
ImageSearch, outputX, outputY, 437, 603, 804, 693, LKM.png
If(ErrorLevel = 0)
{
SendInput {LButton}
return
}
return
}
F2:: reload return
 
Последнее редактирование:

fufelx

Потрачен
11
7
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.

fufelx

Потрачен
11
7
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
А можно по подробней? Что это за функция? За что она отвечает?

Ищет изображение на участке экрана.

AutoHotKey:
ImageSearch, OutputVarX, OutputVarY, X1, Y1, X2, Y2, ImageFile

Опции:

Несколько строк, перечисленных ниже, могут присутствовать перед именем файла. Каждую опцию следует отделять одним пробелом или табуляцией. Например: *2 *w100 *h-1 C:\Main Logo.bmp

*IconN: Чтобы помимо первой группы значков (иконок) использовать и другие, укажите сразу после *Icon номер группы. Например, *Icon2 загрузит значок по умолчанию из второй группы.

*n (диапазон оттенков): Число от 0 до 255 включительно. Указывает допустимое отклонение от заданного цвета для красной, зелёной и синей составляющих цвета каждого пикселя. Например, *2 допускает отклонение на две единицы. Этот параметр полезен, когда оттенок искомого изображения находится в некотором интервале. Или если используется формат, который не очень точно отображает картинку на экране (такой как GIF или JPG). Если задать диапазон оттенков 255, все цвета будут отвечать этим условиям. По умолчанию принимает значение 0.

*TransN: Эта опция упрощает поиск. Укажите в пределах изображения один цвет, который на экране может принимать любое значение. Используется, как правило, для поиска изображений формата PNG, GIF и TIF, имеющих прозрачные участки (для значков эта опция не требуется, так как их прозрачность определяется автоматически). Для файлов GIF скорее всего сработает *TransWhite. Для файлов PNG и TIF – *TransBlack. Иначе укажите в качестве N другое название цвета или значение в формате RGB (см. таблицу цветов или используйте команду PixelGetColor в режиме RGB). Примеры: *TransBlack, *TransFFFFAA, *Trans0xFFFFAA.

*wn и *hn: Ширина и высота, под которые масштабируется изображение (эти размеры также определяют, который значок будет загружен из файла ICO). Если обе опции опущены, значки, загружаемые из файлов ICO, DLL или EXE будут приведены к системному размеру маленьких значков по умолчанию, который обычно составляет 16 на 16 пикселей (чтобы принудительно использовать действительный/внутренний размер, укажите *w0 *h0). При загрузке изображений, не являющихся значками (иконками), используются их действительные размеры. Чтобы сжать или растянуть изображение, сохраняя пропорции, укажите -1 для одного размера и положительное число для другого. Например, если указать*w200 *h-1, ширина изображения составит 200 пикселей, а высота будет установлена автоматически.

Я вам предлагаю, поиграться со значением *n перед фотографией, что повысит шанс того, что она будет найдена.
AutoHotKey:
ImageSearch, outputX, outputY, 437, 603, 804, 693, *100 C.png
 

PRO_100_DED

Новичок
18
2
Я вам предлагаю, поиграться со значением *n перед фотографией, что повысит шанс того, что она будет найдена.
AutoHotKey:
ImageSearch, outputX, outputY, 437, 603, 804, 693, *100 C.png
К сожалению тоже не помогает. Есть люди которые уже сделали бота (платный) и у них вот такие скрины кнопок. Я пытаюсь почему они так сделали? Может вы поймёте и подскажите мне.
И ещё вопрос. Данные функции *wn и *hn могут мне помочь?
 

SlavaU

Новичок
12
1
В разных окнах свои координаты
Попробуй во время рыбалки нажать F6 чтобы появилась мышка и этим скриптом посмотреть корды.
+ сделай новые скрины и обрезать их чтобы были только буквы и всё это в формате .png и лучше всего скрины обрезать в paint

Скрипт на координаты
Numpad1::
mousegetpos MX, MY
pixelgetcolor, Color, %MX%, %MY%, RGB
msgbox x = %MX%, y= %MY%, color = %Color%
 

PRO_100_DED

Новичок
18
2
В разных окнах свои координаты
Попробуй во время рыбалки нажать F6 чтобы появилась мышка и этим скриптом посмотреть корды.
+ сделай новые скрины и обрезать их чтобы были только буквы и всё это в формате .png и лучше всего скрины обрезать в paint

Скрипт на координаты
Numpad1::
mousegetpos MX, MY
pixelgetcolor, Color, %MX%, %MY%, RGB
msgbox x = %MX%, y= %MY%, color = %Color%
Здравствуйте, я пользовался похожим скриптом когда искал координаты, картинки я обрезал в Paint3D (Win10). Я конечно попробую по новой но врят ли это поможет. Спасибо, что попытались помочь.
 

Magomed000333

Новичок
7
1
Попробуй мой код.

; Путь, где хранятся картинки для поиска:
Dir = %A_WorkingDir%

; Список где названия картинок с расширением, в качестве делителя строки будет символ '-'

List = A.png-D.png-K.png-L.png-N.png-O.png-P.png-R.png-W.png-Y.png

; Время ожидания перед очередным поиском картинок: (указываем в мс)
Time := 50 ;
Return



; F2 - Кнопка запуска таймера, который будет запускать метку 'Search' каждое 'Time' время:
F2::
SetTimer, Search, %Time%
Return

; F6 - Кнопка выключения таймера
F6::
SetTimer, Search, Off
ToolTip, Поиск картинок выключен.
Sleep, 3000
ToolTip
Return


Search:
Loop, parse, List, -
{
File_Name := A_LoopField
ImageSearch, Coordinate_X, Coordinate_Y, 0, 0, A_ScreenWidth-134, A_ScreenHeight-152, *60 %Dir%\%File_Name%
If ErrorLevel = 0 ; Если картинка найдена:
{
MouseMove, %Coordinate_X%, %Coordinate_Y%, 0 ; Переместить мышь на картинку
ToolTip, Найдена: %File_Name%`nПозиция: %Coordinate_X%`, %Coordinate_Y% ,0,0

; Кнопки, что будут нажиматься: (определение по названию файла - добавить остальные)
If File_Name = A.png
Send, A
Else If File_Name = D.png
Send, {D}
Else If File_Name = K.png
Send, K
Else If File_Name = L.png
Send, L
If File_Name = N.png
Send, N
Else If File_Name = O.png
Send, O
Else If File_Name = P.png
Send, P
Else If File_Name = R.png
Send, R
If File_Name = W.png
Send, W
Else If File_Name = Y.png
Send, Y


ToolTip
Return
}
If ErrorLevel = 2
{
MsgBox, 8256, ERROR: Ошибка поиска, Не удалось провести поиск. Отсутствует файл %File_name%
Return
}
Else if ErrorLevel = 1
{
ToolTip, Картинка %File_name%`nне найдена ,0,0
Sleep, 1000
ToolTip
}

}
Return
 

Pizduk2277

Активный
292
33
Попробуй мой код.

; Путь, где хранятся картинки для поиска:
Dir = %A_WorkingDir%

; Список где названия картинок с расширением, в качестве делителя строки будет символ '-'

List = A.png-D.png-K.png-L.png-N.png-O.png-P.png-R.png-W.png-Y.png

; Время ожидания перед очередным поиском картинок: (указываем в мс)
Time := 50 ;
Return



; F2 - Кнопка запуска таймера, который будет запускать метку 'Search' каждое 'Time' время:
F2::
SetTimer, Search, %Time%
Return

; F6 - Кнопка выключения таймера
F6::
SetTimer, Search, Off
ToolTip, Поиск картинок выключен.
Sleep, 3000
ToolTip
Return


Search:
Loop, parse, List, -
{
File_Name := A_LoopField
ImageSearch, Coordinate_X, Coordinate_Y, 0, 0, A_ScreenWidth-134, A_ScreenHeight-152, *60 %Dir%\%File_Name%
If ErrorLevel = 0 ; Если картинка найдена:
{
MouseMove, %Coordinate_X%, %Coordinate_Y%, 0 ; Переместить мышь на картинку
ToolTip, Найдена: %File_Name%`nПозиция: %Coordinate_X%`, %Coordinate_Y% ,0,0

; Кнопки, что будут нажиматься: (определение по названию файла - добавить остальные)
If File_Name = A.png
Send, A
Else If File_Name = D.png
Send, {D}
Else If File_Name = K.png
Send, K
Else If File_Name = L.png
Send, L
If File_Name = N.png
Send, N
Else If File_Name = O.png
Send, O
Else If File_Name = P.png
Send, P
Else If File_Name = R.png
Send, R
If File_Name = W.png
Send, W
Else If File_Name = Y.png
Send, Y


ToolTip
Return
}
If ErrorLevel = 2
{
MsgBox, 8256, ERROR: Ошибка поиска, Не удалось провести поиск. Отсутствует файл %File_name%
Return
}
Else if ErrorLevel = 1
{
ToolTip, Картинка %File_name%`nне найдена ,0,0
Sleep, 1000
ToolTip
}

}
Return
Такой огромный и бестолковый код, когда можно использовать команды pixelsearch, filecreatedir, fileinstall
 

Magomed000333

Новичок
7
1
Такой огромный и бестолковый код, когда можно использовать команды pixelsearch, filecreatedir, fileinstall
Дядь, если ты мастер, помоги ка сделать, чтобы он нажимал кнопки с картинки, код я скинул, раз ты знаешь, как сделать лучше, то lets go
 

Pizduk2277

Активный
292
33
Дядь, если ты мастер, помоги ка сделать, чтобы он нажимал кнопки с картинки, код я скинул, раз ты знаешь, как сделать лучше, то lets go
Бесплатно я не делаю. То что ты скинул - пук в пустоту