사냥터에 따라 사용하는 마법이 많이 달라지기에
스크립트를 분리해서 사용하는 경우가 많습니다.
이는 앞에서 설명해드린 마법 모드 바꾸기 수준으로는 감당할 수 없습니다.
HotKey setting 전체를 변경할 방법이 필요합니다.
-----------------------------------------------------------------------
#If directive라는 것을 활용하면 구현할 수 있습니다.
바람의나라 창이 활성화 되었을 때만 HotKey가 동작하게 하는 방식과 비슷합니다.
여기에서도 어느 모드인지 지정할 변수가 필요합니다.
HotKeyMode 라고 하겠습니다.
마찬가지로 HotKeyMode를 변경할 함수가 필요합니다.
ChangeHotKeyMode라고 하겠습니다.
[v1.1]
사냥 := 1
마동 := 2
공성 := 3
탐라 := 4
HotKeyMode := 사냥 ; 현재 모드를 저장할 변수
ChangeHotKeyMode(_mode) {
global HotKeyMode
HotKeyMode := _mode
return
}
+1::ChangeHotKeyMode(사냥) ; 사냥 모드로 설정
+2::ChangeHotKeyMode(마동) ; 마동 모드로 설정
+3::ChangeHotKeyMode(공성) ; 공성 모드로 설정
+4::ChangeHotKeyMode(탐라) ; 탐라 모드로 설정
#If (HotKeyMode = 사냥) && WinActive("ahk_class Nexon.NWind")
; 사냥 모드 + 바람의나라 창에서만
NumPadSub::시폭염화()
#IfWinActive
#If (HotKeyMode = 마동) && WinActive("ahk_class Nexon.NWind")
; 마동 모드 + 바람의나라 창에서만
NumPadSub::호체주술()
#IfWinActive
#If (HotKeyMode = 공성) && WinActive("ahk_class Nexon.NWind")
; 공성 모드 + 바람의나라 창에서만
NumPadSub::현기집중()
#IfWinActive
#If (HotKeyMode = 탐라) && WinActive("ahk_class Nexon.NWind")
; 탐라 모드 + 바람의나라 창에서만
NumPadSub::사슬벼락()
#IfWinActive
#IfWinActive ahk_class Nexon.NWind
; 모드 상관없이 바람의나라 창이 활성화 상태일 때만
NumPad3::
Loop 5 {
SpellHomeEnter("c", 90) ; 현자의 기원
SpellHomeEnter("r", 80) ; 태양의 기원
}
return
#IfWinActive
( IfWinActive와 다르게 그냥 WinActive에서는 ""를 붙여줘야 함 )
[v2.0]
사냥 := 1
마동 := 2
공성 := 3
탐라 := 4
HotKeyMode := 사냥 ; 현재 모드를 저장할 변수
ChangeHotKeyMode(_mode) {
global HotKeyMode
HotKeyMode := _mode
}
+1::ChangeHotKeyMode(사냥) ; 사냥 모드로 설정
+2::ChangeHotKeyMode(마동) ; 마동 모드로 설정
+3::ChangeHotKeyMode(공성) ; 공성 모드로 설정
+4::ChangeHotKeyMode(탐라) ; 탐라 모드로 설정
#HotIf (HotKeyMode==사냥) && WinActive("ahk_class Nexon.NWind")
; 사냥 모드 + 바람의나라 창에서만
NumPadSub::시폭염화()
#HotIf ; 여기까지
#HotIf (HotKeyMode==마동) && WinActive("ahk_class Nexon.NWind")
; 마동 모드 + 바람의나라 창에서만
NumPadSub::호체주술()
#HotIf ; 여기까지
#HotIf (HotKeyMode==공성) && WinActive("ahk_class Nexon.NWind")
; 공성 모드 + 바람의나라 창에서만
NumPadSub::현기집중()
#HotIf ; 여기까지
#HotIf (HotKeyMode==탐라) && WinActive("ahk_class Nexon.NWind")
; 탐라 모드 + 바람의나라 창에서만
NumPadSub::사슬벼락()
#HotIf ; 여기까지
#HotIf WinActive("ahk_class Nexon.NWind")
NumPad3::{
Loop 5 {
SpellHomeEnter("c", 90) ; 현자의 기원
SpellHomeEnter("r", 80) ; 태양의 기원
}
}
#HotIf ; 여기까지
예시에서는 {shift} + 1/2/3/4 로 사냥/마동/공성/탐라 모드로 변경되도록 했습니다.
{NumPadSub} 하나의 HotKey지만 각 모드에 따라 다른 마법이 사용됩니다.
스크립트를 분리해두는 것이 깔끔하긴 한데
나머지 겹치는 부분이 많다면 이렇게도 할 수 있다는 것을 보여드리고자 했습니다.