Собственно задача! По нажатию Шифт+ПКМ запустить функцию.
Пока вариант такой (не рабочий):
Нельзя вводить доп горячии клавиши для запуска цикла с определением нажата ли клавиши потому что это кусок скрипта уже рабочего.
Пока вариант такой (не рабочий):
Код:
;константа правая клавиша мыши
$rmouse = 0x02
HotKeySet ("+{"&$rmouse&"}", "SprintRun")
While 1
Sleep(100)
WEnd
;SprintRun Func
Func SprintRun()
If _IsPressed ("6A") Then
Send ("{NUMPADMULT UP}")
Return ("")
EndIf
Send ("{NUMPADMULT DOWN}")
Send ("m")
EndFunc
Нельзя вводить доп горячии клавиши для запуска цикла с определением нажата ли клавиши потому что это кусок скрипта уже рабочего.
Код:
WinWaitActive("Untitled - Darkfall Online")
#Include <Misc.au3>
;константа количество используемых реев
Const $num_ray = 5
;константа правая клавиша мыши
;$rmouse = 0x02
; Объявляем переменные
;блок назначения клавишь для реев
Global $k_array[$num_ray] = ["+6","+7","+8","+9","+0"]
;["+6"] impale
;["+7"] Pungent Mist
;["+8"] Unholy Caress
;["+9"] Dragon's Breath
;["+0"] Insect Swarm
; end
; блок значений времени отката реев
Global $cd_array[$num_ray] = [ 6500, 14000, 14000, 14000, 13000]
;[14000] Impale [6500] Pungent Mist [14000] Unholy Caress [14000] Dragon's Breath [13000] Insect Swarm
; end
;инициируем переменную перегрузки времени
$time_reload = 0
;масив для хранения времени последнего каста каждого рея и переменная для перегрузки
Global $time_cast[$num_ray], $ray_key
; инициализация массива очередности реев
; будет выбран ближайший элемент массива с значением 1
Global $next_ray[$num_ray] = [1, 1, 1, 1, 1]
; end
; задаем горячую клавишу или сочетание клавиш для выбора рея и его каста
; Shift = +, Ctrl = ^, Alt = !
HotKeySet ("{NUMPAD1}", "RayScroll")
HotKeySet ("{END}", "RayScroll")
;HotKeySet ("+{"&$rmouse&"}", "SprintRun")
While 1
Sleep(100)
WEnd
;функция RayScroll
Func RayScroll ()
Send ("{F10 down}")
Send ("{F10 up}")
Sleep (258)
HotKeySet ("{NUMPAD1}")
Send ("{NUMPAD1 down}")
Send ("{NUMPAD1 up}")
HotKeySet ("{NUMPAD1}", "RayScroll")
Sleep (100)
$ray_key = RayLogic()
Send ($ray_key)
Sleep (79)
MouseClick("left")
$time_reload = TimerLogic()
Sleep (79)
EndFunc
Func RayLogic ()
$num = $num_ray - 1
Local $time
For $i = 0 to $num Step 1
$time = TimerDiff($time_cast[$i])
If $next_ray[$i] = 1 Then
$next_ray[$i] = 0
Return ($k_array[$i])
ElseIf $time >= $cd_array[$i] Then
$next_ray[$i] = 0
Return ($k_array[$i])
EndIf
Next
Send ("end")
Return ("")
EndFunc
Func TimerLogic()
$key = $ray_key
$time = TimerInit()
$num = $num_ray - 1
For $i = 0 To $num Step 1
If $key = $k_array[$i] Then
$time_cast[$i] = $time
EndIf
Next
EndFunc
;SprintRun Func
;Func SprintRun()
;If _IsPressed ("6A") Then
;Send ("{NUMPADMULT UP}")
;Return ("")
;EndIf
;Send ("{NUMPADMULT DOWN}")
;Send ("m")
;EndFunc