Author Topic: Выполнить скрипт после нажатия определенной клавиши  (Read 18569 times)

0 Members and 2 Guests are viewing this topic.

TheDimitriUS

  • Зашел в гости
  • *
  • Posts: 4
    • View Profile
Всем доброго времени суток.
Сегодня скачал этот кликер для браузерной игры у подумал что его можно использовать и для рпг игр.
Мне нужно что бы при нажатии определенной кнопки, например "Num 1"  выполнялось действие например: LCLICK (9 раз) потом LDOWN и дальше LUP. Если была нажата клавила "Num 2" то 8 раз LCKICK и 1 раз RCLICK, и так дальше.
Как задать сам процесс и последовательность нажимания клавиш я уже разобрался интересует как составить само условие.
И можно ли использовать LCLICK или RCLICK без координат?
« Last Edit: December 14, 2012, 11:54:03 AM by TheDimitriUS »

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
И можно ли использовать LCLICK или RCLICK без координат?
Code: (clickermann) [Select]
LCLICK($_xmouse,$_ymouse)
RCLICK($_xmouse,$_ymouse)


Мне нужно что бы при нажатии определенной кнопки, например "Num 1"  выполнялось действие например: LCLICK (9 раз) потом LDOWN и дальше LUP. Если была нажата клавила "Num 2" то 8 раз LCKICK и 1 раз RCLICK, и так дальше.

Code: (clickermann) [Select]
IF (ISKEYDOWN(97)=1)  //Если нажата NumPad 1
   $i=0
   FOR ($i, $i<9)
      LCLICK($_xmouse,$_ymouse)
   END_CYC
   // здесь твои LDOWN LUP, что ты под этим имел ввиду   
END_IF

IF (ISKEYDOWN(98)=1)  //Если нажата NumPad 2
   $i=0
   FOR ($i, $i<8)
      LCLICK($_xmouse,$_ymouse)
   END_CYC
   RCLICK($_xmouse,$_ymouse)   
END_IF

// и т.д.

HALT


Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Можно обойтись и  без системных переменных

Просто клик
Code: (clickermann) [Select]
LCLICK(-1,-1)
RCLICK(-1,-1)

Цикл FOR сам объявляет переменную сам её и обнуляет, так что $i=0 это лишнее
Важно не забывать еще про задержки

Code: (clickermann) [Select]
IF (ISKEYDOWN(97)=1)  //Если нажата NumPad 1
   FOR ($i, $i<9)
      LCLICK(-1,-1)
      WAITMS (100)
   END_CYC

   LDOWN(-1,-1)
   WAITMS(100)
   LUP(-1,-1)
END_IF

IF (ISKEYDOWN(98)=1)  //Если нажата NumPad 2
   FOR ($i, $i<8)
      LCLICK(-1,-1)
      WAITMS (100)
   END_CYC
   RCLICK(-1,-1)
END_IF

HALT
« Last Edit: December 14, 2012, 03:02:55 PM by Oraven »

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Цикл FOR сам объявляет переменную сам её и обнуляет, так что $i=0 это лишнее

Цикл FOR обнуляет переменную после окончания своей работы, а не до.
Если переменная где-то использовалась то входящее значение может быть не 0.

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

В этом скрипте из 20 строк это может и лишнее. Когда он вырастет до 500 будет не лишним, потом спасибо скажет.
« Last Edit: December 14, 2012, 03:34:32 PM by Vint »


Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Ну такой подход порождает ошибки! Каждая переменная должна выполнять свою роль. Пиши переменные осмысленно. А если вписываешь новую переменную то нужно проверить через поиск есть ли уже такие переменные.

TheDimitriUS

  • Зашел в гости
  • *
  • Posts: 4
    • View Profile
Что то не так скрипт не запускается=(
и что такое: "$i"?
« Last Edit: December 14, 2012, 06:34:58 PM by TheDimitriUS »

TheDimitriUS

  • Зашел в гости
  • *
  • Posts: 4
    • View Profile
Решил сделать долгий но простой путь:
Code: [Select]
IF (ISKEYDOWN(97=1)
LCLICK(-1,-1)
WAITMS(400)
LCLICK(-1,-1)
WAITMS(400)
LCLICK(-1,-1)
WAITMS(400)
LCLICK(-1,-1)
WAITMS(400)
LCLICK(-1,-1)
WAITMS(400)
LCLICK(-1,-1)
WAITMS(400)
LCLICK(-1,-1)
WAITMS(400)
LCLICK(-1,-1)
WAITMS(400)
LCLICK(-1,-1)
WAITMS(400)
LDOWN(-1,-1)
WAITMS(500)
LUP(-1,-1)
END_IF
Но столкнулся с проблемой клики мышкой выполняются не после нажатия "Num Lock 1" а сразу после запуска скрипта

Johnny

  • Создатель
  • Герой форума
  • *
  • Posts: 593
    • View Profile
IF (ISKEYDOWN(97)=1)

TheDimitriUS

  • Зашел в гости
  • *
  • Posts: 4
    • View Profile
Всем спасибо разобрался, в конце всего лишь нужно было удалить "HALT" если же не удалить то скрипт просто сразу после запуска отключается.