1

Тема: AHK:POE бинды через GUI

Только учусь. Занимаюсь этим всего пару дней, но получилось написать скрипт с нуля. Но вот такая не задача, сколько не перечитал информации. Ну не как не могу понять как сделать бинды через свой GUI, так что бы они сохранялись и желательно что бы они сохранялись как виртуальные коды. Если не сложно кому то. Сделайте пару биндовок на примере моего скрипта. Если честно на готовых примерах мне понятней.

;*****************************************************************************
; AutoHotkey Version:  1.1.26.01
; Автор:               Whitedog
; Имя скрипта:         PoeHotScripts.ahk (v.1)
;*****************************************************************************

;************************************БИНДЫ************************************
F6::SwapSkill() ; смена камня
F4::OpenPortal() ; открытие портала
F5::Hideout() ; переход в убежище
;*****************************************************************************

;*********************************СМЕНА КАМНЯ*********************************
SwapSkill(){
if WinActive("Path of Exile"){
BlockInput On
MouseGetPos, x, y	
Send {Space} ; закрыть все окна для безопасности	
Sleep 200
Send {vk58sc02D} ; кнопка смены оружия
Sleep 200
Send {vk49sc017} ; Открываем инвентарь
Click right 1380,250 ; координаты сокета в броне (Вытаскиваем камень из брони)
Sleep 200
Click left 1155,170 ; координаты сокета в оружии (Заменяем камень из брони на камень из оружия)
Sleep 200
Click left 1380,250 ; координаты сокета в броне (Вставляем камень из оружия в броню)
Sleep 200
Send {vk49sc017} ; Закрываем инвентарь
Sleep 200
Send {vk58sc02D} ; кнопка смены оружия
Sleep 200
Send {vk52sc013} ; кнопка 1го баффа
Sleep 1100
Send {vk54sc014} ; кнопка 2го баффа
MouseMove, x,y
BlockInput off
}
return
}

;******************************ОТКРЫТИЕ ПОРТАЛА********************************
OpenPortal(){
if WinActive("Path of Exile"){
BlockInput On
MouseGetPos, x, y	
Send {Space} ; закрыть все окна для безопасности	
Sleep 200
Send {vk49sc017} ; Открываем инвентарь
Click right 1070,700 ; Правый клик по координатам свитка портала (Используем свиток портала)
Sleep 200
Send {vk49sc017} ; Закрываем инвентарь
MouseMove, x,y
BlockInput off
}
return
}

;******************************Переход в убежище*******************************
Hideout(){
if WinActive("Path of Exile"){
BlockInput On
  SendInput, {Enter}
  sleep, 20
  SendInput, {/}Hideout
  SendInput, {Enter}
  BlockInput Off
BlockInput off
}
return
}

2 (изменено: stealzy, 2017-09-20 19:26:49)

Re: AHK:POE бинды через GUI

Проверять активное окно внутри каждой ф-ии не нужно, + ГК в других окнах остаются свободны:

#IfWinActive Path of Exile
F6::SwapSkill() ; смена камня
F4::OpenPortal() ; открытие портала
F5::Hideout() ; переход в убежище
#If

Когда сделаете возможность менять ГК, от метода :: придется отказаться:

Hotkey, IfWinActive, Path of Exile
Hotkey, F4, OpenPortal

Избыточность и непонятность:

; Send {vk58sc02D}
Send {vk58} ; X
Send % Format("{vk{:x}}", GetKeyVK("X"))

через свой GUI, так, чтобы сохранялись как виртуальные коды

3

Re: AHK:POE бинды через GUI

Если надо кодами сохранять то скорее эта ссылка, хотя в той теме она первая, а тема скорее про если в стандартном не хватает клавиш для назначения.

Send % Format("{vk{:x}}", GetKeyVK("X"))

Это непонятный код, для понимания новичком "X" должен быть заменен переменной из контрола, иначе такой код не работает.

По вопросам возмездной помощи пишите письма
E-Mail: serzh82saratov@mail.ru
OS: Win7x64, AutoHotkey_L v1.1.26.01 (Unicode 32-bit).

4 (изменено: stealzy, 2017-09-20 21:40:39)

Re: AHK:POE бинды через GUI

serzh82saratov пишет:

"X" должен быть заменен переменной из контрола, иначе такой код не работает.

У меня код работает в том виде, как написан. Про какой контрол речь, не понял.

Увы просто и красиво с vk кодами не выйдет. Можно конечно обернуть все это в еще одну ф-ию, станет красивее, но не проще точно.

5

Re: AHK:POE бинды через GUI

stealzy пишет:

У меня код работает в том виде, как написан.

А у меня ноль, за то такой работает:

MsgBox %  Format("{vk{:x}}", GetKeyVK("Х"))
stealzy пишет:

Про какой контрол речь, не понял.

Hotkey конечно.

stealzy пишет:

Можно конечно обернуть все это в ф-ию, но это опять же будет велосипед, который нужно таскать с собой.

Это не понял я, что обернуть?

По вопросам возмездной помощи пишите письма
E-Mail: serzh82saratov@mail.ru
OS: Win7x64, AutoHotkey_L v1.1.26.01 (Unicode 32-bit).

6

Re: AHK:POE бинды через GUI

Вы хотите сказать Send {vk58} у вас работает, а Send % Format("{vk{:x}}", GetKeyVK("X")) — нет?
Так я про команду Send предложил способы сделать код понятнее, Hotkey никаким боком.

7

Re: AHK:POE бинды через GUI

У вас мой код что показывает?

По вопросам возмездной помощи пишите письма
E-Mail: serzh82saratov@mail.ru
OS: Win7x64, AutoHotkey_L v1.1.26.01 (Unicode 32-bit).

8

Re: AHK:POE бинды через GUI

Хех, так вы поставили русскую "Х". Или это намек, что некто будет вставлять туда не английские буквы?

9

Re: AHK:POE бинды через GUI

Ну и как бы да. Но смысл в том что у меня любые английские выдыют ноль.

По вопросам возмездной помощи пишите письма
E-Mail: serzh82saratov@mail.ru
OS: Win7x64, AutoHotkey_L v1.1.26.01 (Unicode 32-bit).