Кибор » Кибор - Интегрированная среда разработки ботов » Вопросы и решение проблем » Как сократить запись?

Страниц (3): « 1 [2] 3 »
 

11. Zireael - 22 Мая, 2019 - 06:40:42 - перейти к сообщению
 Цитата:
Тут у меня почему-то и без этих скобок работает. Возвращает как надо.

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;
}
12. Budni - 22 Мая, 2019 - 06:46:42 - перейти к сообщению
Zireael , Всё понял я перепутал с такой записью, спасибо
CODE:
messagebox(klik1()); // 1 всегда

function klik1()
{
int ko=0;
if(ko>0) return 1;
return 0;
}
13. AdryV - 22 Мая, 2019 - 06:50:22 - перейти к сообщению
 Budni пишет:
Так что если координаты не 0,0,100,100 / 0,0,200,200 и т.д. а 24,54,100,100 / 43,23,200,200 ???

чет я совершенно не понял о чем вы спрашиваете..... переформулируйте ваш вопрос....
и как Zireael , написал у вас ошибка логики...
как может функция вернуть 0 если до return 0; не возможно дойти.....
14. Budni - 22 Мая, 2019 - 07:12:20 - перейти к сообщению
 Цитата:
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;
}
15. Budni - 22 Мая, 2019 - 09:23:08 - перейти к сообщению
Я так подумал, получается можно же использовать всего одну функцию поиска по пикселям на весь код?

 Цитата:

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;
}

Вот только не могу додумать а как быть с Массивами? (выделил красным цветом) Как задавать значения в самой функции? к примеру если несколько цветов?
16. Kibor - 22 Мая, 2019 - 09:49:55 - перейти к сообщению
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;
}

(Добавление)
Исправил.
17. Budni - 22 Мая, 2019 - 10:22:25 - перейти к сообщению
Спасибо! Единственное не понял для чего я sizearray(color) писал в коде?
18. Kibor - 22 Мая, 2019 - 10:45:42 - перейти к сообщению
sizearray в данном случае не работает, так как не может определить размерность массива переданного по указателю.
19. Budni - 23 Мая, 2019 - 08:04:45 - перейти к сообщению
Я тут ещё подумал, получается и для поиска по картинкам можно сократить код до 1 функции?
20. Budni - 23 Мая, 2019 - 10:34:06 - перейти к сообщению
И ещё вопрос можно ли так записывать?
function klik1(int #kol, #kk, p, r, par, par1,par2, par3, xMouse, yMouse)

Powered by ExBB FM 1.0 Final