오토핫키를 처음 접하시면 꼭 입문용 스크립트를 실행해보고 단계를 넘어가시기 바랍니다.
지금까지 설명 드렸던 내용만 사용해서 마법 HotKey들을 추가한 스크립트입니다.
Reload,Suspend,ExitApp 추가됐으며
바람의나라 창이 활성화되어 있을 때만 hotkey가 동작하는 것도 구현되어 있습니다.
NumPad는 오른쪽 키패드 입니다.
마법 알파벳은 그림 참고해서 본인에게 맞게 수정하시면 됩니다.
[v1.1] 술사_초급_v1.ahk
#NoEnv
#SingleInstance, Force
#KeyHistory 0
SendMode Input
ListLines, Off
F9::
MsgBox "Reload"
Reload
return
F10::Suspend
F11::Pause
F12::ExitApp
#IfWinActive ahk_class Nexon.NWind ; 바람의나라 창이 활성화 상태일 때만
; HotKey 지정하는 영역
PgUp::SetTimer, 중독Up, 200 ; 200ms 마다 중독->방향키 위로->Enter 반복
PgDn::SetTimer, 중독Up, off ; 중독 반복 종료
NumpadDot::UseItem("z") ; "z"에 있는 아이템 (팔십세주) 사용
NumPad1::SpellClickEnter("a") ; "a"에 있는 마법(성려멸주)
NumPad2::저주헬파() ; 현재 마우스 커서가 있는 몹에 저주,헬파
NumPad3::SpellHomeEnter("c") ; "c" 마법(현자의기원) 자신한테
NumPad4::SpellClickEnter("d") ; "d" 마법(저주)
NumPad5::SpellClickEnter("e") ; "e" 마법(마비)
NumPad6::SpellClickEnter("f") ; "f" 마법(활력)
Numpad7::SpellClickEnter("g") ; "g" 마법(삼매진화)
NumPad8::SpellClickEnter("h") ; "h" 마법(극진뢰격참주)
NumPad9::SpellClickEnter("J") ; "J" 마법(탈명사식)
NumLock::SpellHomeEnter("g") ; "g" 마법(삼매진화) 자신한테
+LButton::SpellClickEnter("N") ; "N" 마법(노도성황)
~NumPadAdd::CastSpell("x") ; "x" 마법(만공)
NumpadSub::CastSpell("u") ; "u" 마법(시폭염화)
\::CastSpell("q") ; "q" 마법(만파지독)
-::마기호체() ; 마기지체 + 호체주술
[::CastnCheckSpell("S", "폭류유성") ; "S" 마법(폭류유성) + '/딜 폭류유성'
]::CastnCheckSpell("A", "지폭지술") ; "A" 마법(지폭지술) + '/딜 지폭지술'
; HotKey 여기까지
#IfWinActive
#IfWinNotActive ahk_class Nexon.NWind ; 바람의나라 창이 활성화되지 않았을 때는
PgUp::SetTimer, 중독Up, off ; 중독 반복 종료
PgDn::SetTimer, 중독Up, off ; 중독 반복 종료
#IfWinActive
;---------------------------------------------
중독Up() {
SpellArrowEnter("i", "Up") ; 'i' 에 중독이 있을 때, 다른 위치라면 변경 필요
return
}
저주헬파() {
SpellClickEnter("d", 10) ; 'd'에 저주
SpellClickEnter("b") ; 'b'에 헬파
return
}
마기호체() {
CastSpell("F") ; "F" 마법(마기지체)
CastSpell("t") ; "t" 마법(호체주술)
return
}
;---------------------------------------------
CastSpell(SpellChar, Delay := 100) {
sendinput +{z}{%SpellChar%}
sleep %Delay%
return
}
SpellHomeEnter(SpellChar, Delay := 100) { ; 커서 나한테
sendinput +{z}{%SpellChar%}{Home}{Enter}{ESC}
sleep %Delay%
return
}
SpellClickEnter(SpellChar, Delay := 100) {
sendinput +{z}{%SpellChar%}{Click}{Enter}{ESC}
sleep %Delay%
return
}
SpellArrowEnter(SpellChar, Arrow := "Up") { ; shift+z로 마법 사용 -> 방향키 -> Enter
sendinput +{z}{%SpellChar%}{%Arrow%}{Enter}{esc}
return
}
CheckSpell(SpellName, Delay := 100) { ; 딜 확인
sendinput '/딜 %SpellName%{Enter}{ESC}
sleep %Delay%
return
}
SpellTextEnter(SpellChar, Text, Delay := 100) {
sendinput +{z}{%SpellChar%}%Text%{Enter}{ESC}
sleep %Delay%
return
}
CastnCheckSpell(SpellChar, SpellName, Delay := 100) {
CastSpell(SpellChar, Delay)
CheckSpell(SpellName, Delay)
return
}
UseItem(ItemChar, Delay := 10) { ; u로 아이템 사용
sendinput {u}{%ItemChar%}
sleep %Delay%
return
}
;---------------------------------------------
[v2.0] 술사_초급_v2.ahk
#Requires AutoHotkey v2.0
#SingleInstance force
F9::{
MsgBox "Reload"
Reload
}
#SuspendExempt
F10::Suspend
#SuspendExempt False
F11::Pause -1
F12::ExitApp
#HotIf WinActive("ahk_class Nexon.NWind") ; 바람의나라 창이 활성화 상태일 때만
; HotKey 지정하는 영역
PgUp::SetTimer(중독Up, 200) ; 200ms 마다 중독->방향키 위로->Enter 반복
PgDn::SetTimer(중독Up, 0) ; 중독 반복 종료
NumpadDot::UseItem("z") ; "z"에 있는 아이템 (팔십세주) 사용
NumPad1::SpellClickEnter("a") ; "a"에 있는 마법(성려멸주)
NumPad2::저주헬파() ; 현재 마우스 커서가 있는 몹에 저주,헬파
NumPad3::SpellHomeEnter("c") ; "c" 마법(현자의기원) 자신한테
NumPad4::SpellClickEnter("d") ; "d" 마법(저주)
NumPad5::SpellClickEnter("e") ; "e" 마법(마비)
NumPad6::SpellClickEnter("f") ; "f" 마법(활력)
Numpad7::SpellClickEnter("g") ; "g" 마법(삼매진화)
NumPad8::SpellClickEnter("h") ; "h" 마법(극진뢰격참주)
NumPad9::SpellClickEnter("J") ; "J" 마법(탈명사식)
NumLock::SpellHomeEnter("g") ; "g" 마법(삼매진화) 자신한테
+LButton::SpellClickEnter("N") ; "N" 마법(노도성황)
~NumPadAdd::CastSpell("x") ; "x" 마법(만공)
NumpadSub::CastSpell("u") ; "u" 마법(시폭염화)
\::CastSpell("q") ; "q" 마법(만파지독)
-::마기호체() ; 마기지체 + 호체주술
[::CastnCheckSpell("S", "폭류유성") ; "S" 마법(폭류유성) + '/딜 폭류유성'
]::CastnCheckSpell("A", "지폭지술") ; "A" 마법(지폭지술) + '/딜 지폭지술'
; HotKey 여기까지
#HotIf ; 여기까지
#HotIf !WinActive("ahk_class Nexon.NWind") ; 바람의나라 창이 활성화되지 않았을 때는
PgUp::SetTimer(중독Up, 0) ; 중독 반복 종료
PgDn::SetTimer(중독Up, 0) ; 중독 반복 종료
#HotIf ; 여기까지
중독Up() {
SpellArrowEnter("i", "{Up}") ; 'i' 에 중독이 있을 때, 다른 위치라면 변경 필요
}
저주헬파() {
SpellClickEnter("d", 10) ; 'd'에 저주
SpellClickEnter("b") ; 'b'에 헬파
}
마기호체() {
CastSpell("F") ; "F" 마법(마기지체)
CastSpell("t") ; "t" 마법(호체주술)
}
;---------------------------------------------
CastSpell(SpellChar, Delay := 100) {
SendInput "+{z}" SpellChar
sleep Delay
}
SpellHomeEnter(SpellChar, Delay := 100) { ; 커서 나한테
SendInput "+{z}" SpellChar "{Home}{Enter}{ESC}"
sleep Delay
}
SpellClickEnter(SpellChar, Delay := 100) {
SendInput "+{z}" SpellChar "{Click}{Enter}{ESC}"
sleep Delay
}
SpellArrowEnter(SpellChar, Arrow := "{Up}") { ; shift+z로 마법 사용 -> 방향키 -> Enter
SendInput "+{z}" SpellChar Arrow "{Enter}{ESC}"
}
CheckSpell(SpellName, Delay := 100) { ; 딜 확인
SendInput "'/딜 " SpellName "{Enter}{ESC}"
sleep Delay
}
SpellTextEnter(SpellChar, Text, Delay := 100) {
SendInput "+{z}" SpellChar Text "{Enter}{ESC}"
sleep Delay
}
CastnCheckSpell(SpellChar, SpellName, Delay := 100) {
CastSpell(SpellChar, Delay)
CheckSpell(SpellName, Delay)
}
UseItem(ItemChar, Delay := 10) { ; u로 아이템 사용
SendInput "{u}" ItemChar
sleep Delay
}
;---------------------------------------------