sakr1dd |
Отправлено: 05 Октября, 2013 - 15:14:04
|
Наблюдатель
Покинул форум
Сообщений всего: 27
Дата рег-ции: Окт. 2013
Репутация: 0
|
Kibor пишет: sakr1dd пишет: код пишется через Image_2 и файла нету
Наверно имеется в виду имя переменной int ? а не файла.
Короче замените своими именами и он не будет меняться. Обязательно следите за размером массива int при замене изображения. http://filesd.net/kibor/loadimage.php
Теперь когда картинка загружается попробуйте такой код:
Цитата: int PosX, PosY;
if (findimage(1, # Image_0[0][0], 0, #PosX, #PosY, 0, 0, 1366, 768, -1)==1)
{
mousemove(PosX, PosY);
}
else messagebox("не нашли" ;
Свою поставьте переменную и разрешение экрана.
Да... Проверьте или тот участок что ищется не динамичный. Не полупрозрачный. CTRL+SHIFT+A http://filesd.net/kibor/scannerg...hicinterface.php
Картинка загружается по прежнему,разрешение экрана точно такое же как и в примере,переменная тоже такая же,но почему то выполняется else
(Добавление)
Стоп у меня вопрос,если не сохранять то выполняться не будет?)) если да то это провал,я до этого не сохранялся,а просто запускал программу))))))))
(Добавление)
Сохранил - заработало прошу прощения большая глупость) |
|
|
Kibor |
Отправлено: 05 Октября, 2013 - 15:20:17
|
Эксперт
Покинул форум
Сообщений всего: 8225
Дата рег-ции: Март 2013
Откуда: Одесса
Репутация: 357
|
Закройте короче игру. Просто на рабочем столе сделайте рисунок с обоев. Размер не более 100 на 100.
Сохраните под именем C:\Image_0.bmp
И выполните.
CODE:int Image_0[100][100];
if (loadimage (#Image_0[0][0], "C:\Image_0.bmp")>0)messagebox("Congr");
else messagebox ("nooo");
int PosX, PosY;
if (findimage(1, #Image_0[0][0], 0, #PosX, #PosY, 0, 0, 1366, 768, -1)==1)mousemove(PosX, PosY);
else messagebox("не нашли");
Если не нашли проверьте или тот участок что ищется не динамичный. Не полупрозрачный. CTRL+SHIFT+A http://filesd.net/kibor/scannergraphicinterface.php
(Добавление)
Добавление:
sakr1dd пишет: Стоп у меня вопрос,если не сохранять то выполняться не будет?)) если да то это провал,я до этого не сохранялся,а просто запускал программу))))))))
(Добавление)
Сохранил - заработало Голливудская улыбка прошу прощения большая глупость)
Работает без сохранения скрипта. Наверно имелось в виду запуск второй кнопкой? Контролы управления Кибор. |
|
|
sakr1dd |
Отправлено: 05 Октября, 2013 - 15:37:19
|
Наблюдатель
Покинул форум
Сообщений всего: 27
Дата рег-ции: Окт. 2013
Репутация: 0
|
[quote=Kibor]Закройте короче игру. Просто на рабочем столе сделайте рисунок с обоев. Размер не более 100 на 100.
Сохраните под именем C:\Image_0.bmp
И выполните.
CODE:int Image_0[100][100];
if (loadimage (#Image_0[0][0], "C:\Image_0.bmp")>0)messagebox("Congr");
else messagebox ("nooo");
int PosX, PosY;
if (findimage(1, #Image_0[0][0], 0, #PosX, #PosY, 0, 0, 1366, 768, -1)==1)mousemove(PosX, PosY);
else messagebox("не нашли");
Если не нашли
Kibor пишет: Проверьте или тот участок что ищется не динамичный. Не полупрозрачный. CTRL+SHIFT+A (для просмотра ссылки Вам необходимо авторизоваться) /quote]
(Добавление)
Добавление:
sakr1dd пишет: Стоп у меня вопрос,если не сохранять то выполняться не будет?)) если да то это провал,я до этого не сохранялся,а просто запускал программу))))))))
(Добавление)
Сохранил - заработало Голливудская улыбка прошу прощения большая глупость)
Работает без сохранения скрипта. Наверно имелось в виду запуск второй кнопкой? Контролы управления Кибор.
Сделал рисунок с обоев,выполняется действие,мышка перемещается на тот участок.. При наведении на кнопку Принять(не в киборе,а в программе),она подчеркивается и меняет цвет,это и есть динамические пиксели? |
|
|
sakr1dd |
Отправлено: 05 Октября, 2013 - 23:58:02
|
Наблюдатель
Покинул форум
Сообщений всего: 27
Дата рег-ции: Окт. 2013
Репутация: 0
|
Kibor пишет: Динамичные пикселя, это к примеру когда табличка в игре имеет прозрачность. Под ней проявляется фон самой игры. Тогда рисунок не найдется, так как он постоянно имеет разный цвет пикселей. В этом случае используется loadimage расширенная. поиска изображения по неполному совпадению.
Определить такие участки можно нажав CTRL+SHIFT+S и (CTRL+SHIFT+A 2 раза)
Вот смотрите,можно ли тут через картинку делать? (для просмотра ссылки Вам необходимо авторизоваться) (Добавление)
[quote=sakr1dd] Kibor пишет: Динамичные пикселя, это к примеру когда табличка в игре имеет прозрачность. Под ней проявляется фон самой игры. Тогда рисунок не найдется, так как он постоянно имеет разный цвет пикселей. В этом случае используется loadimage расширенная. поиска изображения по неполному совпадению.
Определить такие участки можно нажав CTRL+SHIFT+S и (CTRL+SHIFT+A 2 раза)
Вот смотрите,можно ли тут через картинку делать? (для просмотра ссылки Вам необходимо авторизоваться) /quote]
На данный момент у меня дела обстоят так,бот наводит и кликает по картинке(по кнопочке принять),но только когда окно открыто,если не открыто просто заканчивается программа,как сделать так чтобы нужное окно разворачивалось.
Код выглядит след. образом
CODE:win wind=window ("Друзья", "USurface_10951222", 1077, 222, -1, -1, -1);
int Image_1[43][10];
if (loadimage (#Image_1[0][0], "C:\Image_0.bmp")>0)
messagebox("Congr");
else messagebox ("nooo");
int PosX, PosY;
if (findimage(1, #Image_1[0][0], 0, #PosX, #PosY, 0, 0, 1366, 768, -1)==1)
{
mousemove(PosX, PosY);
mouse(LEFT);
}
|
|
|
sakr1dd |
Отправлено: 06 Октября, 2013 - 10:16:47
|
Наблюдатель
Покинул форум
Сообщений всего: 27
Дата рег-ции: Окт. 2013
Репутация: 0
|
Kibor пишет: sakr1dd пишет: как сделать так чтобы нужное окно разворачивалось
Не знаю. Понятия не имею что за окно.
И win wind=window ("Друзья", "USurface_10951222", 1077, 222, -1, -1, -1); вообще не надо в этом скрипте, так как тут везде координаты экранные.
А вот как можно сделать так,когда картинка одна и та же,а надо чтобы бот нажимал по порядку а не на первую попавшуюся? Как то чтобы картинка находилась отталкиваясь допустим от какого-то элемента или другой картинки? |
|
|
sakr1dd |
Отправлено: 06 Октября, 2013 - 10:47:10
|
Наблюдатель
Покинул форум
Сообщений всего: 27
Дата рег-ции: Окт. 2013
Репутация: 0
|
Kibor пишет: sakr1dd пишет: А вот как можно сделать так,когда картинка одна и та же,а надо чтобы бот нажимал по порядку а не на первую попавшуюся? Как то чтобы картинка находилась отталкиваясь допустим от какого-то элемента или другой картинки?
Разные есть для этого способы. Зависит от ситуации.
Можно отталкиваться от номера найденной картинки, можно искать только в той области где надо, можно привязать к другой картинке, если ее расположение одинаково к расположению искомой всегда...
Нужен скрин с полным пояснением.
|
|
|
Kibor |
Отправлено: 06 Октября, 2013 - 11:31:01
|
Эксперт
Покинул форум
Сообщений всего: 8225
Дата рег-ции: Март 2013
Откуда: Одесса
Репутация: 357
|
Ищем относительно зеленого контакта
Цитата: int Image_1[100][100];
if (loadimage (#Image_1[0][0], "C:\Image_1.bmp")>0)messagebox("Image_1 Congr");//Зеленая тамка это
else messagebox ("Image_1 nooo");
int Image_2[100][100];
if (loadimage (#Image_2[0][0], "C:\Image_2.bmp")>0)messagebox("Image_2 Congr");
else messagebox ("Image_2 nooo");
int PosX_K, PosY_K;//Координаты рамки зеленой
int PosX, PosY;//Координаты галки
if (findimage(1, #Image_1[0][0], фоновый_цвет_красный, #PosX_K, #PosY_K, 0, 0, 1366, 768, -1)==1)//Нашли зеленую рамку
{
//Ищется галка начиная от PosX_K, PosY_K (левый верхний угол рамки)
if (findimage(1, #Image_2[0][0], 0, #PosX, #PosY, PosX_K, PosY_K, 1366, 768, -1)==1)
{
mousemove(PosX, PosY);
mouse(LEFT);
}
} |
|
|
|