Author Topic: Помощь со скриптом  (Read 2132 times)

0 Members and 1 Guest are viewing this topic.

V1asov

  • Зашел в гости
  • *
  • Posts: 6
    • View Profile
Помощь со скриптом
« on: April 02, 2019, 05:42:17 PM »
Доброго времени суток.
Windows 7x64
Суть проблемы: нужно, чтобы скрипт переносил предмет из ячейки в ячейку, а он его просто не берёт, мучаюсь уже сутки. :) Такое ощущение, что он его даже не берёт, хотя ldown прописана.
Видео: https://www.youtube.com/watch?v=tPUpRsnDrrA (7 секунд)

Code: [Select]
// подпрограмма обязательно выше вызова
SUB(mouse_move,$MOVE_END_X,$MOVE_END_Y)
   $MOVE_SPEED = 3  // множитель скорости
 
   $MOVE_Start_X = $_xmouse
   $MOVE_Start_Y = $_ymouse
   $MOVE_X = $MOVE_Start_X
   $MOVE_Y = $MOVE_Start_Y
 
   $dist = DIST($MOVE_END_X,$MOVE_END_Y,$MOVE_Start_X,$MOVE_Start_Y)
 
   $MOVE_SPEEDVAR = INT((SQRT($dist))/$MOVE_SPEED)
 
   IF($MOVE_SPEEDVAR < 1)
      $MOVE_SPEEDVAR = 1
   END_IF
 
   $MOVE_step=($dist-1)/$MOVE_SPEEDVAR
   $MOVE_X_step = ($MOVE_END_X-$MOVE_Start_X)/$MOVE_step
   $MOVE_Y_step = ($MOVE_END_Y-$MOVE_Start_Y)/$MOVE_step
 
   FOR($MOVE_i=0, $MOVE_i<INT($MOVE_step))
      $MOVE_X = $MOVE_X + $MOVE_X_step
      $MOVE_Y = $MOVE_Y + $MOVE_Y_step
      MOVE(ROUND($MOVE_X,0), ROUND($MOVE_Y,0))
      WAITMS(1)
   END_CYC
 
   MOVE($MOVE_END_X, $MOVE_END_Y) //Передвинуть окончательно в заданную точку
END_SUB

   mouse_move(502,312) // двигаем мышь сюда
   WAITMS(1000)

   LCLICK(502,312) // 16777215
   WAITMS(1000)

   LDOWN(502,312)
   WAITMS(1000)

   move(307,321) // двигаем мышь сюда
   WAITMS(1000)

   LUP(307,321)
   WAITMS(1000)

HALT // стоп

Код, который я использую. Заранее спасибо.

dramster

  • Герой форума
  • *****
  • Posts: 1134
    • View Profile
Re: Помощь со скриптом
« Reply #1 on: April 02, 2019, 06:34:41 PM »
   Возможно, что перетаскивание не срабатывает изза резкого перемещения курсора между зажатием и отпусканием кнопки мыши
"move(307,321) // двигаем мышь сюда " . Замени на плавное передвижение "mouse_move(307,321)".

V1asov

  • Зашел в гости
  • *
  • Posts: 6
    • View Profile
Re: Помощь со скриптом
« Reply #2 on: April 02, 2019, 07:50:32 PM »
   Возможно, что перетаскивание не срабатывает изза резкого перемещения курсора между зажатием и отпусканием кнопки мыши
"move(307,321) // двигаем мышь сюда " . Замени на плавное передвижение "mouse_move(307,321)".

Один раз сработало, а после перестало. Но если во время выполнения скрипта трясти мышкой, то в принципе работает, не понятно.

dramster

  • Герой форума
  • *****
  • Posts: 1134
    • View Profile
Re: Помощь со скриптом
« Reply #3 on: April 02, 2019, 08:25:54 PM »
Измени скорость перемещения  курсора $MOVE_SPEED = 3  // множитель скорости. Увеличивая значение переменной, замедляется перемещение курсора.


И возми более реалистичное передвижение, твоя подпрограмма ведет курсор по ровной линии, есть более продвинутый вариант:
Code: (clickermann) [Select]
// подпрограммы обязательно выше вызова
SUB(mouse_move,$MOVE_END_X,$MOVE_END_Y)   
   $MOVE_Start_X = $_xmouse
   $MOVE_Start_Y = $_ymouse
   $MOVE_X = $MOVE_Start_X
   $MOVE_Y = $MOVE_Start_Y
 
   $dist = DIST($MOVE_END_X,$MOVE_END_Y,$MOVE_Start_X,$MOVE_Start_Y)
   $MOVE_step = ($dist-1)/INT(SQRT($dist))
   $MOVE_X_step = ($MOVE_END_X-$MOVE_Start_X)/$MOVE_step
   $MOVE_Y_step = ($MOVE_END_Y-$MOVE_Start_Y)/$MOVE_step
 
   FOR($MOVE_i=0, $MOVE_i < INT($MOVE_step))
      $MOVE_X = $MOVE_X + $MOVE_X_step
      $MOVE_Y = $MOVE_Y + $MOVE_Y_step
      MOVE(INT($MOVE_X) + RND(-2,2), INT($MOVE_Y) + RND(-2,2))
      WAITMS(RND(3,9)) // задержка при движении по точкам случайная скорость
   END_CYC   
END_SUB
 
SUB(m_move,$M_X,$M_Y)
   $MOVE_MID_X = INT(($_xmouse+$M_X)/2)
   $MOVE_MID_Y = INT(($_ymouse+$M_Y)/2)
   $otx = INT(ABS($_xmouse - $M_X) * 0.12)
   $oty = INT(ABS($_ymouse - $M_Y) * 0.12)
   mouse_move($MOVE_MID_X+RND(-$otx,$otx), $MOVE_MID_Y+RND(-$oty,$oty))
   mouse_move($M_X,$M_Y)
   MOVE($M_X,$M_Y)
END_SUB

В место mouse_move пиши m_move . http://crapware.aidf.org/forum/index.php?topic=2112.msg16702#msg16702

V1asov

  • Зашел в гости
  • *
  • Posts: 6
    • View Profile
Re: Помощь со скриптом
« Reply #4 on: April 02, 2019, 09:10:36 PM »
Попробовал, спасибо.
Поигрался со скоростью, поменял названия команд, но всё равно срабатывает 1 раз из 20.
Может быть в игре что-то не так? Хотя там никаких защит нету, я точно знаю.

dramster

  • Герой форума
  • *****
  • Posts: 1134
    • View Profile
Re: Помощь со скриптом
« Reply #5 on: April 02, 2019, 09:18:58 PM »
 ???

Ну есть еще вариант, возьми и запиши собственное перемещение (кнопка "Начать запись сценария") и попробуй воспроизвести этот сценарий. При записи в настройках кликера должна быть включена опция "записывать движение мыши", по умолчанию вроде она включена.

V1asov

  • Зашел в гости
  • *
  • Posts: 6
    • View Profile
Re: Помощь со скриптом
« Reply #6 on: April 02, 2019, 09:21:52 PM »
???

Ну есть еще вариант, возьми и запиши собственное перемещение (кнопка "Начать запись сценария") и попробуй воспроизвести этот сценарий. При записи в настройках кликера должна быть включена опция "записывать движение мыши", по умолчанию вроде она включена.

Да, сценарий работает, но, записываю я идеально сценарий, а на повторе в середине или где-то ещё он начинает промахиваться, хотя с координатами всё отлично.

dramster

  • Герой форума
  • *****
  • Posts: 1134
    • View Profile
Re: Помощь со скриптом
« Reply #7 on: April 02, 2019, 09:26:36 PM »
Чудесааа  :D

Такое возможно только если в игре чтото меняется (координаты твоих перемещаемых объектов), либо окно с игрой двигаешь.

V1asov

  • Зашел в гости
  • *
  • Posts: 6
    • View Profile
Re: Помощь со скриптом
« Reply #8 on: April 02, 2019, 09:28:43 PM »
Чудесааа  :D

Такое возможно только если в игре чтото меняется (координаты твоих перемещаемых объектов), либо окно с игрой двигаешь.

Спасибо. Возможно, посмотрю за этим.

И последний вопрос, а можно как то записанный сценарий ускорить?

dramster

  • Герой форума
  • *****
  • Posts: 1134
    • View Profile
Re: Помощь со скриптом
« Reply #9 on: April 02, 2019, 09:46:11 PM »
В начале сценария есть переменная  $S_CORR = 0. Она отвечает за скорость. Только както не понятно отвечает... :-\ . Я просто этим не пользовался ни разу. Скорее всего эта переменная должна быть множителем, а на деле это слагаемое к записанной задержке. А если писать этот параметр отрицательным числом, то задержка может стать с отрицательным параметром, что приводит к ошибке.

Как вариант, пиши в эту переменную дробное число чтоль  :-\ . В этом случае задержки будут игнорироваться.


V1asov

  • Зашел в гости
  • *
  • Posts: 6
    • View Profile
Re: Помощь со скриптом
« Reply #10 on: April 02, 2019, 10:21:22 PM »
https://www.youtube.com/watch?v=1zAQ6N8fi5I

Самое интересное, что скрипт работает, но вот так, то есть с n-ого раза закидывает.