마법 별로 사용하는 방식이 조금씩 차이가 있는데, 각각의 경우를 살펴보고
이를 앞에서 살펴본 function으로 구현해보겠습니다.
- 마법 사용 방법 -
ㄱ. F10 -> Spell Macro에 지정된 10개의 마법을 0~9 Key로 바로 사용하는 방법
( Key로 사용한다고 하겠습니다 )
ㄴ. shift + z (외울 주문?)을 통해 a-zA-Z 까지의 character를 입력하여 마법을 사용하는 방법
( Spell 혹은 CastSpell 이라고 하겠습니다.)
- 마법 종류 -
A. 마법을 사용하는 순간 바로 캐스팅 되는 마법
(파력무참, 귀염추혼소, 공력증강 등등 )
B. 마법을 사용하면 네모 커서가 생겨서 타겟을 지정하는 마법
(혼마술, 파혼술, 탈명 등등)
B의 타겟팅은 또 이렇게 나뉠 수도 있습니다.
1. 커서를 마우스로 지정후 {Enter} ( 혹은 더블클릭 )
2. 커서를 키보드 방향키(상하좌우)로 이동 후 {Enter}
3. 커서를 {Home}(본인)으로 옮겨서 {Enter}
4. 커서를 움직이지 않고 그대로 {Enter}
이러한 각각의 마법 사용 macro들을
함수로 바꾸면 이렇게 됩니다.
; [ㄱ]+[A]
KeyStroke(KeyName) {
sendinput {%KeyName%}
return
}
; [ㄴ]+[A]
CastSpell(SpellChar, Delay := 100) {
sendinput +{z}{%SpellChar%}
sleep %Delay%
return
}
; [ㄴ]+[B -1]
SpellClickEnter(SpellChar, Delay := 100) {
sendinput +{z}{%SpellChar%}{Click}{Enter}{Esc}
sleep %Delay%
return
}
; [ㄴ]+[B-2]
SpellArrowEnter(SpellChar, Arrow := "Up") {
sendinput +{z}{%SpellChar%}{%Arrow%}{Enter}{esc}
return
}
; [ㄴ]+[B-3]
SpellHomeEnter(SpellChar, Delay := 100) {
sendinput +{z}{%SpellChar%}{Home}{Enter}{Esc}
sleep %Delay%
return
}
; [ㄴ]+[B-4]
SpellEnter(SpellChar, Delay := 100) {
sendinput +{z}{%SpellChar%}{Enter}{Esc}
sleep %Delay%
return
}
[ㄱ]+[B-1],[ㄱ]+[B-2],[ㄱ]+[B-3],[ㄱ]+[B-4] 는 생략
이제 마법 쓸 준비는 다 되었고, Hotkey 적용만 해주면 됩니다.
여기부터는 취향의 영역입니다.
XButton1::KeyStroke(2)
; 마우스 뒤로가기 버튼으로 2번 마법 사용
; ex) 공력증강, 금강불체
TAB::CastSpell("A")
; TAB key로 "A" 마법 사용
; ex) 파력무참, 귀염추혼소
NumPad6::SpellClickEnter("g", 90)
; NumPad6 key로 현재 마우스 커서에 "g" 마법 사용
; ex) 지진, 파혼술, 부활
WheelUp::SpellArrowEnter("d", "Up")
; 마우스 WheelUp 으로 "d" 마법 커서 한칸 위
; ex) 혼마술, 중독, 마비
WheelDown::SpellArrowEnter("d", "Down")
; 마우스 WheelDown으로 "d" 마법 커서 한칸 아래
; ex) 혼마술, 중독, 마비
NumLock::SpellHomeEnter("g", 180)
; NumLock key로 자신에게 "g" 마법 사용
; ex) 파혼술, 부활
이런 식으로 사용하고 싶은 마법을
편하다고 느끼는 key에 지정해서 사용하면 됩니다.
-----------------------------------------------------
v2.0에서는 변수 사용법이 조금 다릅니다.
key를 parameter로 줄 때 "{Up}" 이런식으로 {}로 감싸서 입력으로 주는 것이 좋습니다.
WheelUp::SpellArrowEnter("d", "{Up}")
SpellArrowEnter(SpellChar, Arrow := "{Up}", Delay := 200) {
SendInput "+z" SpellChar Arrow "{Enter}{ESC}"
sleep Delay
}