Author Topic: клик по двигающемуся объекту  (Read 8332 times)

0 Members and 5 Guests are viewing this topic.

htc8bit

  • Зашел в гости
  • *
  • Posts: 16
    • View Profile
клик по двигающемуся объекту
« on: February 21, 2016, 08:48:40 AM »
Доброго времени суток всем
нужна помощь экспертов

написал скрипт для одной онлайн игры, но почему-то он не работает (частично)

Code: [Select]
// область поиска
$x_1 = 0
$y_1 = 63
$x_2 = 1358
$y_2 = 731

// область мини карты
$x_mini_1 = 1113
$y_mini_1 = 266
$x_mini_2 = 1287
$y_mini_2 = 373


start:
$rx = RND($x_mini_1,$x_mini_2)
$ry = RND($y_mini_1,$y_mini_2)
LCLICK($rx,$ry) // рандомный клик по миникарте

//Клик по красной точке на мини карте
$var=0
FOR($var, $var < 10, 1)
WAITMS(100)
COLORMODE(6,$x_mini_1,$y_mini_1,$x_mini_2,$y_mini_2)
GETSCREEN($x_mini_1,$y_mini_1,$x_mini_2,$y_mini_2)
IF_PIXEL_IN($x_mini_1,$y_mini_1,$x_mini_2,$y_mini_2, 255)
LCLICK($_return1,$_return2)
WAIT(2)
END_IF

//Клик по мобу
COLORMODE(6,$x_mini_1,$y_mini_1,$x_mini_2,$y_mini_2)
GETSCREEN($x_1,$y_1, $x_2,$y_2)
IF_PIXEL_IN($x_mini_1,$y_mini_1,$x_mini_2,$y_mini_2,327746)
DBLCLICK($_return1+1,$_return2-5)
WAITMS(100)
KEYPRESS(#CTRL)
WAIT(10)
END_IF
END_CYC
GOTO(start)

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

htc8bit

  • Зашел в гости
  • *
  • Posts: 16
    • View Profile
Re: клик по двигающемуся объекту
« Reply #1 on: February 21, 2016, 10:46:35 AM »
пробовал такой вариант, такая же басня

Кликермен

  • Активный участник
  • ***
  • Posts: 112
    • View Profile
Re: клик по двигающемуся объекту
« Reply #2 on: February 21, 2016, 11:21:15 AM »
колормод нужно делать после гетскрина) а зачем тебе кликать ф после клика на моба?
Если что-то меняет координату, и не получается нажать - зацикли, то есть пока не нажмет, чтоб не переходил к следующему шагу. при клике что-то меняется? ставь акцент на это.  проверяй, что меняется  и кликай еще.  а еще в режиме привязки клики работают по другому) а то мне кажется, ты используешь привязку, супер защищенный клиент впридачу..)
Code: (clickermann) [Select]
// область поиска.
$x_1 = 0
$y_1 = 63
$x_2 = 1358
$y_2 = 731

// область мини карты
$x_mini_1 = 1113
$y_mini_1 = 266
$x_mini_2 = 1287
$y_mini_2 = 373


While($bi2=0)
$rx = RND($x_mini_1,$x_mini_2)
$ry = RND($y_mini_1,$y_mini_2)
LCLICK($rx,$ry) // рандомный клик по миникарте

//Клик по красной точке на мини карте
FOR($var=0, $var < 10)
WAITMS(100)
GETSCREEN($x_mini_1,$y_mini_1,$x_mini_2,$y_mini_2)
COLORMODE(6,$x_mini_1,$y_mini_1,$x_mini_2,$y_mini_2)
IF_PIXEL_IN($x_mini_1,$y_mini_1,$x_mini_2,$y_mini_2, 255)
LCLICK($_return1,$_return2)
WAIT(2)
END_IF

//Клик по мобу
GETSCREEN($x_1,$y_1, $x_2,$y_2)
COLORMODE(6,$x_mini_1,$y_mini_1,$x_mini_2,$y_mini_2)
IF_PIXEL_IN($x_mini_1,$y_mini_1,$x_mini_2,$y_mini_2,327746)
DBLCLICK($_return1+1,$_return2-5)
WAITMS(100)
KEYPRESS(#CTRL)
WAIT(10)
END_IF
END_CYC
END_CYC
« Last Edit: February 21, 2016, 11:27:00 AM by Кликермен »

htc8bit

  • Зашел в гости
  • *
  • Posts: 16
    • View Profile
Re: клик по двигающемуся объекту
« Reply #3 on: February 21, 2016, 11:31:08 AM »
а как зациклить?
я просто нуп

htc8bit

  • Зашел в гости
  • *
  • Posts: 16
    • View Profile
Re: клик по двигающемуся объекту
« Reply #4 on: February 21, 2016, 11:44:27 AM »
колормод нужно делать после гетскрина) а зачем тебе кликать ф после клика на моба?
Если что-то меняет координату, и не получается нажать - зацикли, то есть пока не нажмет, чтоб не переходил к следующему шагу. при клике что-то меняется? ставь акцент на это.  проверяй, что меняется  и кликай еще.  а еще в режиме привязки клики работают по другому) а то мне кажется, ты используешь привязку, супер защищенный клиент впридачу..)
Code: (clickermann) [Select]
// область поиска.
$x_1 = 0
$y_1 = 63
$x_2 = 1358
$y_2 = 731

// область мини карты
$x_mini_1 = 1113
$y_mini_1 = 266
$x_mini_2 = 1287
$y_mini_2 = 373


While($bi2=0)
$rx = RND($x_mini_1,$x_mini_2)
$ry = RND($y_mini_1,$y_mini_2)
LCLICK($rx,$ry) // рандомный клик по миникарте

//Клик по красной точке на мини карте
FOR($var=0, $var < 10)
WAITMS(100)
GETSCREEN($x_mini_1,$y_mini_1,$x_mini_2,$y_mini_2)
COLORMODE(6,$x_mini_1,$y_mini_1,$x_mini_2,$y_mini_2)
IF_PIXEL_IN($x_mini_1,$y_mini_1,$x_mini_2,$y_mini_2, 255)
LCLICK($_return1,$_return2)
WAIT(2)
END_IF

//Клик по мобу
GETSCREEN($x_1,$y_1, $x_2,$y_2)
COLORMODE(6,$x_mini_1,$y_mini_1,$x_mini_2,$y_mini_2)
IF_PIXEL_IN($x_mini_1,$y_mini_1,$x_mini_2,$y_mini_2,327746)
DBLCLICK($_return1+1,$_return2-5)
WAITMS(100)
KEYPRESS(#CTRL)
WAIT(10)
END_IF
END_CYC
END_CYC

что то вообще не работает

Кликермен

  • Активный участник
  • ***
  • Posts: 112
    • View Profile
Re: клик по двигающемуся объекту
« Reply #5 on: February 21, 2016, 11:52:20 AM »
цвет настрой. у тебя колормод лишним был

htc8bit

  • Зашел в гости
  • *
  • Posts: 16
    • View Profile
Re: клик по двигающемуся объекту
« Reply #6 on: February 21, 2016, 12:30:03 PM »
цвет настрой. у тебя колормод лишним был

Теперь другой вопрос

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

Code: [Select]
GETSCREEN($x_1,$y_1, $x_2,$y_2)
COLORMODE(6,$x_mini_1,$y_mini_1,$x_mini_2,$y_mini_2)
IF_PIXEL_IN($x_1,$y_1, $x_2,$y_2,16644821,15785662,14200987,4141611,11311246,2891798,28117,6704703)
DBLCLICK($_return1 + 1,$_return2-5)
WAITMS(200)
LCLICK($_return1 + 1,$_return2-5)
WAITMS(200)
KEYPRESS(#CTRL)
WAIT(7)
END_IF
END_CYC
GOTO(start)

просто кликер видя определённый пиксель нажимает, но (т.к пиксель перемещается) не всегда попадает куда нужно  и ждёт свои 7 секунд чтобы продолжить действие.

как мне сделать так, чтоб если курсор не попал сразу куда нужно, то он не ждал 7 секунд, а нажимал сразу ещё пока не появится определённого цвета пиксель (это будет значить что он попал (взял в таргет) цель) , а уж после этого продолжал сценарий?
так?


Code: [Select]
a:
GETSCREEN($x_1,$y_1, $x_2,$y_2)
COLORMODE(6,$x_mini_1,$y_mini_1,$x_mini_2,$y_mini_2)
IF_PIXEL_IN($x_1,$y_1, $x_2,$y_2,16644821,15785662,14200987,4141611,11311246,2891798,28117,6704703)
DBLCLICK($_return1 + 1,$_return2-5)
WAITMS(200)
LCLICK($_return1 + 1,$_return2-5)
WAITMS(200)
GETSCREEN($x_1,$y_1, $x_2,$y_2)
IF_PIXEL_IN($x_1,$y_1, $x_2,$y_2,12205,11168,12982)
ELSE
Goto(a)
KEYPRESS(#CTRL)
WAIT(7)
END_IF
END_CYC
GOTO(start)
просто он почему-то если определяет что моб в таргете, не ждёт 7 сек а сразу ещё раз на него жмёт и опять включает атаку

Кликермен

  • Активный участник
  • ***
  • Posts: 112
    • View Profile
Re: клик по двигающемуся объекту
« Reply #7 on: February 21, 2016, 12:46:26 PM »
сверху справа есть кнопка код=кликермен.

Code: (clickermann) [Select]
// не используйте метки, иначе потом запутаетесь с трех соснах
//Клик по мобу
while($targ=0)
GETSCREEN($x_1,$y_1, $x_2,$y_2)
COLORMODE(6,$x_mini_1,$y_mini_1,$x_mini_2,$y_mini_2)
IF_PIXEL_IN($x_mini_1,$y_mini_1,$x_mini_2,$y_mini_2,16644821,15785662,14200987,4141611,11311246,2891798,28117,6704703)
DBLCLICK($_return1+1,$_return2-5)
WAITMS(100)
KEYPRESS(#CTRL)
//проверяем, появился ли таргет
GETSCREEN($x_1,$y_1, $x_2,$y_2)
COLORMODE(6,$x_mini_1,$y_mini_1,$x_mini_2,$y_mini_2)
IF_PIXEL_IN($x_mini_1,$y_mini_1,$x_mini_2,$y_mini_2,66666666666)
WAIT(7)
$targ=1
END_IF
END_IF
END_CYC
$targ=0
END_CYC

htc8bit

  • Зашел в гости
  • *
  • Posts: 16
    • View Profile
Re: клик по двигающемуся объекту
« Reply #8 on: February 21, 2016, 01:20:50 PM »
В общем какая то фигня получается

включаю кликер,начинает вроде бы действия выполнять, 1 раз выполняет и потом почему то в центр экрана нажимает и всё, стоит
хотя в сценарии такого действия нет, и пикселя такого тоже нет, а он туда жмёт постоянно пока не отключу кликер
P.s игра браузерная, без привязки к окну работает

при условии что фон чёрный, а все пиксели белого цвета


останавливается, хотя должен рандомно нажимать в заданной области, а он тупо стоит и жмёт на чёрный фон
« Last Edit: February 21, 2016, 01:31:22 PM by htc8bit »

Кликермен

  • Активный участник
  • ***
  • Posts: 112
    • View Profile
Re: клик по двигающемуся объекту
« Reply #9 on: February 21, 2016, 01:27:10 PM »
В общем какая то фигня получается

включаю кликер,начинает вроде бы действия выполнять, 1 раз выполняет и потом почему то в центр экрана нажимает и всё, стоит
хотя в сценарии такого действия нет, и пикселя такого тоже нет, а он туда жмёт постоянно пока не отключу кликер
P.s игра браузерная, без привязки к окну работает

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

htc8bit

  • Зашел в гости
  • *
  • Posts: 16
    • View Profile
Re: клик по двигающемуся объекту
« Reply #10 on: February 21, 2016, 01:34:39 PM »
В общем какая то фигня получается

включаю кликер,начинает вроде бы действия выполнять, 1 раз выполняет и потом почему то в центр экрана нажимает и всё, стоит
хотя в сценарии такого действия нет, и пикселя такого тоже нет, а он туда жмёт постоянно пока не отключу кликер
P.s игра браузерная, без привязки к окну работает

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


Code: [Select]
$x_1 = 5
$y_1 = 63
$x_2 = 1358
$y_2 = 731

// îáëàñòü ìèíè êàðòû
$x_mini_1 = 1115
$y_mini_1 = 266
$x_mini_2 = 1286
$y_mini_2 = 372

 
//Êëèê ïî êðàñíîé òî÷êå íà ìèíè êàðòå
start:
$rx = RND($x_mini_1,$x_mini_2)
$ry = RND($y_mini_1,$y_mini_2)
LCLICK($rx,$ry) // ðàíäîìíûé êëèê ïî ìèíèêàðòå

//Êëèê ïî êðàñíîé òî÷êå íà ìèíè êàðòå
$var=0
FOR($var, $var < 10, 1)
WAITMS(100)
GETSCREEN($x_mini_1,$y_mini_1,$x_mini_2,$y_mini_2)
IF_PIXEL_IN($x_mini_1,$y_mini_1,$x_mini_2,$y_mini_2,255)
LCLICK($_return1,$_return2)
WAIT(1)
END_IF


//Êëèê ïî ìîáó
while($targ=0)
GETSCREEN($x_1,$y_1, $x_2,$y_2)
IF_PIXEL_IN($x_1,$y_1, $x_2,$y_2,16644821,15785662,14200987,4141611,11311246,2891798,28117,6704703,11514286,6313289)
LCLICK($_return1 + 1,$_return2-5)
WAITMS(500)
GETSCREEN($x_1,$y_1, $x_2,$y_2)
IF_PIXEL_IN($x_1,$y_1, $x_2,$y_2,12205,11168,12982)
KEYPRESS(#CTRL)
WAIT(7)
$targ=1
END_IF
END_IF
END_CYC
$targ=0
END_CYC
GOTO(start)

Кликермен

  • Активный участник
  • ***
  • Posts: 112
    • View Profile
Re: клик по двигающемуся объекту
« Reply #11 on: February 21, 2016, 01:46:18 PM »
переход по метке был вне цикла у тебя) да и вообще, зачем тебе готт, если есть цикл var?
Code: (clickermann) [Select]
$x_1 = 5
$y_1 = 63
$x_2 = 1358
$y_2 = 731

$x_mini_1 = 1115
$y_mini_1 = 266
$x_mini_2 = 1286
$y_mini_2 = 372

 

FOR($var=0, $var < 10)
$rx = RND($x_mini_1,$x_mini_2)
$ry = RND($y_mini_1,$y_mini_2)
LCLICK($rx,$ry) //

WAITMS(100)
GETSCREEN($x_mini_1,$y_mini_1,$x_mini_2,$y_mini_2)
IF_PIXEL_IN($x_mini_1,$y_mini_1,$x_mini_2,$y_mini_2,255)
LCLICK($_return1,$_return2)
WAIT(1)
END_IF

while($targ=0)
GETSCREEN($x_1,$y_1, $x_2,$y_2)
IF_PIXEL_IN($x_1,$y_1, $x_2,$y_2,16644821,15785662,14200987,4141611,11311246,2891798,28117,6704703,11514286,6313289)
LCLICK($_return1 + 1,$_return2-5)
WAITMS(500)
GETSCREEN($x_1,$y_1, $x_2,$y_2)
IF_PIXEL_IN($x_1,$y_1, $x_2,$y_2,12205,11168,12982)
KEYPRESS(#CTRL)
WAIT(7)
$targ=1
END_IF
END_IF
END_CYC
$targ=0
END_CYC

htc8bit

  • Зашел в гости
  • *
  • Posts: 16
    • View Profile
Re: клик по двигающемуся объекту
« Reply #12 on: February 21, 2016, 01:54:39 PM »
переход по метке был вне цикла у тебя) да и вообще, зачем тебе готт, если есть цикл var?
Code: (clickermann) [Select]
$x_1 = 5
$y_1 = 63
$x_2 = 1358
$y_2 = 731

$x_mini_1 = 1115
$y_mini_1 = 266
$x_mini_2 = 1286
$y_mini_2 = 372

 

FOR($var=0, $var < 10)
$rx = RND($x_mini_1,$x_mini_2)
$ry = RND($y_mini_1,$y_mini_2)
LCLICK($rx,$ry) //

WAITMS(100)
GETSCREEN($x_mini_1,$y_mini_1,$x_mini_2,$y_mini_2)
IF_PIXEL_IN($x_mini_1,$y_mini_1,$x_mini_2,$y_mini_2,255)
LCLICK($_return1,$_return2)
WAIT(1)
END_IF

while($targ=0)
GETSCREEN($x_1,$y_1, $x_2,$y_2)
IF_PIXEL_IN($x_1,$y_1, $x_2,$y_2,16644821,15785662,14200987,4141611,11311246,2891798,28117,6704703,11514286,6313289)
LCLICK($_return1 + 1,$_return2-5)
WAITMS(500)
GETSCREEN($x_1,$y_1, $x_2,$y_2)
IF_PIXEL_IN($x_1,$y_1, $x_2,$y_2,12205,11168,12982)
KEYPRESS(#CTRL)
WAIT(7)
$targ=1
END_IF
END_IF
END_CYC
$targ=0
END_CYC

 :-[ в каком цикле разобрался тот и поставил

мне нужно чтоб он без перебоя выполнял эти действия поэтому поставил гото чтоб действие повторить

я вставил то что ты скинул он начал рандомно нажимать по чёрному фону
« Last Edit: February 21, 2016, 01:57:43 PM by htc8bit »

Кликермен

  • Активный участник
  • ***
  • Posts: 112
    • View Profile
Re: клик по двигающемуся объекту
« Reply #13 on: February 21, 2016, 02:16:57 PM »
в какой момент? код верен. работает 10 раз
1.кликаем на красный цвет в карте(надеюсь красный цвет не двигается)
2.  жмем на моба
3  проверяем появился ли таргет
4. если не появился, возвращаемся в пункт 2
5. если появился возвращаемся в пункт 1.
Вот такой вот принцип.  никаких кликов по черным пятнам нет. возможно долго карта прогружается, проверь) и чтобы было проще проверять где ломается - вставь принты(print("проверка 1, 2, 3...")),  с ними проще, когда нет  режима отладки построчной. когда чет сломается,  можно увидеть по принту,
 в чем глюк

htc8bit

  • Зашел в гости
  • *
  • Posts: 16
    • View Profile
Re: клик по двигающемуся объекту
« Reply #14 on: February 21, 2016, 02:35:32 PM »
в какой момент? код верен. работает 10 раз
1.кликаем на красный цвет в карте(надеюсь красный цвет не двигается)
2.  жмем на моба
3  проверяем появился ли таргет
4. если не появился, возвращаемся в пункт 2
5. если появился возвращаемся в пункт 1.
Вот такой вот принцип.  никаких кликов по черным пятнам нет. возможно долго карта прогружается, проверь) и чтобы было проще проверять где ломается - вставь принты(print("проверка 1, 2, 3...")),  с ними проще, когда нет  режима отладки построчной. когда чет сломается,  можно увидеть по принту,
 в чем глюк

Суть скрипта в том, что за "красными точками" на миникарте кликер должен "Бегать
т.е если на миникарте появится красная точка, то кликер будет постоянно нажимать на неё "лететь к ней" когда корабль долетает до неё  Пиксель (моб), который нужно взять в таргет появится в основном игровом окне
Кликер должен его увидеть и перестать "бегать за красной точкой на миникарте" а начать нажимать на пиксель, который его интересует. Когда моб в таргете, вокруг него появляется красный круг (на скриншоте красный, но вообще оранжевый)
после того как этот круг появился он должен нажать Ctrl, а если круга нет, то должен нажать на него ещё раз и так пока круг не появится.
после того как интересующие кликера пиксели пропадут из игрового окна "из зоны поиска"
он должен опять начать бегать за красными точками на миникарте, которые сами по себе тоже двигаются.