[개발] 스몬 카드 투자[17] Quest 상태 확인 및 Quest 자동으로 시작하기

avatar

오랜만에 스몬과 관련된 개발 글입니다.

스몬을 하면서 가장 재미있는 유인 중의 하나가 일일 퀘스트입니다. 매일 새로운 splinter로 5승을 올리면 reward card를 받을 수 있습니다.

일일 퀘스트가 시작된 후 24시간이 지나면 새로운 퀘스트가 생깁니다. 만약 24시간 안에 퀘스트를 마무리 못했다면 splinter를 바꿀 수도 있습니다.

이렇게 이전 퀘스트가 나온지 만으로 24시간이 지나면 바로 새로운 퀘스트를 신청하는 것이 효율이 가장 좋습니다. 현실적으로는 정해진 시간에 접속할 수 없으니 조금씩 밀리겠지요.

이전 퀘스트가 생성된 이후 만으로 24시간이 지났으면 자동으로 quest를 신청할 수 있으면 좋을 것 같습니다. 그래서 만들어 봤습니다. 이름하여 자동 quest 신청하기!!


스몬 계정의 quest 상태는 아래 API를 통하여 얻을 수 있습니다.

https://steemmonsters.com/players/quests?username=계정명

API를 호출하면 아래 정보를 돌려줍니다.

이 정보를 보면 현재 Quest는 지구팀이고, 아직 한 번도 이기지 못하였다는 것을 알 수 있습니다. completed_items 값이 5 이상이면 quest를 완성하였다는 의미이고, 이런 경우에는 자동으로 claim도 가능합니다.

그리고 본인의 주력 team이 아닌 경우에는 quest 생성한 후 만으로 24시간이 지나면 팀을 바꿀 수도 있습니다. 물론 처음에도 바꿀 수 있습니다.

이렇게 총 세가지 경우에 대하여 적절하게 custom_json 명령어를 보낼 수 있습니다.

새로운 Quest 요청

스몬은 스팀 블록체인을 사용하기 때문에 상태 변화에 관련된 사항은 모두 custom json으로 스팀블록체인에 등록합니다.
새로운 Quest 요청도 custom json을 전송하는 방식입니다.

이를 위하여 함수를 별도로 만들었습니다.

def do_quest_custom_json(acc, id, type, txid=0) :
    pwd = players_posting_key[acc]
    my_steem = Steem(keys=pwd)
    my_acc = Account(acc, steem_instance=my_steem)
    # 새로운 quest 요청
    if id == "sm_claim_reward" :
        json_data = {"type": type, "quest_id":txid, "app": 'steemmonsters/0.7.0'}
    else :
        json_data = {"type": type, "app": 'steemmonsters/0.7.0'}

    ret = my_steem.custom_json(id, json_data, required_posting_auths=[acc])

이전 quest 이후 만 24시간이 지났으면 아래와 같이 호출하면 됩니다.

do_quest_custom_json(acc, "sm_start_quest", "daily", quest_info['id'])

기존 Quest에서 팀 변경하기

만약 24시간이 지났음에도 불구하고 Quest를 완성하지 못하였으면 새로운 팀으로 변경하는 것이 좋습니다. 새로운 팀으로 변경하는 방법은 아래와 같습니다.

do_quest_custom_json(acc, 'sm_refresh_quest', "daily")

Quest 완성 후 claim하기

열심히 quest를 하여 quest 완성을 하였습니다. 물론 카드 한 장 한 장 열어보는 재미가 있지만 걍 자동으로 해봅니다.

기존 quest 시작과 관련된 custom jason과는 달리 quest의 trx_id도 함께 보내주어야 합니다. 그 이외에는 거의 같습니다.

do_quest_custom_json(acc, "sm_claim_reward", "quest", quest_info['id'])

이렇게 claim 요청을 해 보니, claim은 되는 자동으로 카드를 열지는 않는군요. 이것도 어떤 명령어가 있을 것 같은데, 확인해 보겠습니다.


quest 시작과 claim을 자동으로 할 수 있게 되었습니다. 이제 자동으로 게임에 참여할 수 있도록 deck을 짤 수만 있다면 스몬 자동 player가 완성이 되겠군요.



0
0
0.000
9 comments
avatar

3~4달 전쯤(?) 퀘스트 갱신시간이 24시간에서 23시간으로 변경되었습니다.
참고하시기 바랍니다.
하루에 한시간씩 당길수 있으니 24일이면 1번더 퀘스트를 할수 있네요 하하

0
0
0.000
avatar

Hi @tradingideas!

Your post was upvoted by @steem-ua, new Steem dApp, using UserAuthority for algorithmic post curation!
Your UA account score is currently 4.398 which ranks you at #2480 across all Steem accounts.
Your rank has not changed in the last three days.

In our last Algorithmic Curation Round, consisting of 92 contributions, your post is ranked at #50.

Evaluation of your UA score:
  • Some people are already following you, keep going!
  • The readers like your work!
  • Try to work on user engagement: the more people that interact with you via the comments, the higher your UA score!

Feel free to join our @steem-ua Discord server

0
0
0.000
avatar

저도 열심히 스몬 관련 분석을 해봐야겠습니다.
좋은 봇을 만들어서 돌려보고 싶네요 ^^

0
0
0.000
avatar

난이도도 있고 성취감도 있고 잘되면 수익도 짭짤합니다. 할만 합니다.

Posted using Partiko Android

0
0
0.000