매크로

조회 수 361 추천 0 댓글 22

팁보고 어떻게든 해결해보려했는데 가입한지 얼마안되서 권한이 없다네요 ㅠ

 

제가 몇일전부터 레이븐 이란 게임을 블루스택으로 돌려볼려고 오토핫키를 접하게 됬는데

 

지역을 선택하는 과정에 있어서

 

Gui, mygui: Add, DropDownList, x60 y55 w60 h120 v메인맵 , 마테라||절벽|협곡|항구|사원|광산
Gui, mygui: Add, DropDownList, x120 y55 w60 h70 v메인난이도, 쉬움||보통|어려움
Gui, mygui: Add, DropDownList, x180 y55 w30 h100 v메인구역, 1||2|3|4|5
Gui, mygui: Add, DropDownList, x210 y55 w30 h200 v메인지역, 1||2|3|4|5|6|7|8|9|10

 

이렇게 구이를 짜놨습니다 그리고 이제

 

메인맵에서 마테라가 선택되었을경우 메인구역을 1만 있게 되도록 하려고 별짓을다해봤는데

메인맵:

{Gui, mygui: Submit,nohide

if(메인맵=1)

{Guicontrol, , 메인구역, |1|

}}

return

 

 

위에서 마테라는1 절벽은2 ~광산6 처럼 값이 매겨지는거 아닌가요

이런식으로 "메인맵"=마테라 도 넣어보고 g라벨도 추가해서 이리저리 해봤는데 도저히 되지를 않네요 ㅠㅠ

 

염치없이 가입하자마자 도움좀 부탁드리겠습니다.(_ _)


  • 리체 2015.10.23 21:10

    메인맵:

    Gui, mygui: Submit,nohide

    if(메인맵="마테라") {

    Guicontrol, mygui:, 메인구역, ||1

    }

    return


    {} 로 묶으셨지만 그럴 필요는 없어요.

    if문안의 메인맵에는 숫자가 아닌 글자가 들어가 있죠.

    잘 모르겠거든 msgbox로 확인해 보는 버릇을 들이세요.

    위에서부터 순서대로 숫자를 원한다면 Gui 옵션에 altsubmit 를 붙여주면 됩니다.

    GuiControl에서는 mygui:로 구이를 작성하셨으니 마찬가지로 적어주셔야 합니다.

    |1|| ; 1이 선택되어진채로 바뀝니다.

  • 최원태 2015.10.23 21:19
    답변 감사합니다
    그런데 심각한 문제가 있는듯 합니다 ㅠ
    적용해도 변화가 없네요
    혹시나해서 다른것도 확인해보니
    v 라벨도 인식안되는거 같고
    ex)
    Gui, add, checkbox, x y w h vTEST checked,

    if(TEST=1)
    {imageserch...........
    { ControlClick,,,.......
    }return}
    도 클릭이 안먹히는데 구이 자체에 문제가 있어서 변경사항 및 체크사항이 안되는 경우도 있는건가요?
  • 리체 2015.10.23 21:23

    메인맵 라벨을 작동시키는 명령은 있겠죠?
    goto, gosub 등등...


    쓸데없이 {} 로 묶지 마세요. 코드만 지저분해집니다.

  • 최원태 2015.10.23 21:35

    EdKNDen.png

    gosub이나 goto는 안써서 모르겟는데 이부분 말씀하시는건지요

    {}있는게 깔끔해보였는데 오히려 속도가 떨어지거나 하나요 ㅠ 지저분해진다는거 처음알았네요

  • 리체 2015.10.23 21:58

    안써도 되는것을 사용하였으니까요. 도움말 예문을 살펴보세요. 불필요하게 {}으로 묶지 않습니다.
    본문에서 라벨을 사용하였으니 구이를 변경하기 위해선 라벨을 작동시켜야 할것 아닙니까?

    goto나 gosub을 사용하지 않는다면 구이문에 g옵션도 없는데 작동을 어떻게 시키셨어요?

  • 최원태 2015.10.23 22:23

    Delete

  • 제발등업좀2 2015.10.23 23:21
    고작2틀에 이정도까지.. ㄷㄷ 기번적으로 언어를 다루어보셨나보네요? ㅎㅎ..; 리체님말씀데로.. 쓸대없이 중괄허로 안묵어도 되요.. 뭐 묵어도상관없지만...
  • 최원태 2015.10.23 23:49
    배웠었으면 이런 허접한걸로 고생 안했겠죠 ㅠㅠ
    왜 다른거에선 라벨들이 정상작동하는데 체크박스랑 리스트는 적용이 안되는지 답답하네요 ㅠㅠ
  • 최원태 2015.10.23 22:26
    v로 적혀있을텐데 말씀해주신대로 g로 했는데 안되서 우선 원상태로 돌려놨습니다
  • 리체 2015.10.24 00:10

    간단합니다. 몇줄만 고치면 됩니다.


    Gui, mygui: Add, DropDownList, x60 y55 w60 h120 v메인맵 g메인맵변경, 마테라||절벽|협곡|항구|사원|광산


    메인맵변경:

    Gui, mygui: Submit,nohide

    if(메인맵 = "마테라") 

    Guicontrol, mygui:, 메인구역, |1||

    return


    위에 사항만 수정하면 정상동작합니다.


    그리고 나머지는 대충 봤는데 함수안에서 정의되지 않은 변수를 그냥 사용하셨더군요.

    이 부분도 살펴보세요.

  • 최원태 2015.10.24 15:30
    혹시
    Gui, mugui: Add,checkbox, x y w h v테스트,
    이미지서치
    if((매크로시작=True)&&(에러레벨=0)&&(테스트=1))
    {클릭}

    에서 클릭이 안먹히는데 짐작가는부분 있으신가요?
    테스트 부분 조건을 뺀상태에선 이미지 잘찾고 클릭까지 했습니다 물론 테스트=0도 해봤는데 체크박스 관련 조건이 마치 성립이 안되는것처럼 보이더군요
    V라벨이 50개 정도 있는데 이것때문에 문제가 생긴것 같지는 않고
  • 리체 2015.10.24 17:31
    댓글에서도 얘기드렸지만 msgbox로 해당 변수에 어떤값이 들어있는지 보세요.

    if문을 사용하기전에
    Gui, mygui: Submit, noHide ; 이 구문은 넣으셨습니까?
    안 넣으셨다면 1,0 둘다 거짓이 됩니다. 값이 없기 때문이죠.
  • 최원태 2015.10.24 18:42
    While 전에 넣었는데 다른 구이때문에 꼬이는 일도 있을까요
    체크박스 라벨적힌 함수 바로위에 상태 변경하는 v라벨은 정상작동 하는데 체크박스 관련 부분만 제다 먹통이네요
  • 리체 2015.10.24 19:00
    함수안에서 사용한거에요?
  • 최원태 2015.10.24 19:02

    Delete2

  • 최원태 2015.10.24 19:03
    모든위치에Gui, mygui: Submit, noHide 구문 넣어봤을때도 작동이 안됬습니다
  • 리체 2015.10.24 19:21

    앞서 댓글에서 함수안에서 정의되지 않은 변수에 대해 검토하시라고 했습니다.

    함수의 개념을 좀더 공부하셔야겠습니다.

    함수는 본문에 예속되지만 엄연히 독립적인 스레드로 구분지어야 합니다.
    즉. 본문에서 정의를 했던 변수,라벨... 등이 존재하지 않습니다.
    함수내에서 본문의 변수값을 사용하기 위한 대표적인 방법이 2가지 존재합니다.

    1. 함수를 사용할때 변수값을 전달하는 방법 - 비활성클릭함수가 여기에 해당
    2. 함수내에서 본문의 변수를 공유하는 방법 - global 변수

  • 최원태 2015.10.24 19:39
    아아아아.......이 의미 였군요......답답하게 해서 죄송합니다 저한테는 2번방법이 좋을거같군요 항상 변수호출을 달리해야하니 감사합니다 여러모로 많이 배워갑니다(_ _) 저도 천천히라도 완벽히 익혀서 리체님 처럼 다른분들에게 도움이 됬으면 하군요
  • 리체 2015.10.24 19:42
    하나만 예로 들자면

    위치확인()
    {
    global 매크로시작, 상태
    CoordMode, Pixel, Screen
    WinGetPos, pos_x, pos_y, width, height, BlueStacks App Player
    x_right := width + pos_x
    y_bottom := height + pos_y

    ImageSearch, FoundX, FoundY, %pos_x%, %pos_y%, %x_right%, %y_bottom%, *40 %A_ScriptDir%\이미지\메인화면.png
    if ((ErrorLevel = 0) && (매크로시작 = true))
    {
    GuiControl, , 상태,메인화면확인
    }
    .
    .
    .
    .
  • 최원태 2015.10.25 01:04
    역시 하나하나 열거하지 않아도 되던거였군요 또하나 배워갑니다 ㅠㅠ
  • 리체 2015.10.24 00:21

    하나 더, 이미지서치로 얻은 좌표를 비활성클릭함수로 보내어 변환하셨지만 아직 Relative 좌표입니다.

    PostMessage에서는 Client좌표를 사용하므로 캡션과 보더도 빼셔야 합니다.

  • 제발등업좀2 2015.10.24 00:29
    여전히 리체님답변이 진리군요 ㅎㅎ. 요즘. 간만에.. 할만한겜생겨서.. 욜심히 만드는중 ㅋㅋ 윈드로이로. ㅎ.진작쓸걸 가볍고 좋네요 ㅎㅎ.
    참고로2랩되시면.. 모바게님 비활성클릭 부분보시면이해가빨라요.. 포스메세지로 클릭하실땐 창의 캡션과 보더 테두리값 을빼주셔야.. 원하는위치에 클릭하십니다..
    대충픽셀로는 캡션이 약30 보더가8 이였나? 그정도 차이가 날껑에요 아마?

List of Articles
분류 제목 글쓴이 최근변경 추천
질문 DropDownList의 리스트 부분이 조절 가능한가요? 6 시에 2015.02.25 0/0
질문 Dropdownlist를 사용한 창을 WinActivate 하는 방법이 ... 2 Vermee 2015.02.17 0/0
질문 DropDownList 질문이요. 2 아잉뿌잉 2015.02.26 0/0
자유 DropDownList 와 IniRead 불러온 값으로 선택되게 할려... 10 Rabbit 2018.06.23 0/0
질문 Dropdownlist 연동관련 질문드리겠습니다 22 최원태 2015.10.25 0/0
질문 Dropdownlist 에서 선택하지않으면 에러납니다. 4 우리강아지 2016.05.29 0/0
질문 Dropdownlist 에 항목을 추가 하는 방법이 궁금합니다 3 레이븐 2014.12.16 0/0
질문 Dropdownlist 기본값 줄수 없나요?? 3 yodda 2014.12.21 0/0
질문 dropdownlist , ini 질문이요~ 4 화임 2015.07.12 0/0
질문 document가 뭔가요? 힌트좀 주세요. 정직한 2016.10.30 0/0
질문 document.getElementsByClassName 여러조건?에맞는결과... 1 _Crash 2015.09.15 0/0
질문 document 엔터입력 1 _Crash 2016.04.16 0/0
질문 dll참조에 관한 고수님있으시나요? 8 리키레이 2016.02.08 0/0
질문 DLL관련 변수선언, Guicontrol관련 질문. 2 아잉뿌잉 2015.07.06 0/0
질문 dllcall로 autohotkey.dll이 호출 안되는 현상 하연데디 2016.10.28 0/0
질문 dllcall(keybd_event) 비활성화는 안되나요>? 2 끼엣ㅅㅅ 2019.04.09 0/0
질문 dllcall 질문드려요 광대승천 2020.07.24 0/0
질문 dllcall 사용법 질문! 키리야 2017.12.10 0/0
정보 DllCall "mouse_event" 속도조절하는 법 rkfdma 2016.12.08 0/0
질문 dll 과 인젝션에 관한문의 오핫충 2018.01.21 0/0
Board Pagination Prev 1 ... 195196197198199200201202203 ... 209 Next
/ 209

전체 최신 인기글

전체 주간 인기글