재미삼아 스팀몬스터 봇 만들기

avatar

안녕하세요 @realmankwon입니다.

최근에는 개인적인 일이 바빠서 퇴근을 한 이후로는 거의 개발을 못하고 있습니다.
혼육을 하는 시간이 많다 보니 아이들을 챙기고 잠 드는 경우가 대부분이지요.
지난주부터 거의 아침 일찍 일어나서 포스팅을 하고 출근을 했습니다.

회사에서의 업무도 많다 보니 SCT 관련 개발은 점심시간이나 회사에서 당직근무를 설때 주로 하게 됩니다.
어제 SVC 관련 자동 보팅 및 자동 반환 기능이 완료되자 마자 KRWP 베네피셔리 스팀 보상이 나가지 않는 문제가 뒤늦게 발견이 되었습니다.
원인 분석 후 누락된 데이터를 조회하여 입력한 후 베네피셔리를 다시 전송하여 후처리는 완료하였습니다.
하지만 이런저런 일들로 인해 KRWP 임대 및 스팀 지갑 관련 개발을 챙겨서 하지 못하는 상황입니다.
SCT에서 글을 읽거나 댓글을 챙겨서 볼 시간조차도 잘 생기지 않는군요.
그나마 화장실에 가면 사고다의 댓글을 다는 정도입니다.

그런데 오늘은 저녁에 조금 시간이 생겼습니다.
아이들이 아주 일찍 잠자리에 들었기 때문이죠 ^^
그래서 오늘은 머리를 좀 식힐려고 스몬을 했습니다.

일퀘는 5번을 이겨야 되는 걸로 알고 있는데 몇달 전에 한번 이긴 것이 있었는지 4번만 이겼는대도 일퀘를 달성하게 되었습니다. ㅋ
원래 아무것도 모른채 했었는데 예전에 @gfriend96님의 포스팅에서 근거리, 장거리, 마법 등이 어떻게 동작을 하는지 조금은 알게 되어서 그걸 적용해 보았습니다.
일단 근거리에는 무조건 톱니바퀴의 숫자가 높은 것을 선택했습니다.
이후 마법이 쎈 녀석들로 배치하고 그 다음에 장거리 녀석들을 배치했습니다.
운 좋게도 오늘은 빨리 일퀘를 성공했네요 ^^
물론 다음 일퀘는 하지 못했습니다.

그런데 하다보니 이런 로직이라면 봇을 만드는 것이 더 편할 것 같다는 생각이 들었습니다.
이미 많은 분들은 스몬에서 봇을 돌리면서 카드 수량을 늘리고 있고 들었습니다.
저도 심심할때마다 스몬봇을 만들어 봐야겠다고 생각이 들어서 오늘 조금 조사를 해 보았습니다.

@goodhello님은 파이선으로 작업을 하신걸 보았습니다.
저는 최근에는 javascript 기반으로 개발을 하다보니 파이선은 최후의 보루로 남겨두었습니다.
구글링을 통해서 javascript 기반의 스몬 api 호출 방법을 찾아서 소스를 실행시켜 보았습니다.

일단 소스를 통해서 entered into match queue 로 블럭에 정보를 남기는 것을 성공했습니다.
이후 submitted a team for battle, revealed their cards for battle 도 성공을 하였습니다.

스몬 화면에서는 다음과 같이 처리가 되었습니다.

잘못된 카드 정보를 넘겨서 그런지 소환수 대신에 제 계정의 프로필 사진이 나오는군요.
결과는 4경기 모두 패했습니다.
그도 그럴 것이 제가 가진 카드를 배치도 하지 않고 게임을 진행했기 때문입니다.
블럭의 정보를 확인하면 정상적으로 스몬을 했을때와 차이가 있었습니다.

  • 스몬 사이트에서 실행

  • 소스를 통한 실행

이 부분만 해결이 되면 일단 스몬 봇을 통해서 게임을 진행할 수 있게 될 듯 합니다.
스몬도 봇으로 돌리는 그날까지 열심히... 하고 싶지만 이제는 KRWP 임대기능과 SCT 지갑에 좀 더 많은 힘을 들여야 할 듯 합니다.
스몬봇이 완성되면 카드를 좀 사야겠습니다. ^^



0
0
0.000
8 comments
avatar

모든 카드를 소지하고 있다면 배틀 정보를 취합하여 이를 활용하여 덱을 제출하면 되는데... 없는 카드가 많다보니... 일일이 덱을 짜는게 일이 너무 많아서...

룰셋 마나 조합과 퀘스트에 따른 스플린터까지 고려하다 보니 경우의 수가 상상을 초월하더군요...

전 일단 덱 짜다가 스톱을 해버렸네요 ㅠㅠ

0
0
0.000
avatar

아~~ 그렇군요~~~ㅜㅜ
저도 그렇게 될수도 있겠네요 ㅜㅜ
이걸 머신러닝으로 풀어봐야할런지 고민이군요.... ㅎㅎ

0
0
0.000
avatar

스몬 봇은 정말 만들고 싶은 봇 중 하나에요. 넥콜 봇처럼 판매만 한다면 사고 싶어요.

0
0
0.000
avatar

이런거 잘하는 사람들 보면 부러워요
저는 머리가 나빠서 ㅜㅜ

0
0
0.000
avatar

저는 그냥 제가 이긴정보들 기록, 전체게임정보들기록, 제가가진 카드들 기록 해서
해당 룰과 마나에따라 제가 했던기록들중 성적이있으면 그게 내카드로 팀구성이 가능한지 확안하고 가능하면 선택,
없으면 전체게임에서 성적좋은놈으로 다시 내카드로 팀구성가능한거 골라서 선택
이런식으로 하고 있습니다.

0
0
0.000
avatar

아 그렇군요~
조금씩 보고 있는데 한가지 문제가 스타터팩은 api로 조회거 안 되는군요 ㅜㅜ
제가 카드가 별로 없다보니 힘드네요 ㅋ
머리를 좀 굴려봐야겠습니다 ㅎ

0
0
0.000