매크로

자유
2015.02.04 01:41

세븐 나이츠 3쫄 교체 소스

조회 수 817 추천 0 댓글 6

쫄 교체?방식은 1,2,3 번 슬롯 확인후 레벨이 30이 넘거나 슬롯이 비어있는 경우 해당 슬롯의 영웅 교체입니다.

작업한 블루스택의 해상도는 960, 600 입니다. 이미지서치는 모바게님께서 함수 만들어 주신거 응용했습니다.

?

방금전에 만들어서 혹시 오류있을수도 있는데 혹시 보충 사항이나 더 좋은 방법 있으면 댓글 부탁드립니다.

?

ChangeHero()
{
?
?TrayTip, , 쫄 교체 시작
?hero1 := false
?hero2 := false
?hero3 := false
?
?;1번 슬롯 영웅 레벨 확인
?;1번 슬롯이 비어 있는 경우에도 영웅 교체
?if(imageSearcher("영웅관리_1번슬롯.png", "F") = false) {
??x:=210?? ;1번 슬롯?X,Y 좌표 값,
??y:=160
??N:=x|y<<16
??PostMessage, 0x201, 1, %N%, , BlueStacks App Player
??PostMessage, 0x202, 0, %N%, , BlueStacks App Player
??sleep, 2000
??
??if(imageSearcher("영웅관리_레벨30.png", "F") = true)?{
???;팀 해제 버튼 클릭
???imageSearcher("영웅관리_팀해제.png", "C")
??}
??else?{
???imageSearcher("영웅관리_정보창닫기.png", "C")
???hero1 := true
??}
??sleep, 2000
?}

?;2번 슬롯 영웅 레벨 확인
?;2번 슬롯이 비어 있는 경우에도 영웅 교체
?if(imageSearcher("영웅관리_2번슬롯.png", "F") = false) {
??x:=210?? ;2번 슬롯 X,Y 좌표값
??y:=260
??N:=x|y<<16
??PostMessage, 0x201, 1, %N%, , BlueStacks App Player
??PostMessage, 0x202, 0, %N%, , BlueStacks App Player
??sleep, 2000
??
??if(imageSearcher("영웅관리_레벨30.png", "F") = true)
??{
???;팀 해제 버튼 클릭
???imageSearcher("영웅관리_팀해제.png", "C")
??}
??else?{
???imageSearcher("영웅관리_정보창닫기.png", "C")
???hero2 := true
??}
??sleep, 2000
?}
?
?;3번 슬롯 영웅 레벨 확인
?;3번 슬롯이 비어 있는 경우에도 영웅 교체
?if(imageSearcher("영웅관리_3번슬롯.png", "F") = false) {
??x:=210?? ;3번?슬롯 X,Y 좌표값
??y:=360
??N:=x|y<<16
??PostMessage, 0x201, 1, %N%, , BlueStacks App Player
??PostMessage, 0x202, 0, %N%, , BlueStacks App Player
??sleep, 2000
??
??if(imageSearcher("영웅관리_레벨30.png", "F") = true)
??{
???;팀 해제 버튼 클릭
???imageSearcher("영웅관리_팀해제.png", "C")
??}
??else?{
???imageSearcher("영웅관리_정보창닫기.png", "C")
???hero3 := true
??}
??sleep, 2000
?}
?
?loop, 10{
??if(hero1 = false) {
???if (imageSearcher("영웅_해피_1성_레벨1.png", "Hero") = true){
????hero1 := true
???}
???else if (imageSearcher("영웅_해피_2성_레벨1.png", "Hero") = true){
????hero1 := true
???}
???else if(imageSearcher("영웅_해피_3성_레벨1.png", "Hero") = true){
????hero1 := true
???}
???
???if(hero1 = true){
????sleep, 2000
????imageSearcher("영웅관리_팀배치.png", "C")
????sleep, 2000
????imageSearcher("영웅관리_1번슬롯.png", "C")
????sleep, 1000
???}
??}
??sleep, 200

??if(hero2 = false) {
???if (imageSearcher("영웅_아론_2성_레벨1.png", "Hero") = true){
????hero2 := true
???}
???else if(imageSearcher("영웅_아론_3성_레벨1.png", "Hero") = true){
????hero2 := true
???}
???
???if(hero2 = true){
????sleep, 2000
????imageSearcher("영웅관리_팀배치.png", "C")
????sleep, 2000
????imageSearcher("영웅관리_2번슬롯.png", "C")
????sleep, 1000
???}
??}
??sleep, 200
??
??if(hero3 = false) {
???if (imageSearcher("영웅_바론_2성_레벨1.png", "Hero") = true){
????hero3 := true
???}
???else if(imageSearcher("영웅_바론_3성_레벨1.png", "Hero") = true){
????hero3 := true
???}
???
???if(hero3 = true)
???{
????sleep, 2000
????imageSearcher("영웅관리_팀배치.png", "C")
????sleep, 2000
????imageSearcher("영웅관리_3번슬롯.png", "C")
????sleep, 1000
???}
??}
??sleep, 200
??
??if(hero1 = true && hero2 = true && hero3 = true){
???TrayTip, , 쫄교체완료
???break
??}
??
??DragHero()
??sleep, 100
?}
?
?imageSearcher("영웅관리_나가기.png", "C")
?sleep, 2000
?
?return
}

?

DragHero()
{
?TrayTip,,Drag
?X:= 620
?Y:= 480
?N1:=X|Y<<16

?X:= 620
?Y:= 340
?N2:=X|Y<<16

?PostMessage, 0X201, 0, %N1%, , BlueStacks App Player??;마우스 다운
?Sleep, 100
?PostMessage, 0X200, 1, %N2%, , BlueStacks App Player??;마우스 이동
?PostMessage, 0X202, 0, %N2%, , BlueStacks App Player??;마우스 업

?
return
}

?

imageSearcher(img, mode){
?
?; mode 파라미터? F 찾기,? C 클릭, Hero 영웅(오차값 150)
?WinGetPos,x,y,w,h,BlueStacks App Player
?;Windows 7 64비트
?;Screen??775, 601
?;Relative?597, 513
?;Client??594, 488
?SysGet,wFrame,3 ; 현재 시스템의 Border값 (창 테두리 두께)
?SysGet,wCaption,22 ; 현재 시스템의 Caption값 (제목 표시줄 높이)

?posX:=x+wFrame
?posY:=y+wFrame+wCaption
?width:=w-wFrame*2
?height:=h-wCaption-wFrame*2
?edgeX := posX + width
?edgeY := posY? + height

?if(mode = "Hero") {
??msg = %img% %mode%
??;WriteLog(msg)
??ImageSearch, oX, oY, posX, posY, edgeX, edgeY, *150 %A_ScriptDir%\img\%img%
??;MouseMove,oX,oY???????? ;마우스 위치 확인
?}
?else {
??ImageSearch, oX, oY, posX, posY, edgeX, edgeY, *40 %A_ScriptDir%\img\%img%
?}

?;x2:=oX-posX
?;y2:=oY-posY
?;MsgBox, x : %oX%? y : %oY%, x2 : %x2%? y2: %y2%, posX : %posX%? posY: %posY%
?
?if(ErrorLevel = 0){
??;WriteImgLog(img, 0)
??
??;마우스 위치 확인
??;MouseMove,oX,oY
??
??if(mode="C" || mode="Hero")
??{
???;WriteImgLog("클릭",0)
???imgX := oX + 14
???imgY := oY - 8
???x:=imgX-posX
???y:=imgY-posY
???N:=x|y<<16
???
???PostMessage, 0x201, 1, %N%, , BlueStacks App Player
???PostMessage, 0x202, 0, %N%, , BlueStacks App Player
???sleep, 100
??}
??return true
?}
?else if (ErrorLevel = 1){
??;WriteImgLog(img, 1)
??;Msgbox, 못찾음
?return false
?}
}


  • 붕붕검 2015.02.05 09:52

    덕분에 잘보고 갑니다

  • 칼츠테일 2015.02.13 15:28

    혹시 스킬소스도 있나요? 지금 현재 스킬에서 완전 막혀서 멘붕상태 ㅠㅠ

  • 보득 2015.02.18 13:57
    스킬은 쉬워요. 스킬쪽 영웅 얼굴 잘라서 이미지서치해서 클릭하면 됩니다. 스킬 이미지로 찾지말고 영웅 얼굴 잘라서 찾아서 하심됩니다ㅡ
  • 내붕알용문신 2015.03.02 19:02

    잘보고가요 ^^?

  • 까르민 2015.03.03 13:50

    잘 봤습니다.... 근데 구조상 지연시간이 너무많네요 ..


    1. 블택 화면 전체에서 ?이미지를 찾으므로 지연

    2.슬립이 너무 많아요.?


    서치 함수를 만들어 쓰시니 거기다가 루프문의 더해서 찾으면 바로 분기되게 하는게 좋죠.


    모험끝나고 30업 확인창 누르고 30쫄위치 확인하고 영웅관리 창들어가서 오른쪽에서 영웅선택해서 변경하고

    변경 확인하고 나와서 모험시작창 확인하는데 까지(1마리 교환시) 걸리는 시간이 10초이내로는 힘들듯하네요~

    8~10초정도는 나와야 시간당 60+-2회 정도 돌아져요(제 매클 기준상....)


    아참 그리고?hero1,2,3 번을 gosub 쫄교환 으로 분기하면 코드를 좀 줄일 수 있겠네요.



    그러는 나도 귀찮아서 대충 ..털썩....아닙니다.....


  • profile
    다람쥐짱 2015.03.19 22:14

    알고리즘이 이렇게 되군요. 잘보고 배웁니다.


List of Articles
분류 제목 글쓴이 최근변경 추천
자유 혹시 여기 계시는 분들중에 티스토리 초대장 필요하신... 13 외치기 2015.02.21 2/0
질문 요기를 처음 알게되어 궁금한게 있어서 질문드려요~ 1 totoro 2015.02.04 0/0
질문 run을 이용한 adb 쉘 커맨드 실행 관련한 질문입니다 ㅠㅠ 11 Hangoon 2015.05.18 0/0
자유 세븐 나이츠 3쫄 교체 소스 6 보득 2015.03.19 0/0
자유 [AutoPM Ver 1.58] 포켓메이플스토리 매크로 8 은다 2015.04.25 4/0
정보 GUI - 파일(폴더) 목록을 DropDownList로 만들기 14 모바게 2016.06.13 3/0
질문 모비즌 pc버전의 color값이 안나오는 문제 시에 2015.02.03 0/0
질문 트레이 아이콘 더블클릭과 같은효과 1 웃기지마 2015.02.02 0/0
질문 이미지서치 img 이동 질문드립니다 4 광어형님 2015.02.02 0/0
자유 희한하네요... 2 보득 2015.02.02 0/0
질문 모비즌 pc버전의 이미지검색 방법을 알수있을까요? 4 시에 2015.02.02 0/0
질문 이미지서치시 동일이미지가 한화면에 여러개 있는 경우 4 보득 2018.08.14 0/0
질문 이미지 기준으로 랜덤좌표클릭 가능한가요? 10 dambe 2015.02.02 0/0
질문 정말 여쭤보기도 민망할정도의 초보입니다. 질문이 있... 4 꿀이짱 2015.02.02 0/0
질문 동료강화가 어떤 방식으로 되는지 궁금해서 질문글 올... 3 주드로우킥 2015.02.03 0/0
질문 postmessage 인식이 안될때 10 샤랄랄라 2015.02.08 0/0
질문 루프 탈출 단축키 10 공대호텔 2015.02.03 0/0
자유 Soundbeep 5 보득 2015.02.02 2/0
질문 settimer 를 여러게 사용시 질문!!! 8 파더 2015.02.02 0/0
자유 오핫 참 배우고 싶은데요 .. 2 오스카 2015.02.02 0/0
Board Pagination Prev 1 ... 185186187188189190191192193 ... 209 Next
/ 209

전체 최신 인기글

전체 주간 인기글