Zireael |
Отправлено: 22 Мая, 2019 - 14:40:42
|
Эксперт
Покинул форум
Сообщений всего: 4465
Дата рег-ции: Нояб. 2017
Репутация: 585
|
Цитата: Тут у меня почему-то и без этих скобок работает. Возвращает как надо.
CODE:messagebox(klik1()); // 1 всегда
function klik1()
{
int ko=0;
if(ko>0)mouse(LEFT, 100, 100); return 1;
return 0;
}
CODE:messagebox(klik1()); // 1 если условие истина, 0 - ложь
function klik1()
{
int ko=0;
if(ko>0){mouse(LEFT, 100, 100); return 1;}
return 0;
} |
|
|
AdryV |
Отправлено: 22 Мая, 2019 - 14:50:22
|
Специалист
Покинул форум
Сообщений всего: 449
Дата рег-ции: Май 2016
Репутация: 11
|
Budni пишет: Так что если координаты не 0,0,100,100 / 0,0,200,200 и т.д. а 24,54,100,100 / 43,23,200,200 ???
чет я совершенно не понял о чем вы спрашиваете..... переформулируйте ваш вопрос....
и как Zireael , написал у вас ошибка логики...
как может функция вернуть 0 если до return 0; не возможно дойти..... |
|
|
Budni |
Отправлено: 22 Мая, 2019 - 15:12:20
|
Специалист
Покинул форум
Сообщений всего: 419
Дата рег-ции: Март 2018
Репутация: 2
|
Цитата: loop (10) {
if (klik1(100, 100, 146, 294)==1) sleep(20);
if (klik1(200, 200, 115, 405)==1) sleep(20);
if (klik1(300, 300, 93, 227)==1) sleep(20);
if (klik1(400, 400, 510, 748)==1) sleep(20);
if (klik1(500, 500, 67, 835)==1) sleep(20);
}
function klik1(int par, int par1, int xMouse, int yMouse) {
int r=10;int color[1]={1248302};int kol[1]={4}; int x, y; int min=1;
int ko=findheapcolor(1, #color[0], #kol[0], sizearray(color), min, #x, #y, 10, 10, 10, 10, 0, 0, par, par1, r, r, r, r, r, r, -1);
if(ko>0){ mouse(LEFT,xMouse, yMouse);return 1;}
return 0;
}
Координаты что я выделил красным, что если они тоже разные. Понятно что нужно добавить ещё две переменные.
Цитата: function klik1(int par, int par1, int par2, int par3, int xMouse, int yMouse) {
int r=10;int color[1]={1248302};int kol[1]={4}; int x, y; int min=1;
int ko=findheapcolor(1, #color[0], #kol[0], sizearray(color), min, #x, #y, 10, 10, 10, 10, par2, par3, par, par1, r, r, r, r, r, r, -1);
if(ko>0){ mouse(LEFT,xMouse, yMouse);return 1;}
return 0;
}
Но в данном случае Клик идет совершенно не по тем координатам.
Думаем дальше.. Ну вроде как так должно работать
Цитата: function klik1(int par, int par1, int par2, int par3, int xMouse, int yMouse) {
int r=10;int color[1]={1248302};int kol[1]={4}; int x, y; int min=1;
int ko=findheapcolor(1, #color[0], #kol[0], sizearray(color), min, #x, #y, 10, 10, 10, 10, par2, par3, par, par1, r, r, r, r, r, r, -1);
if(ko>0){ mouse(LEFT,xMouse+par2, yMouse+par3);return 1;}
return 0;
}
Всё вроде, всем спасибо за помощь)
(Добавление)
AdryV пишет: как может функция вернуть 0 если до return 0; не возможно дойти.....
Почему то думал что если пишешь в одну строчку то как бы эти скобки есть например как тут
Цитата: messagebox(klik1()); // 1 всегда
function klik1()
{
int ko=0;
if(ko>0) return 1;
return 0;
} |
|
|
Budni |
Отправлено: 22 Мая, 2019 - 17:23:08
|
Специалист
Покинул форум
Сообщений всего: 419
Дата рег-ции: Март 2018
Репутация: 2
|
Я так подумал, получается можно же использовать всего одну функцию поиска по пикселям на весь код?
Цитата:
if (klik1(10, 0,0, 100, 100, 146, 294)==1) sleep(20);
function klik1(int r, int par, int par1, int par2, int par3, int xMouse, int yMouse) {
int color[2]={1248302,4259584};int kol[2]={4,5}; int x, y; int min=1;
int ko=findheapcolor(1, #color[0], #kol[0], sizearray(color), min, #x, #y, 10, 10, 10, 10, par2, par3, par, par1, r, r, r, r, r, r, -1);
if(ko>0){ mouse(LEFT,xMouse+par2, yMouse+par3);return 1;}
return 0;
}
Вот только не могу додумать а как быть с Массивами? (выделил красным цветом) Как задавать значения в самой функции? к примеру если несколько цветов?(Отредактировано автором: 22 Мая, 2019 - 17:24:12) |
|
|
Kibor |
Отправлено: 22 Мая, 2019 - 17:49:55
|
Эксперт
Просматривает форум
Сообщений всего: 8218
Дата рег-ции: Март 2013
Откуда: Одесса
Репутация: 357
|
CODE:int kol1[2]={255, 555}
int kk1[2]={2, 5}
int kol2[5]={8575, 598855, 3453, 67875, 234}
int kk2[5]={12, 2, 5, 5, 2}
if (klik1(#kol1[0], #kk1[0], 2, 10, 0,0, 100, 100, 146, 294)==1) sleep(20);
//if (klik1(#kol2[0], #kk2[0], 5, 10, 0,0, 100, 100, 146, 294)==1) sleep(20);
function klik1(int #kol, int #kk, int p, int r, int par, int par1, int par2, int par3, int xMouse, int yMouse) {
int x, y; int min=1;
if (findheapcolor(1, #kol[0], #kk[0], p, min, #x, #y, 10, 10, 10, 10, par2, par3, par, par1, r, r, r, r, r, r, -1)==1)
{
mouse(LEFT,xMouse+par2, yMouse+par3);return 1;
}
return 0;
}
(Добавление)
Исправил. |
|
|
Budni |
Отправлено: 23 Мая, 2019 - 18:34:06
|
Специалист
Покинул форум
Сообщений всего: 419
Дата рег-ции: Март 2018
Репутация: 2
|
И ещё вопрос можно ли так записывать?
function klik1(int #kol, #kk, p, r, par, par1,par2, par3, xMouse, yMouse) |
|
|
|