Добрый день,
Хотел бы попросить оптимизировать мой код для игры. Собственно, задача сводится к 4 вызовам функции _PixelGetArray Задача скрипта:
Упростил для наглядности как мог:
Если искать цвет по отдельности - всё хорошо работает, а вот если так как у меня выше - вылетает после нахождения первого пикселя и клика по нему. Посоветуйте, пожалуйста, как мне это "подружить", чтоб всё было в одном коде?
Хотел бы попросить оптимизировать мой код для игры. Собственно, задача сводится к 4 вызовам функции _PixelGetArray Задача скрипта:
1) находим все уникальные пиксели для иконок золота (0x8A7D70) и неактивных иконок зданий ресурсов (0xBBAA77) и кликаем на каждый пиксель, который находим.При клике на пиксель золотой иконки (0x8A7D70) - получаем золото в банк и иконка исчезает на 5 минут, затем снова появляется, таких иконок порядка 30 штук по всему экрану.
2) при клике на пиксель иконки неактивного здания ресурсов (0xBBAA77) , открывается окно, в котором нам нужно кликнуть в определённом квадрате области экрана. После клика окошко исчезает и иконка на здании тоже пропадает на минут 5 пока ресурс создаётся.
3 ) над зданиями ресурсов появляется икона готового продукта и нам снова нужно на него кликнуть (зданий штук 15 также по всему экрану). После клика ресурс собирается и снова появляется иконка неактивного здания ресурсов (0xBBAA77) и мы повторяем все процедуры.
2) при клике на пиксель иконки неактивного здания ресурсов (0xBBAA77) , открывается окно, в котором нам нужно кликнуть в определённом квадрате области экрана. После клика окошко исчезает и иконка на здании тоже пропадает на минут 5 пока ресурс создаётся.
3 ) над зданиями ресурсов появляется икона готового продукта и нам снова нужно на него кликнуть (зданий штук 15 также по всему экрану). После клика ресурс собирается и снова появляется иконка неактивного здания ресурсов (0xBBAA77) и мы повторяем все процедуры.
Код:
;------------------------------------ код
$X = 100
$Y = 50
$Width = 1100
$Height = 570
; иcкомый цвет пикселя
$GColor = 0xFFEE77
$MColor = 0xBB9966
$okColor = 0xB8712B
$HColor = 0xB95102
;---------------------------------------------------------- код
While 1
; код
; I =================поиск всех пикселей цвета 0xFFEE77 и клики по ним
;по задумке пока есть хоть 1 пиксель цвета 0xFFEE77 на экране скрипт не должен дальше переходить к поиску цвета 0xBB9966
$aP1 = _PixelGetArray($X, $Y, $Width, $Height, 0xFFEE77, $hControl, True)
; код
;II ===поиск каждого пикселя цвета 0xBB9966 клик по нему,поиск ближайшего пикселя 0xB8712B и клик по нему
; по задумке пока есть хоть один пиксель цвета 0xBB9966 на экране скрипт не должен переходить к поиску цвета 0xB95102
$aP2 = _PixelGetArray($X, $Y, $Width, $Height,0xBB9966, $hControl, True)
; код
;после клика на 0xBB9966 открывается окно, где будем искать первый пиксель цвета 0xB8712B и кликаем на него
$aP3 = _PixelGetArray(245, 295, 140, 175, 0xB8712B, $hControl, True)
; код
;III ==================поиск всех пикселей цвета 0xB95102 с Shade 5 и клики по ним
; снова пока на экране есть пиксели с цветом 0xB95102 не переходим в начало для поиска всех пикселей цвета 0xFFEE77
$aP4 = _Hummer($X, $Y, $Width, $Height, 0xB95102, 5, $hControl, True)
; код
;===============================================
WEnd
;---------------------------------------------------------- код
Если искать цвет по отдельности - всё хорошо работает, а вот если так как у меня выше - вылетает после нахождения первого пикселя и клика по нему. Посоветуйте, пожалуйста, как мне это "подружить", чтоб всё было в одном коде?