도사 오토핫키 (초급)


오토핫키를 처음 접하시면 꼭 입문용 스크립트를 실행해보고 단계를 넘어가시기 바랍니다.



지금까지 설명 드렸던 내용만 사용해서 마법 HotKey들을 추가한 스크립트입니다.

Reload,Suspend,ExitApp 추가됐으며

바람의나라 창이 활성화되어 있을 때만 hotkey가 동작하는 것도 구현되어 있습니다.


NumPad는 오른쪽 키패드 입니다.


마법 알파벳은 그림 참고해서 본인에게 맞게 수정하시면 됩니다.

 



[v1.1] 도사_초급_v1.ahk

#Requires AutoHotkey v1.1

#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 지정 영역
NumPad1::SpellClickEnter("a") ; 1번 마법 백호의희원
NumPad3::SpellClickEnter("c") ; 3번 마법 봉황의기원
NumPad4::SpellClickEnter("d") ; 4번 마법 혼마술
NumPad6::SpellClickEnter("f") ; 6번 마법 지진
NumPad7::SpellClickEnter("g") ; 7번 마법 파혼술
NumPad8::탈명만공()

NumPadSub::CastnCheckSpell("A", "귀염추혼소") ; 귀염추혼소 + '/딜 귀염추혼소'
\::CastnCheckSpell("X", "파력무참") ; 파력무참 + '/딜 파력무참'
[::SpellClickEnter("v") ; 'v' 마법 부활
]::SpellClickEnter("E") ;  'E' 마법 활력
F1::SpellTextEnter("m", "출두캐릭터이름") ; 'm' 마법 (출두) -> text 입력 -> Enter

PgUp::SetTimer, 혼마Up, 200 ; 200ms 마다 혼마->방향키 위로->Enter 반복
PgDn::SetTimer, 혼마Up, off ; 혼마술 반복 종료
Ins::SetTimer, 자동기원, 70 ; 70 ms 마다 자동기원 반복
Del::SetTimer, 자동기원, off ; 자동기원 반복 종료
#IfWinActive

#IfWinNotActive ahk_class Nexon.NWind ; 바람의나라 창이 활성화되지 않았을 때는
PgUp::SetTimer, 혼마Up, off ; 혼마술 반복 종료
PgDn::SetTimer, 혼마Up, off ; 혼마술 반복 종료
Ins::SetTimer, 자동기원, off ; 자동기원 반복 종료
Del::SetTimer, 자동기원, off ; 자동기원 반복 종료
#IfWinActive

탈명만공() {
    SpellClickEnter("h") ; 탈명이 8번 마법
    CastSpell("x") ; 만공이 'x'
    return
}

자동기원() {
    SendInput {5} ; 5번(e)에 자동기원이 있을 때, 다른 위치라면 변경 필요
    return
}

혼마Up() {
    SpellArrowEnter("d", "Up") ; "d" 에 혼마술이 있을 때, 다른 위치라면 변경 필요
    return
}

;-------------------------------------------------------------------

CastSpell(SpellChar, Delay := 100) {
    sendinput +{z}{%SpellChar%}
    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
}
 




[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 지정하는 영역
NumPad1::SpellClickEnter("a") ; 1번 마법 백호의희원
NumPad3::SpellClickEnter("c") ; 3번 마법 봉황의기원
NumPad4::SpellClickEnter("d") ; 4번 마법 혼마술
NumPad6::SpellClickEnter("f") ; 6번 마법 지진
NumPad7::SpellClickEnter("g") ; 7번 마법 파혼술
NumPad8::탈명만공()

NumPadSub::CastnCheckSpell("A", "귀염추혼소") ; 귀염추혼소 + '/딜 귀염추혼소'
\::CastnCheckSpell("X", "파력무참") ; 파력무참 + '/딜 파력무참'
[::SpellClickEnter("v") ; 'v' 마법 부활
]::SpellClickEnter("E") ;  'E' 마법 활력
F1::SpellTextEnter("m", "출두캐릭터이름") ; 'm' 마법 (출두) -> text 입력 -> Enter

Ins::SetTimer(자동기원, 70) ; 70 ms 마다 자동기원 반복
Del::SetTimer(자동기원, 0) ; 자동기원 반복 종료
PgUp::SetTimer(혼마Up, 200) ; 200ms 마다 혼마->방향키 위로->Enter 반복
PgDn::SetTimer(혼마Up, 0) ; 혼마술 반복 종료
; HotKey 여기까지
#HotIf ; 여기까지


#HotIf !WinActive("ahk_class Nexon.NWind") ; 바람의나라 창이 활성화되지 않았을 때는
Ins::SetTimer(자동기원, 0) ; 자동기원 반복 종료
Del::SetTimer(자동기원, 0) ; 자동기원 반복 종료
PgUp::SetTimer(혼마Up, 0) ; 혼마술 반복 종료
PgDn::SetTimer(혼마Up, 0) ; 혼마술 반복 종료
#HotIf ; 여기까지

;-------------------------------------------------------------------
탈명만공() {
    SpellClickEnter("h") ; 탈명이 8번 마법
    CastSpell("x") ; 만공이 'x'
}

자동기원() {
    SendInput "5" ; 5번(e)에 자동기원이 있을 때, 다른 위치라면 변경 필요
}
혼마Up() {
    SpellArrowEnter("d", "{Up}") ; "d" 에 혼마술이 있을 때, 다른 위치라면 변경 필요
}
;-------------------------------------------------------------------

CastSpell(SpellChar, Delay := 100) {
    SendInput "+{z}" SpellChar
    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)
}
 





댓글 0