Author Topic: Ребят, почему так происходит?  (Read 4718 times)

0 Members and 1 Guest are viewing this topic.

Hito

  • Герой форума
  • *****
  • Posts: 1212
    • View Profile
Ребят, почему так происходит?
« on: March 09, 2014, 03:08:22 PM »
Вот макрос...

Code: (clickermann) [Select]
IF($time1 < $_time_t)
  WAITMS(1000)
  KEYPRESS(48) // Второе дыхание
  WAITMS(1200)                               // Бафы
  KEYPRESS(57) // Заживление ран
  WAITMS(100)
  $time1 = $_time_t + 1740
END_IF

KEYPRESS(49)
WAITMS(50)                        // Скилы
KEYPRESS(50)
WAITMS(50)

Когда включаешь кликер, срабатываю бафы и потом полчаса работают скилы. Через пол часа опять юзаются бафы, но после них всё - скилы уже не нажимает. Почему так?...

И еще вопрос. Вот к примеру команда - MOVE(10,10) Можно как-то сделать, чтобы мышь из своей исходной точки по этой команде перемещалась не молниеносно, а помедленнее? Ну, скажем задать какое-то время, в течении которого мышь будет равномерно перемещаться в указанные координаты. Можно как-то так?
Я не ду... Потому и не бу...

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: Ребят, почему так происходит?
« Reply #1 on: March 09, 2014, 04:32:58 PM »
А не мало ли 50 мс? Может нет необходимости с такой скоростью долбить клавиши?

Вот пример скрипта для плавного перемещения мыши
Code: (clickermann) [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, $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




// образец строки MOVE
mouse_move(215,224) // двигаем мышь сюда
WAITMS(500)

mouse_move(1205,294)  // туда
WAITMS(500)

mouse_move(1347,1016) // и еще раз
WAITMS(500)

HALT // стоп
« Last Edit: March 09, 2014, 04:37:14 PM by Oraven »

Hito

  • Герой форума
  • *****
  • Posts: 1212
    • View Profile
Re: Ребят, почему так происходит?
« Reply #2 on: March 09, 2014, 08:01:36 PM »
А не мало ли 50 мс? Может нет необходимости с такой скоростью долбить клавиши?
Это другой вопрос... Дело-то не в этом по ходу... Скрипт перестает действовать после того, как бафы через пол часа сработают... А скорость такая потому, что там 3 скила в одном (один за другим). Но опять же - вопрос-то не в этом...
Я не ду... Потому и не бу...

Hito

  • Герой форума
  • *****
  • Posts: 1212
    • View Profile
Re: Ребят, почему так происходит?
« Reply #3 on: March 09, 2014, 08:03:38 PM »
Вот пример скрипта для плавного перемещения мыши
Code: (clickermann) [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, $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




// образец строки MOVE
mouse_move(215,224) // двигаем мышь сюда
WAITMS(500)

mouse_move(1205,294)  // туда
WAITMS(500)

mouse_move(1347,1016) // и еще раз
WAITMS(500)

HALT // стоп

Мда... Мне в этом не разобраться... Но спс за ответ...
Я не ду... Потому и не бу...

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: Ребят, почему так происходит?
« Reply #4 on: March 09, 2014, 09:00:17 PM »
А разбираться и не требуется,
Вставляешь
Code: (clickermann) [Select]
SUB(mouse_move,$MOVE_END_X,$MOVE_END_Y)
.....
END_SUB
в начало скрипта, а там где нужно плавно переместить мышь за место MOVE(100,500) пишешь mouse_move(100,500) и мышь плавно переместится с текущего положения на заданное.

Hito

  • Герой форума
  • *****
  • Posts: 1212
    • View Profile
Re: Ребят, почему так происходит?
« Reply #5 on: March 09, 2014, 11:04:20 PM »
А разбираться и не требуется,
Вставляешь
Code: (clickermann) [Select]
SUB(mouse_move,$MOVE_END_X,$MOVE_END_Y)
.....
END_SUB
в начало скрипта, а там где нужно плавно переместить мышь за место MOVE(100,500) пишешь mouse_move(100,500) и мышь плавно переместится с текущего положения на заданное.

Хм... Спс... Хотелось бы как-то самому в этом разобраться, но не осилю...) Буду использовать, как шаблон ) Блок SUB ставить просто выше команды, или в начало скрипта вообще? И еще... Как же все таки с первым вопросом? Или это специфический случай?
Я не ду... Потому и не бу...

Крис Тинка

  • Активный участник
  • ***
  • Posts: 171
    • View Profile
Re: Ребят, почему так происходит?
« Reply #6 on: March 10, 2014, 06:32:55 AM »
C первым вопросом, должно все работать. Вот, практически то же самое у меня работает
Code: (clickermann) [Select]
IF($time1 < $_time_t)
  WAITMS(1000)
  print("Бафы")
  $time1 = $_time_t + 5
END_IF
 
print("Скилы")
WAITMS(1000)
Лог:
Code: [Select]
10:28:06 Бафы
10:28:06 Скилы
10:28:07 Скилы
10:28:09 Скилы
10:28:10 Скилы
10:28:11 Скилы
10:28:12 Скилы
10:28:14 Бафы
10:28:14 Скилы
10:28:15 Скилы
10:28:16 Скилы
10:28:17 Скилы
10:28:18 Скилы
10:28:19 Скилы
10:28:21 Бафы
10:28:21 Скилы
10:28:22 Скилы
10:28:23 Скилы
10:28:24 Скилы
10:28:25 Скилы
10:28:26 Скилы
10:28:28 Бафы
10:28:28 Скилы
10:28:29 Скилы
10:28:30 Скилы
10:28:31 Скилы
10:28:32 Скилы
10:28:33 Скилы
10:28:35 Бафы
10:28:35 Скилы
10:28:36 Скилы
10:28:37 Скилы
10:28:38 Скилы
Добавь в скрипт запись в лог, может скрипт работает, только нажатия не передаются в игру?

Hito

  • Герой форума
  • *****
  • Posts: 1212
    • View Profile
Re: Ребят, почему так происходит?
« Reply #7 on: March 11, 2014, 10:40:11 PM »
Добавь в скрипт запись в лог, может скрипт работает, только нажатия не передаются в игру?
Там нет защиты от кликера. А что за команда такая? - print("Бафы") На сколько я понял, "принт" просто сообщение выводит... В твоем макросе вообще действий нет... И что за скрипт - запись в лог?...)
« Last Edit: March 12, 2014, 12:30:15 AM by Hito »
Я не ду... Потому и не бу...