오토핫키를 어제 처음 써보았습니다..
아직까지는 불편하기는 하지만 프로그램 컨트롤에 아주 강점을 보이는 스크립트는 처음이라 재밌게 공부하고 있습니다.
현재까지 공부한게 ImageSearch나 비활성 스크립트 작성으로
간단하게 아이템을 인식해서 줍게 하거나, 자동으로 버프를 쿨타임 시간마다 재사용하게하는 스크립트는 작성해보았는데
약간 이제 제가 검색해서 배운것에 한계를 느낍니다.
구현하고자 생각하는 것은 스크립트 자체의 멀티 쓰레드인데, 아무리 생각해보아도 autohotkey만으로는 멀티스레드 구현이 안되더군요. 예를 들어서, settimer를 한 서브루틴안에 3개정도 두면, settimer 3개 전체를 초기화 시킨 다음 스크립트 내의 순서대로 처음으로 오는 서브루틴으로 동작했습니다. 예상은 settimer가 바로 초기화되고 순서대로 읽어내려올 줄 알았는데 settimer마다 임의의 시간만큼 (정확하게 시간은 재지 않았습니디만,) 기다렸다가 settimer가 작동했고, 결과적으로 저는 여기서 멀티스레드 기능이 없어서 그렇다고 판단했습니다. (만약 autohotkey 자체 스레드 구현이 가능하다면 조언과 훈수좀 부탁드립니다.... 굽굽)
제가 구현하려고 한것은 버프 쿨타임시간마다 각자의 쓰레드로 동작하는 settimer인데 위 문제로 생각이 더 이상 나지 않아서 커뮤니티에 조언좀 부탁드립니다.. (C++로 autohotkey.dll을 로딩하면 스레드 구현이 될것 같은데, 이 방법 말고도 신선한 다른 방법이 있을까요?)
위 문제 말고도 흥미로운 오토핫키.lib이 있다면 추천 부탁드립니다 (공부해보려고..) ㅎㅎ!!
L 버전에선 자체적으로 멀티스레드를 구현할수 없습니다.
H 버전이나 v2 버전에선 가능합니다.
L 버전에선 셋타이머 대신 미리 파일로 만들어 두고 메인에서 이를 실행했다 종료했다 하시면 멀티스레드라 할수 있죠.
H, v2 버전에서도 실제는 내부적으로 서브파일을 만들어 실행하는것일뿐 원리는 이와 같습니다.