Budni |
Отправлено: 27 Мая, 2019 - 06:12:46
|
Специалист
Покинул форум
Сообщений всего: 419
Дата рег-ции: Март 2018
Репутация: 2
|
Помогите пожалуйста разобраться с поиском по динамики, пытался, что то по аналогии со справкой сделать но нечего не выходит. Не могу понять сам принцип >_<
Поиск со справки (Отобразить) Цитата: loop {
Poisk();
Perebor();
}
function Poisk()
{
finddynamic(0, #x[0], #y[0], 0, 0, 0, 0, S_X, S_Y, F_X, F_Y, w);
sleep(100);
k = finddynamic(50, #x[0], #y[0], Mob_X, Mob_Y, Raz_Din_X, Raz_Din_Y, S_X, S_Y, F_X, F_Y, 1);
}
function Perebor()
{
int n=0;
ck: if (n<k)
{
mousemove(x[n], y[n], w);
sleep(200);
if (findimage(1, #Vid_Mob[0][0], 0, #V_M_X[0], #V_M_Y[0], x[n]-80, y[n]-100, x[n]+80, y[n], w)==1)
mouse(LEFT, x[n], y[n], 0, w);
}
n++;
goto ck;
}
}
Вот само гиф изображение, нужно совершить клик, когда поплавок опустится под воду, появляются вокруг круги от брызг.
|
|
|
Zireael |
Отправлено: 27 Мая, 2019 - 11:15:59
|
Эксперт
Покинул форум
Сообщений всего: 4456
Дата рег-ции: Нояб. 2017
Репутация: 585
|
Тут нужна не динамика, а findcolor. Искать красные пиксели. Когда поплавок скрывается под водой, то пикселей становится меньше, вот это и можно проверять.
CODE:int color=2570474;
int r=30;
int x[999], y[999];
int coord[4]={1137, 471, 1227, 550}
loop()
{
int count=findcolor(sizearray(x), #x[0],#y[0], coord[0], coord[1], coord[2], coord[3], color, r, r, r, r, r, r, -1);
textout(0, coord[0], coord[1]-50, format(count), 1);
sleep(10);
if(count < 250)messagebox(111); // если найдено меньше 250 пикселей
} |
|
|
Budni |
Отправлено: 27 Мая, 2019 - 13:29:40
|
Специалист
Покинул форум
Сообщений всего: 419
Дата рег-ции: Март 2018
Репутация: 2
|
Zireael , Спасибо за решение, можете ещё тут подсказать, почему не работает?
Спойлер (Отобразить)CODE:int kol1[2]={1276157, 2077951}
int kk1[2]={10, 5}
go();
for (int a=0; a<2; a)
{
if (klik1(#kol1[0], #kk1[0], 2, 0)==1) {
loop () {
if(klik1(#kol1[0], #kk1[0], 2, 0)==0){waitoff();break;}
}
}
}
function klik1(int #kol, int #kk, int p, int r) {
int x, y; int min=1;
if (findheapcolor(1, #kol[0], #kk[0], p, min, #x, #y, 10, 10, 10, 10, 679, 615, 838, 630, r, r, r, r, r, r, -1)==1)
{
mousedown(LEFT,1554, 637);return 1;
}
a=2;
return 0;
}
function waitoff() {
mouseup(LEFT,1554, 637);
}
function waitdown() {
int color=2570219;
int r=30;
int x[999], y[999];
int coord[4]={696, 536, 894, 699};
int count=findcolor(sizearray(x), #x[0],#y[0], coord[0], coord[1], coord[2], coord[3], color, r, r, r, r, r, r, -1);
textout(0, coord[0], coord[1]-50, format(count), 1);
sleep(10);
if(count < 150) {mouse(LEFT);return 1}
}
function go {
mousedown(LEFT,1554, 637);
sleep(rand(40,80));
mouseup(LEFT,1554, 637);
sleep(1000);
loop(){if (waitdown()==1);break;}
sleep(500);
} |
|
|
Zireael |
Отправлено: 27 Мая, 2019 - 13:39:56
|
Эксперт
Покинул форум
Сообщений всего: 4456
Дата рег-ции: Нояб. 2017
Репутация: 585
|
Цитата: почему не работает?
Цитата: return 1}
Отсутствует ; после 1.
Цитата: function go {
Отсутствуют скобки () после go.
Цитата: if (waitdown()==1);break;}
; лишняя после ==1)(Отредактировано автором: 27 Мая, 2019 - 13:48:25) |
|
|
|