Посмотрел видео автора Kibor и скопипастил код для игры. Действия игры одинаковы как и функции показанные на видео.
Суть проблемы в том что когда оно сканирует окно, то сразу без разбора есть ли нужное изображение или нет начинает выполнять подсечку. Может версия Kibor была раньше с другими функциями и у меня старый код ?
win w=window ("NoxPlayer1 Основа", -1, -1, -1, 1526, 900, -1);
if (w==0){messagebox ("Нет изображения"); goto er;}
activate(w);
pause(1000);
int Image_0[11][8];
if (load_images()==-1){messagebox ("Нету"); goto er;}
Подсечка();
er:;
function Подсечка()
{
int x, y;
while(findimage(1, #Image_0[0][0], -1, #x, #y, 0, 0, w.width, w.height, w)==1)sleep(1000);
key(32);
sleep(500);
}
function load_images()
{
if (loadimage (#Image_0[0][0], "C:\Users\Никита\Desktop\Image_0.bmp")<1) return -1;
return 1;
}
1. Agent_Cent - 17 Июля, 2021 - 11:51:20 - перейти к сообщению
2. Zireael - 17 Июля, 2021 - 12:41:58 - перейти к сообщению
Во вкладке графика при нажатии Ctrl+Shift+S отображается окно игры?
Что возвращает findimage?
Что возвращает findimage?
CODE:
win w=window ("NoxPlayer1 Основа", -1, -1, -1, 1526, 900, -1);
if (w==0){messagebox ("Окно не найдено"); goto er;}
activate(w);
pause(1000);
int Image_0[11][8];
if (load_images()==-1){messagebox ("Картинка не загружена"); goto er;}
int x, y;
messagebox(findimage(1, #Image_0[0][0], -1, #x, #y, 0, 0, w.width, w.height, w));
er:;
function load_images()
{
if (loadimage (#Image_0[0][0], "C:\Users\Никита\Desktop\Image_0.bmp")<1) return -1;
return 1;
}
if (w==0){messagebox ("Окно не найдено"); goto er;}
activate(w);
pause(1000);
int Image_0[11][8];
if (load_images()==-1){messagebox ("Картинка не загружена"); goto er;}
int x, y;
messagebox(findimage(1, #Image_0[0][0], -1, #x, #y, 0, 0, w.width, w.height, w));
er:;
function load_images()
{
if (loadimage (#Image_0[0][0], "C:\Users\Никита\Desktop\Image_0.bmp")<1) return -1;
return 1;
}
3. Agent_Cent - 17 Июля, 2021 - 13:29:17 - перейти к сообщению
Во вкладке графики окно чётко отображается.
Findimage ищет изображение и я не знаю о каком возвращении идёт речь.
Хоть там и есть данная функция, но оно не выполняет свои обязанности
Findimage ищет изображение и я не знаю о каком возвращении идёт речь.
Хоть там и есть данная функция, но оно не выполняет свои обязанности
4. Zireael - 17 Июля, 2021 - 13:32:43 - перейти к сообщению
Цитата:
о каком возвращении идёт речь.
Приведённый код выведет сообщение с числом. Это то что вернёт функция findimage.
5. Agent_Cent - 17 Июля, 2021 - 13:36:10 - перейти к сообщению
Findimage выдаёт число 0
6. Zireael - 17 Июля, 2021 - 13:38:23 - перейти к сообщению
Цитата:
Findimage выдаёт число 0
Значит картинка не найдена.
7. Agent_Cent - 17 Июля, 2021 - 13:42:48 - перейти к сообщению
Возможно я что-то упустил, но на видео автор говорил о бесконечном поиске изображения тобиш каждые 50мс будет производить поиск и до того момента пока она его не найдёт подсечка не будет задействована.
8. Zireael - 17 Июля, 2021 - 13:52:40 - перейти к сообщению
Цитата:
while(findimage(1, #Image_0[0][0], -1, #x, #y, 0, 0, w.width, w.height, w)==1)sleep(1000);
Данный код означает что цикл будет выполняться пока картинка найдена.
Как только картинка не найдётся скрипт продолжит работу.
9. Agent_Cent - 17 Июля, 2021 - 13:57:59 - перейти к сообщению
Спасибо большое, но это отдалило меня от написания кода. Возможно вы можете меня направить на решение проблемы ссылкой или списком команд ?
10. Zireael - 17 Июля, 2021 - 14:02:27 - перейти к сообщению
Ждать пока картинка найдена:
Ждать пока картинка не найдена:
Цитата:
while(findimage(1, #Image_0[0][0], -1, #x, #y, 0, 0, w.width, w.height, w)==1)sleep(1000);
Ждать пока картинка не найдена:
Цитата:
while(findimage(1, #Image_0[0][0], -1, #x, #y, 0, 0, w.width, w.height, w)==0)sleep(1000);