Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - d2_bot

Pages: [1] 2 3 ... 6
1
Спасибо большое, только походу все равно делаю что-то не так

Code: [Select]
wait(3)

$x1 = 4 //левое поле
$y1 = 89
$x2 = 891
$y2 = 468
 
$x3 = 889  //правое поле
$y3 = 113
$x4 = 1012
$y4 = 161
 
$kx = ($x2-$x1)/($x4-$x3)
$ky = ($y2-$y1)/($y4-$y3)
 
$x = int(($_return1-$x3)*$kx+$x1) // координата х в левом поле, где $_return1 - это найденная координата х в правом поле
$y = int(($_return2-$y3)*$ky+$y1) // координата y в левом поле, где $_return2 - это найденная координата y в правом поле

IF_PIXEL_IN (889,113, 1012,161, 2928328)
LCLICK($_return1, $_return2) 
end_if
halt



И еще вопрос -  как с такими функциями, сделать например, чтобы делался клик сначала по правому полю где найден пиксель, затем уже по относительным координатам делался клик на левом поле?

2
Ладно, тогда уж проще использовать коэффициент смещения. Тоесть нужно точно рассчитать, во сколько раз левое поле больше правого, и соответственно смещать курсор.

Пример - правое поле в координатах (500, 100, 600, 200) - 100х100, левое (100, 100, 400, 400) - 300х300. 300/100=3 - это тот самый коэффициент.
 К примеру в правом поле нашло точку в координатах (520, 140), значит в левом получится (520-500)*3+100 = 160 - это координат а Х, (140-100)*3+100=220 - это координата У, в левом поле.

На переменных будет выглядеть так, надеюсь нигде не ошибся:

Code: (clickermann) [Select]
//($x1, $y1, $x2, $y2) - область левого поля
//($x3, $y3, $x4, $y4) - область правого поля 


$kx = ($x2-$x1)/($x4-$x3)
$ky = ($y2-$y1)/($y4-$y3)

$x = int(($_return1-$x3)*$kx+$x1) // координата х в левом поле, где $_return1 - это найденная координата х в правом поле
$y = int(($_return2-$y3)*$ky+$y1) // координата y в левом поле, где $_return2 - это найденная координата y в правом поле



И все таки не просто... подскажи пожалуйста куда вписывать координаты правого и левого поля

Code: [Select]
$kx = ($x2-$x1)/($x4-$x3)
$ky = ($y2-$y1)/($y4-$y3)

3
Получилось изменить монстров в клиенте, надо еще поиграться)


4
Прочее / Re: телеграмм
« on: December 02, 2020, 10:04:21 AM »
Поддерживаю

5
Очень мощно, код огонь, заигрался так что аж забыл зайти на форум сказать спасибо dramster и vint

FOR($d=0, $d < 1)  // нафига цикл на 1 раз? Допустим, что количество может измениться
Усвоил, там достаточно цикла подпрограммы..))


....Офигеть, даже не верится что уже немного начал понимать код, с каждым годом лучше и лучше, все благодаря завсегдатым форума, которые постоянно оказывают квалифицированную поддержку для начинающих, любителей и профессионалов на высшем уровне! Все эти знания публичны и доступны любому желающему - это великие дела!

Самый нижний код не попробовал еще пока сложноват для освоения, вернусь к нему через время)

6
Ну так я же пример выше показал. У тебя первый цикл будет выглядеть так:

Code: (clickermann) [Select]
FOR($a=0,$a<17)
   
   //это твой клик
   WAIT(8) 
   move(543,254)
   waitms(500)
   LCLICK(543,254)
   
   WAIT(1)
   KEYDOWN (#CTRL)  //переключение вкладок по порядку до семнадцатой.
   WAITMS (50)
   KEYPRESS (#PAGEDOWN)
   KEYUP (#CTRL)
   
END_CYC

WAIT(1)
KEYDOWN (#CTRL)  //вернуться на первую вкладку если надо.
WAITMS (50)
KEYPRESS (#1)
KEYUP (#CTRL)

halt



Все таки казалось что можно будет уменьшить код.. вот так получается

Code: [Select]

 
 
 
 FOR($a=0,$a<30)
    WAIT(1)
    move(510,336)
    waitms(500)
LCLICK(510,336) 

WAIT(1)
   KEYDOWN (#CTRL)  //переключение вкладок по порядку 1
   WAITMS (50)
KEYPRESS (#TAB)
waitms(50)
   KEYUP (#CTRL)
   
       WAIT(1)
    move(510,336)
    waitms(500)
LCLICK(510,336) 
          WAIT(1)
   KEYDOWN (#CTRL)  //переключение вкладок по порядку 2
   WAITMS (50)
KEYPRESS (#TAB)
waitms(50)
   KEYUP (#CTRL)
   
      WAIT(1)
    move(510,336)
    waitms(500)
LCLICK(510,336)
          WAIT(1)
   KEYDOWN (#CTRL)  //переключение вкладок по порядку 3
   WAITMS (50)
KEYPRESS (#TAB)
waitms(50)
   KEYUP (#CTRL)
   
      WAIT(1)
    move(510,336)
    waitms(500)
LCLICK(510,336) 
          WAIT(1)
   KEYDOWN (#CTRL)  //переключение вкладок по порядку 4
   WAITMS (50)
KEYPRESS (#TAB)
waitms(50)
   KEYUP (#CTRL)


END_CYC
//////////////////////////////////
 

    WAIT(8)   
  move(541,320)
   waitms(500)   
LCLICK(477,322)


          WAIT(1)
   KEYDOWN (#CTRL)  //переключение вкладок по порядку 1
   WAITMS (50)
KEYPRESS (#TAB)
waitms(50)
   KEYUP (#CTRL)
   
 
    WAIT(8)   
  move(541,320)
   waitms(500)   
LCLICK(477,322)


          WAIT(1)
 KEYDOWN (#CTRL)  //переключение вкладок по порядку 2
 WAITMS (50)
KEYPRESS (#TAB)
waitms(50)
   KEYUP (#CTRL)


 
  WAIT(8)   
 move(541,320)
 waitms(500)   
LCLICK(477,322)


 WAIT(1)
 KEYDOWN (#CTRL)  //переключение вкладок по порядку 3
 WAITMS (50)
 KEYPRESS (#TAB)
waitms(50)
   KEYUP (#CTRL)

         halt
         



7
Огромное спасибо) то что нужно, и в будущем возможно пригодиться, буду пробовать)

8
Перепробовал все колормоды от 0 до 7, в редких случаях находит, в общем у меня вариант только такой заморочки, чтобы если в правом поле пиксель найден в координате 0,0, то в большом поле он кликнул по 15,15 допустим(соответственно каждой координате из правого поля мне нужно будет забивать вручную координату для левого

9
Спасибо теперь понял))

10
Благодарю за отклик, переход по вкладкам мышкой или клавишей в принципе не важно.
Но только как это сделать в рамках цикла, к примеру в самом первом цикле 17 кликов с паузой. Нужно чтобы в одной вкладке сделался 1 клик, потом в другой, потом в третьей и это было 1 проходом кликов, в общем чтобы когда пройдет по всем вкладкам был засчитан 1 клик из 17) . И  так со всеми действиями в скрипте. Получается что нужно добавить по доп циклу к каждой группе действий или действию? В начальном примере только действия в одной вкладке, без переходов по другим, извиняюсь затупил...сейчас смотрю выходит что белеберду написал я сам)

11
Все понято правильно, но найти на большом поле точку нераально каждая картинка уникальна, а вот положение получается одно и тоже, на маленьком поле найти картинку по пикселю не проблема. Точки это условности в данном случае

12
Помогите пожалуйста, есть скрипт с циклами, нужно чтобы этот скрипт выполнялся одновременно в 15 вкладках браузера.

Code: [Select]
FOR($a=0,$a<17)
    WAIT(8)
    move(543,254)
    waitms(500)
LCLICK(543,254) 

END_CYC
//////////////////////////////////
 
  FOR($b=0,$b<4)
    WAIT(8)
  move(541,320)
   waitms(500)   
LCLICK(541,320) 

END_CYC

//////////////////////////////////
   
  FOR($c=0,$c<27)
     WAIT(8)
    move(543,254)
    waitms(500)
LCLICK(543,254)
END_CYC

//////////////////////////////////
 
  FOR($d=0,$d<1)
    WAIT(8)
    move(553,286)
    waitms(500)
LCLICK(553,286) 

END_CYC
//////////////////////////////////
   
  FOR($e=0,$e<16)
   WAIT(8)
  move(541,320)
   waitms(500)   
LCLICK(541,320)   
END_CYC 



Так вот нужно чтобы каждый клик внутри каждого цикла делался сначала в 1 вкладке, потом во второй, в третьей и т.д. Встал в тупик

13
Всем привет, помогите пожалуйста найти решение.
Есть 2 поля для работы на примере изображения


Для начала нужно найти любую из точек на правом поле, сделать по ней клик, определить ее координаты и в зависимости от того какая координата выпадет, переместить курсор на левую заданную за ранее координату по отношению к координате на правом поле, и сделать клик уже на левом поле.

Затем нужно снова проверить правое поле на наличие других точек(либо делать это сразу считая точки, не представляю даже как лучше), если они есть, то определить коры и так же переместить мышь на левое поле, относительно заданных координат правого и так далее, пока не останется точек.

Возможно такое?) 

14
Общие вопросы / Re: Цикл и анализ картинки
« on: October 16, 2020, 11:22:06 AM »
Ооо спасибо большое! Гениальное просто, аха у меня кликер не запускался я все команды не туда ставил, ну оно и понятно весь скрипт собран при помощи форума, в том числе и при твоем участии ;)

Появился вопрос дополнительный по коду)

Code: [Select]

GETSCREEN
    IF_PICTURE_IN(509,619, 539,647, "pic2.bmp")

Если тут хочу добавить действие, в случае нахождения картинки, забыл что прогу надо закрыть)
        EXECUTE("TASKKILL","/F /IM file.exe")
END_IF   - так? :-[
    ELSE


15
Общие вопросы / Цикл и анализ картинки
« on: October 16, 2020, 01:37:14 AM »
Помогите пожалуйста, вопрос в коде

Code: [Select]
wait(2)
FOR($a=1=,$a<5000)
EXECUTE (STRCONCAT("C:\Users\File\",$a,"\file.exe"))


wait(6)
$hwnd = wndfind("file") 
wait(1)
WNDSTATE ($hwnd, 1)
WNDSETINFO($hwnd, 200, 200, 900, 600)
wait(1)

---

ВОТ ТУТ НУЖНО УСЛОВИЕ, ЕСЛИ НЕ НАХОДИТ КАРТИНКУ
ТО ВЫПОЛНЯЕТ КОД ДАЛЬШЕ, ЕСЛИ НАХОДИТ, ТО ПРОПУСКАЕТ
ТЕКУЩИЙ ЦИКЛ И ПЕРЕХОДИТ К СЛЕДУЮЩЕМУ ЦИКЛУ

IF_PICTURE_IN (509,619, 539,647, "pic2.bmp")  - а дальше как сделать не могу понять
---

move(226,243)
waitms(200)
LCLICK(226,243)
waitms(200)

GETSCREEN

IF_PICTURE_IN (509,619, 539,647, "pic1.bmp")
MOVE($_return1+10, $_return2)
waitms(100)
LCLICK($_return1+10,$_return2)
waitms(200)

end_if


IF(TFCOUNT("text.txt") > $count)
INC($count,1)
ELSE
$count = 1
END_IF
$str = TFREAD ("text.txt", $count)
UNDEFINE($arr)
STRSEPARATE($str, ":", $arr)

waitms(100)


move(679,479)
waitms(200)
LCLICK(679,479)
waitms(10)
DBLCLICK(679,479)

waitms(50)
TOCLIP($arr[0]) // copy
   WAITMS (50)
   KEYDOWN (#CTRL) // paste
   WAITMS (50)
   KEYPRESS(#V)
   WAITMS (50)
   KEYUP (#CTRL)

EXECUTE("TASKKILL","/F /IM file.exe")
wait(3)

end_cyc
halt



Pages: [1] 2 3 ... 6