[v1.1] 철갑마 타고/내리기

오호 09.22 14:50 조회 10 댓글 0



처음으로 아이템을 사용하는 스크립트가 되겠네요


 


철갑마.

신속한 게임을 위한 필수적인 요소입니다.


사냥을 하는 도중에 수도 없이 '철갑마'를 타고 내리고를 반복하게 될 겁니다.




말을 탈 때

{u} + 아이템 알파벳('d') 또는

{Ctrl} + 아이템 알파벳('d')

를 해야 하며

말을 내릴 때 {r} key를 눌러 줘야 합니다.


주로 오른쪽 keypad로 마법을 많이 사용할 텐데,

{Ctrl}, {u}, {r} 과 같은 key들은 너무 왼쪽에 있습니다.

키보드를 누르는 동선이 다소 불편합니다.



말을 타고 내리는 것도 hotkey로 하면 편합니다.

'자동기원'과 마찬가지로 toggle 하도록 할 수 있습니다.


---------------------- 구현 ------------------------

다만 '자동기원'에서는 toggle하는 내용을 하나의 함수에 담았었는데


- 말 타는 함수 (HorseOn)

- 말 내리는 함수 (HorseOff)

- 그리고 이 둘을 Toggle하는 함수(ToggleHorse)


이렇게 구분해 작성해보려고 합니다.



(UseItemcommon_func_v1.ahk 에 있는 함수입니다.)

(철갑마안장'd'에 있을 때를 기준으로 작성되었습니다. 다른 칸에 있다면 'd'를 수정해주세요)



[v1.1]


isRiding  := False ; 말을 타고 있는지 아닌지 상태 저장
; ------------------------------------------------
HorseOn() {           ; 말 타기
    global isRiding   ; global 변수인 isRiding을 사용하겠다는 의미
    UseItem("d")      ; 철갑마 사용 (철갑마가 'd'에 있을 때)
    isRiding := True  ; 이제 말 타고 있음
    return
}
HorseOff() {          ; 말 내리기
    global isRiding   ; global 변수인 isRiding을 사용하겠다는 의미
    SendInput {r}     ; 말 내리기
    isRiding := False ; 이제 말 안 타고 있음
    return
}
ToggleHorse() {       ; 말 타고/ 내리기
    global isRiding   ; global 변수인 isRiding을 사용하겠다는 의미
    if isRiding {     ; 말을 타고 있으면
        HorseOff()    ; 말 내리기
    } else {          ; 말을 안 타고 있으면
        HorseOn()     ; 말 타기
    }
    return
}
 
#IfWinActive ahk_class Nexon.NWind ; 바람의나라 창이 활성화 상태일 때만
End::ToggleHorse()                    ; 말 Toggle
#IfWinActive
 




이렇게 하고 원하는 HotKey에 ToggleHorse() 를 붙여주면 됩니다.


한가지 유의할 점은 다른 사람이 '환군마술' 걸어주면 이건 isRiding에 반영이 안되기 때문에

따로 {r} key를 눌러주거나 Toggle 두 번 해야 합니다.





댓글 0