Author Topic: Скрипты, макросы  (Read 4109 times)

0 Members and 1 Guest are viewing this topic.

Varan1875

  • Зашел в гости
  • *
  • Posts: 9
    • View Profile
Скрипты, макросы
« on: September 24, 2021, 12:38:33 PM »
Доброго дня, пожалуйста подскажите, что я делаю не так. Создал простой скрипт для зажатия 3-х клавиш мыши с рандомным промежутком нажатий оных (в пределах нужных таймингов). Но непосредственно в игре, после остановки скрипта, клавиши все равно остаются зажатыми, пока я в ручную не прокликаю все 3.
Code: [Select]
LDOWN(RND(1000,500),RND(800,400))
WAITMS(RND(325,340))
RDOWN(RND(1000,500),RND(800,400))
WAITMS(RND(280,300))
MDOWN(RND(1000,500),RND(800,400))
WAITMS(RND(3200,3400))
Спасибо.

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: Скрипты, макросы
« Reply #1 on: September 24, 2021, 01:22:52 PM »
Ну так указал зажатие и удивляешься почему зажаты?

Там точно зажатия нужны? И зачем в разных координатах. Получается зажали ЛКМ в одном месте, не отпуская зажали ПКМ в другом... какой в этом смысл?

Если именно так и нужно, ну так и отжимай их  потом
Code: (clickermann) [Select]
LUP($_xmouse, $_ymouse)
RUP($_xmouse, $_ymouse)
MUP($_xmouse, $_ymouse)


Varan1875

  • Зашел в гости
  • *
  • Posts: 9
    • View Profile
Re: Скрипты, макросы
« Reply #2 on: September 24, 2021, 01:31:43 PM »
Quote
Там точно зажатия нужны? И зачем в разных координатах. Получается зажали ЛКМ в одном месте, не отпуская зажали ПКМ в другом... какой в этом смысл?
Да, нужно именно зажатие. Координаты вообще по факту не нужны, но я не знаю как сделать так, что бы зажималось там где курсор мыши в данный момент.
Quote
Ну так указал зажатие и удивляешься почему зажаты?
Предполагал, что при завершении скрипта будут отпускаться сами.
« Last Edit: September 24, 2021, 01:34:34 PM by Varan1875 »

Varan1875

  • Зашел в гости
  • *
  • Posts: 9
    • View Profile
Re: Скрипты, макросы
« Reply #3 on: September 24, 2021, 01:37:03 PM »
Т.е по факту нужно сделать так, что бы я нажал кнопку, желательно mouse button 5 (её тоже не нашел в стандартных клавишах программы), и скрипт зажимал 3 кнопки мыши, потом при повторном нажании на mb5, собственно отжимал их.

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: Скрипты, макросы
« Reply #4 on: September 24, 2021, 02:06:28 PM »
Т.е по факту нужно сделать так, что бы я нажал кнопку, желательно mouse button 5 (её тоже не нашел в стандартных клавишах программы), и скрипт зажимал 3 кнопки мыши, потом при повторном нажании на mb5, собственно отжимал их.

Вот это другое дело
Code: (clickermann) [Select]
$key = 6
IF(ISKEYDOWN($key) = 1)
    $active = $active ^ 1
    IF($active = 1)
        LDOWN($_xmouse, $_ymouse)
        RDOWN($_xmouse, $_ymouse)
        MDOWN($_xmouse, $_ymouse)
    ELSE
        LUP($_xmouse, $_ymouse)
        RUP($_xmouse, $_ymouse)
        MUP($_xmouse, $_ymouse)
    END_IF
   
    WHILE(ISKEYDOWN($key) = 1)
        WAITMS(20)
    END_CYC
ELSE
    WAITMS(20)
END_IF

Код кнопки сам узнавай. ЛКМ-1 ПКМ-2 СКМ-4. Предположил, что 6, сейчас нет мыши с доп кнопками.
« Last Edit: September 24, 2021, 02:12:41 PM by Vint »


Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: Скрипты, макросы
« Reply #5 on: September 24, 2021, 02:11:57 PM »
Запустив такой код, можно видеть в логе коды нажатых кнопок и клавиш
Code: (clickermann) [Select]
SUB(log_kvar)
    LOGCLEAR
    LOGWRITE("$kvar:")
    FOR($i=0, $i < ARRSIZE($kvar))
        LOGWRITE("    ", $i, " : ", $kvar[$i])
    END_CYC
END_SUB

LOGCLEAR

WHILE(1)
    GETKEYSDOWN($kvar)
    log_kvar()
    WAITMS(50)
END_CYC


Varan1875

  • Зашел в гости
  • *
  • Posts: 9
    • View Profile
Re: Скрипты, макросы
« Reply #6 on: September 24, 2021, 02:15:30 PM »
Quote
Вот это другое дело
Спасибо тебе огромное! То что нужно. Но возникла проблемка. Обязательны задержки нажатий кнопок, ибо в игре нужно что бы три орудия стреляли с разной задержкой.
Собственно я их вставил в код.
Code: [Select]
$key = 5
IF(ISKEYDOWN($key) = 1)
    $active = $active ^ 1
    IF($active = 1)
        LDOWN($_xmouse, $_ymouse)
        WAITMS(RND(325,340))
        RDOWN($_xmouse, $_ymouse)
        WAITMS(RND(280,300))
        MDOWN($_xmouse, $_ymouse)
        WAITMS(RND(3200,3400))
    ELSE
        LUP($_xmouse, $_ymouse)
        RUP($_xmouse, $_ymouse)
        MUP($_xmouse, $_ymouse)
    END_IF
 
    WHILE(ISKEYDOWN($key) = 1)
        WAITMS(20)
    END_CYC
ELSE
    WAITMS(20)
END_IF
Но, все равно выключаеться зараза не сразу (из-за этих задержек как раз таки, но эти промежутки между зажатиями кнопок мне и важны).
Возможно ли как либо сделать проверку повторного нажатия $key = 5, что бы переводило к
Code: [Select]
        LUP($_xmouse, $_ymouse)
        RUP($_xmouse, $_ymouse)
        MUP($_xmouse, $_ymouse)
Без задержек?
« Last Edit: September 24, 2021, 02:18:54 PM by Varan1875 »

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: Скрипты, макросы
« Reply #7 on: September 24, 2021, 02:45:51 PM »
А зачем задержка
Code: (clickermann) [Select]
WAITMS(RND(3200,3400))Она же в конце и влияет только на повторное нажатие. Да ещё и больше 3 секунд.
Удали эту строку.


Varan1875

  • Зашел в гости
  • *
  • Posts: 9
    • View Profile
Re: Скрипты, макросы
« Reply #8 on: September 24, 2021, 02:55:40 PM »
Quote
Удали эту строку.
Дел сделано. Все заработало так как и хотелось бы!. Спасибо огромное. Хорошего дня и всего наилучшего.
/tread