Что нового

[Мышь, клавиатура] Макрос для игры (3-ое нажатие на ПКМ)

NikitaJay

Новичок
Сообщения
5
Репутация
0
Версия AutoIt: 3.3.12.0

Описание:
Доброго времени суток всем!
Помогите пожалуйста написать скрипт который делал бы так: при нажатии кнопки "F1" включается режим, в котором при нажатии на ПКМ он нажимается еще 2 раза. А если нажимаешь F1 опять, то этот режим отключается. Ну например: в игре нажимаешь F1 стреляешь 1 раз, а вылетают еще 2 пули.

Примечания:
Если можете сделайте нажатие на ПКМ так:
Код:
MouseDown("right") ; нажать ПКМ
MouseUp("right") ; отпустить ПКМ

Заранее всем спасибо! :smile:
 

InnI

AutoIT Гуру
Сообщения
4,922
Репутация
1,432
Только если в игре нет защиты от имитации кликов
Код:
#include <Misc.au3>

; настройка задержек кликов (см. справку)
; Opt("MouseClickDelay", 30)
; Opt("MouseClickDownDelay", 30)

HotKeySet("{F1}", "ChangeMode")

Global $Mode = 0

While Sleep(10)
  If $Mode Then
    If _IsPressed("02") Then MouseClick("right", Default, Default, 2, 0)
  EndIf
WEnd

Func ChangeMode()
  $Mode = Not $Mode
EndFunc
 
A

Alofa

Гость
Или так:
Код:
#include <Misc.au3>

Global $Mode, $hDLL

HotKeySet("{F1}", "_ModeOn")
HotKeySet("{F2}", "_ModeOff")
HotKeySet("{ESC}", "_Exit")

While 1
   If $Mode And _IsPressed("02", $hDLL) Then
        While _IsPressed("02", $hDLL)
            Sleep(50)
        WEnd
       MouseClick("right", Default, Default, 2)
   EndIf
   Sleep (100)
WEnd

Func _ModeOn()
   If Not $hDLL Then $hDLL = DllOpen("user32.dll")
    $Mode = 1
EndFunc

Func _ModeOff()
   If $hDLL Then DllClose($hDLL)
    $Mode = ''
EndFunc

Func _Exit()
   If $hDLL Then DllClose($hDLL)
    Exit
EndFunc
 
Автор
NikitaJay

NikitaJay

Новичок
Сообщения
5
Репутация
0

Спасибо, InnI и Alofa!


Вот сам код, если кому-то надо:

Код:
#include <Misc.au3>

HotKeySet("{F1}", "ChangeMode")
HotKeySet("{F9}", "Ex1t")

Global $Mode = 0

While Sleep(10)
  If $Mode Then
    If _IsPressed("02") Then click()
  EndIf
WEnd

Func ChangeMode()
  $Mode = Not $Mode
EndFunc

Func click()
    Sleep(20) ; скорость между выстрелами (Указано в милисекундах)
    MouseDown("right") 
	Sleep(80)
	MouseUp("right")
	click2()
 EndFunc

 Func click2()
    Sleep(20) ; скорость между выстрелами (Указано в милисекундах)
    MouseDown("right")
	Sleep(80)
	MouseUp("right")
 EndFunc

 Func Ex1t()
    Exit
EndFunc
P.S Я знаю, что написано криво, но я с AutoIt`ом пока что не очень дружу ^_^
 
Верх