Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Topics - Разумист

Pages: [1]
1
Здравствуйте. Имеется игра World of warcraft:BFA в 2 окна на рабочем столе.
Необходимо:
(Привязываю CM сочетанием клавишь alt+w ко второму окну, куда должны дублироваться действия.
*Цикл, постоянный мониторинг нижеперечисленных кнопок на активность в процессе игры.*
При нажатии кнопки 1 (в окне игры #1) - срабатывание кнопки 1 в окне игры #2
При ЗАЖАТОЙ (это важно) кнопке X - ЗАЖАТЬ кнопку X во втором окне игры.
При ЗАЖАТОЙ (это важно) кнопке SPACE - ЗАЖАТЬ кнопку SPACE во втором окне игры.

Что имеется:
Code: [Select]
FOR ($a=1, $a>0)
   if(iskeydown(#w)=1)
      keypress(#1)
     
   ELSE

      if(iskeydown(#x)=1)
         KEYpress(#x)
         
      ELSE

         if(iskeydown(#space)=1)
            KEYpress(#space)

               ELSE
               waitms(20)
         END_IF
      END_IF
   END_IF
END_CYC
halt


Какие проблемы:
Когда я зажимаю кнопку SPACE (пробел), то во втором окне SPACE (пробел) зажимается рывками. Дело в том, что в игре WoW персонажи летают по миру. Когда я в первом окне зажимаю пробел (зажать пробел - взлет персонажа вверх) то это должно продублироваться во второе окно. Но дублируется с рывками как то...

2
Постоянная область для сканирования (0,1014, 66,1079), здесь появляются картинки 1, 2, 3.
Если появляется картинка 1 нажимается кнопка 1 на клавиатуре
Если появляется картинка 2 нажимается кнопка 2
Если появляется картинка 3 нажимается кнопка 3
Картинки появляются случайным образом, т.е может появиться картинка 2(нажать 2), картинка 1(нажать 1), и что бы постоянно ожидалась картинка и нажималась соответствующая кнопка.

Code: [Select]
$check = 0
WHILE($check = 0)
   GETSCREEN (0,1014, 66,1079)
   IF_PICTURE_IN (0,1014, 66,1079, "1.bmp", -1, 100)
      $check = 1
      KEYPRESS(#1)
      WAITMS(100)
   END_IF
END_CYC

else

$check = 0
WHILE($check = 0)
   GETSCREEN (0,1014, 66,1079)
   IF_PICTURE_IN (0,1014, 66,1079, "2.bmp", -1, 100)
      $check = 1
      KEYPRESS(#2)
      WAITMS(100)
   END_IF
END_CYC

else

$check = 0
WHILE($check = 0)
   GETSCREEN (0,1014, 66,1079)
   IF_PICTURE_IN (0,1014, 66,1079, "3.bmp", -1, 100)
      $check = 1
      KEYPRESS(#3)
      WAITMS(100)
   END_IF
END_CYC

else

halt

Code: (clickermann) [Select]
// Клавиша   |   Константа   |   10-ный код
// 0         |   #0          |   48
// 1         |   #1          |   49
// 2         |   #2          |   50
// 3         |   #3          |   51
// и т.д.

GETSCREEN (0, 1014, 66, 1079)
FOR($i = 1, $i < 4)
   IF_PICTURE_IN (0, 1014, 66, 1079, STRCONCAT($i, ".bmp"), -1, 100)
      KEYPRESS(48+$i)
      WAITMS(100)
   END_IF 
END_CYC

HALT
Спасибо :)

3
UPD2: Всем еще раз спасибо за подсказки :)

Здравствуйте. Прошу помощи в реализации скрипта по подбору чисел от 1 до 499.
Как должно быть:
Курсор летит по координатам - Клик в строку ввода чисел
Вводится число 1, нажимается Enter
Курсор летит по другой координате, возвращается в строку ввода
Вводится число 2, нажимается Enter.
И так до ввода числа 499

Это часть кода с набором числа и нажатием Enterа, клики сам напишешь.
Code: (clickermann) [Select]
INC($n,1)
IF($n < 500)
   KEYSTRING($n)
   WAITMS(50)
   KEYPRESS(#ENTER)
   WAITMS(50)
ELSE
   HALT
END_IF
Благодарю!  ;)

4
Суть вопроса такова, можно ли как то задействовать прослушку звука из игры?
1. Нажимаем "1" - начинается рыбалка
2. Находим пиксель поплавка (к примеру 123456)
3. Ждем когда клюет, Lclickermann должен "услышать увеличение громкости" (Шкала уровня громкости мощно так увеличивается, скрин ниже)
4. Выполняем Lclick по найденному пикселю (то бишь, по поплавку)
Возвращаемся к шагу 1

5
Здравствуйте. Набросал код, который:
1. Нажимает кнопку E (начало рыбалки)
2. Ждет белый пиксель (когда клюет, поплавок прыгает и от него брызги)
3. Кликает на поплавок, ждет 2-3 сек и возвращается к 1 шагу.

Проблемы:
Если не находит пиксель брызг от поплавка (16777215) не возвращается к 1 шагу.

Надо:
Сделать возврат к 1 шагу (нажатие Е) если не был найден 16777215 пиксель в течении 25 сек. И повторять пока сам не завершу работу.

Code: [Select]
1:
WAIT(RND(1,3))
KEYPRESS(#E)                          //начало рыбалки

GOTO(fish)                            //переход к сканированию пикселя

fish:
$check = 0
WHILE($check = 0) 
   GETSCREEN
   COLORMODE(2)
   IF_PIXEL_IN(46,265,1151,676,16777215)
      $check = 1
      waitms(800)
      LCLICK($_return1, $_return2) //клик на поплавок
      LOGWRITE ("Поймал рыбу")   
   END_IF
END_CYC

GOTO(1)                        //возврат в начало (не возвращается в начало если не нашел пиксель)

Pages: [1]