Автоматизация и боты

 Помощь      Поиск      Пользователи
Сайт Кибор     Программируемый кликер Кибор     Видео обучение     Заказать бот

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

> Без описания
Budni
Отправлено: 17 Мая, 2019 - 20:06:03
Post Id



Пользователь
Специалист


Покинул форум
Сообщений всего: 418
Дата рег-ции: Март 2018  
Репутация: 2




В общем я подумал что можно как то сократить код, как это сделать в данном случае?

CODE:

int x, y, x1, y1, x2, y2, x3, y3, x4, y4;
x=1;y=2;x1=23;y1=3;x2=1;y2=4;x3=23;y3=5;x4=1;y4=6;


Сделать что то типа
CODE:
int x[4]={1,23,1,23,1}; int y[4]={2,3,4,5,6};

Блин пока писал вопрос походу сам ответ написал >_<
Или всё же можно как то ещё более компактней сократить код?
 
 Top
Zireael
Отправлено: 18 Мая, 2019 - 02:15:21
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 4397
Дата рег-ции: Нояб. 2017  
Репутация: 580




 Цитата:
int x[4]={1,23,1,23,1};

Массив выделен на 4 элемента, а записывается 5. Это ошибка.
 
 Top
007wan
Отправлено: 18 Мая, 2019 - 09:55:17
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 1838
Дата рег-ции: Март 2017  
Репутация: -2




Как сократить? Прошу заметить, что текст галочек и расположение разное
Код (Отобразить)

(Добавление)
 007wan пишет:
Object_Group1
Заменить на gethwnd(0)
 
 Top
Zireael
Отправлено: 18 Мая, 2019 - 10:00:16
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 4397
Дата рег-ции: Нояб. 2017  
Репутация: 580




 Цитата:
Как сократить?

Использовать массивы и соответственно циклы.
CODE:
int Object_Checkbox1[5];
int Status_Checkbox1[5];
int Load_Checkbox1[5];
 
 Top
007wan
Отправлено: 18 Мая, 2019 - 10:01:35
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 1838
Дата рег-ции: Март 2017  
Репутация: -2




Я только знаю, что нужно создать массив:
CODE:
int Object_Checkbox[5];

Потом текст:
CODE:
Text_Checkbox[5] = {"Текст1", "Текст2"...}

Затем
CODE:
int Status_Checkbox[5];
char Load_Checkbox[5][255];
int Size_Checkbox[5] = {//цирфы через запятую}

А теперь:
Сделать через for, но не могу понять как сгруппировать координаты(размеры и расположение галочек)
(Добавление)
Тоесть не пойму как распределить заданные в переменной размеры и расположение через for. не прибавляя константу(постояяное число, например "+10")
(Добавление)
Пока вот, что вышло, но... не работает:
CODE:

int Object_Checkbox[5];
int Status_Checkbox[5];
string Text_Checkbox[5] =
{
"1",
"11",
"22",
"333",
"4444"
};
char Load_Checkbox[5][255];

int step = 0;
for (int a=0; a<sizearray(Text_Checkbox); a++)
{
Object_Checkbox[a] = CreateWindow(0, "BUTTON", Text_Checkbox[a], BS_AUTOCHECKBOX | WS_CHILD | WS_VISIBLE, 10, 50+step, 320, 20, Object_Group1, 0, 0, 0);


}

(Добавление)
Точнее вот:
но на последнюю галку текст не выводит
CODE:
for (int a=0; a<sizearray(Text_Checkbox); a++)
{
Object_Checkbox[a] = CreateWindow(0, "BUTTON", Text_Checkbox[a], BS_AUTOCHECKBOX | WS_CHILD | WS_VISIBLE, 10, 50+step, 320, 20, Object_Group1, 0, 0, 0);
step = step+20;

}

(Добавление)
Не дает текст последней галочке (Отобразить)
 
 Top
007wan
Отправлено: 18 Мая, 2019 - 12:51:46
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 1838
Дата рег-ции: Март 2017  
Репутация: -2




Испрпавил и переделал всю программу, но так и не нашел ошибку, однако всё заработало как надо.
 
 Top
Budni
Отправлено: 21 Мая, 2019 - 17:51:07
Post Id



Пользователь
Специалист


Покинул форум
Сообщений всего: 418
Дата рег-ции: Март 2018  
Репутация: 2




Как можно сократить эту запись?
Собственно цвет объекта везде одинаковый, меняется лишь координаты поиска и место для клика.

CODE:
loop (10) {
if (klik1()==1) sleep(20);
if (klik2()==1) sleep(20);
if (klik3()==1) sleep(20);
if (klik4()==1) sleep(20);
if (klik5()==1) sleep(20);
}


function klik1() {
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, 100, 100, r, r, r, r, r, r, -1);
if(ko>0) mouse(LEFT,146, 294);return 1;
return 0;
}

function klik2() {
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, 200, 200, r, r, r, r, r, r, -1);
if(ko>0) mouse(LEFT,115, 405);return 1;
return 0;
}


function klik3() {
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, 300, 300, r, r, r, r, r, r, -1);
if(ko>0) mouse(LEFT,93, 227);return 1;
return 0;
}


function klik4() {
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, 400, 400, r, r, r, r, r, r, -1);
if(ko>0) mouse(LEFT,510, 748);return 1;
return 0;
}


function klik5() {
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, 500, 500, r, r, r, r, r, r, -1);
if(ko>0) mouse(LEFT,67, 835);return 1;
return 0;
}
 
 Top
AdryV
Отправлено: 21 Мая, 2019 - 18:02:38
Post Id



Пользователь
Специалист


Покинул форум
Сообщений всего: 449
Дата рег-ции: Май 2016  
Репутация: 11




чет типа
CODE:
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;
}

(Отредактировано автором: 21 Мая, 2019 - 18:04:26)

 
 Top
Zireael
Отправлено: 22 Мая, 2019 - 01:35:30
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 4397
Дата рег-ции: Нояб. 2017  
Репутация: 580




 Цитата:
if(ko>0) mouse(LEFT,xMouse, yMouse);return 1;
return 0;

 Цитата:
if(ko>0) {mouse(LEFT,xMouse, yMouse);return 1;}
return 0;

Иначе функция всегда будет возвращать 1, независимо от результата поиска.
 
 Top
Budni
Отправлено: 22 Мая, 2019 - 14:23:47
Post Id



Пользователь
Специалист


Покинул форум
Сообщений всего: 418
Дата рег-ции: Март 2018  
Репутация: 2




 AdryV пишет:
чет типа
CODE:
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;
}



Так что если координаты не 0,0,100,100 / 0,0,200,200 и т.д. а 24,54,100,100 / 43,23,200,200 ???
(Добавление)
 Zireael пишет:
Цитата:if(ko>0) mouse(LEFT,xMouse, yMouse);return 1;
return 0;
Цитата:if(ko>0) {mouse(LEFT,xMouse, yMouse);return 1;}
return 0;
Иначе функция всегда будет возвращать 1, независимо от результата поиска.

Тут у меня почему-то и без этих скобок работает. Возвращает как надо.
 
 Top
Страниц (3): [1] 2 3 »
Сейчас эту тему просматривают: 1 (гостей: 1, зарегистрированных: 0)
« Вопросы и решение проблем »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 




Powered by