bytecodelab / hive5-sdk-unity

Hive5 SDK for Unity3d
2 stars 0 forks source link

주간 랭킹 보상 #2

Closed slimerush closed 10 years ago

slimerush commented 10 years ago

현재의 정보만으로 랭킹 결산 요청하기에 부족하네.

  1. 지난 랭킹 시간
  2. 리셋 시간
  3. 지난 점수 시간

이 세가지면 판단 할 수 있을꺼 같았는데, 한가지 처리가 안되는 케이스가 있어서.

랭킹 리셋 전에 점수를 기록하고, 랭킹 시간 전에 게임이 시작해서, 랭킹 시간이 지난 후에 점수가 기록되는 경우에,

3의 지난 점수 시간이 덮어씌워 져서, 결산 요청을 할 수가 없어.

slimerush commented 10 years ago
  1. 로그인할때 받은 Social Score 정보 (time: 2013-12-20T20:50:54, utc:2013-12-20T11:50:54) [WWWGet Request] https://beta.api.hive5.io/v3/leaderboards/2/social_scores?&X-APP-KEY=a4b9dff4-3a9a-402b-bc2b-00d144ebacad&X-AUTH-UUID=d2e38f3f1cc18d01cfa04d62a5ff4415a21faf00&X-AUTH-TOKEN=ea952d91-c7dc-4677-a41b-98043ad20bab&user_data_key=userdata.player.&user_data_key=userdata.teamselect.&item_key=items.level.

    (time: 2013-12-20T20:50:54, utc:2013-12-20T11:50:54)
    [WWWGet Response]
    {
     "result_code": 0,
     "reset_info": {
       "period": "weekly",
       "weekday": "fri",
       "hour": 11,
       "minute": 49
     },
     "last_prized_at": "2013-12-20T11:34:35",
     "scores": [
       {
         "user_id": 17844,
         "platform_user_id": "630029",
         "value": null,
         "rank": null,
         "scored_at": null,
         "user_data": {
           "userdata.teamselect.character1": "Gamee",
           "userdata.teamselect.character0": "Rudy",
           "userdata.teamselect.turntable": "Basic",
           "userdata.teamselect.character2": "MoonD",
           "userdata.player.nickname": "Test_630029",
           "userdata.player.message_blocked": "False"
         },
         "items": {
           "items.level.exp": {
             "value": 752,
             "locked": false
           },
           "items.level.level": {
             "value": 4,
             "locked": false
           }
         },
         "can_gift_items": {}
       }
     ],
     "scores_count": 1,
     "my_last_score": {
       "value": 103,
       "scored_at": "2013-12-20T11:47:14"
     }
    }
  2. Round Start (time: 2013-12-20T20:52:05, utc:2013-12-20T11:52:05) [WWWPost Request] https://beta.api.hive5.io/v3/rounds/start?rule_id=2 (header) X-APP-KEY=a4b9dff4-3a9a-402b-bc2b-00d144ebacad (header) X-AUTH-UUID=d2e38f3f1cc18d01cfa04d62a5ff4415a21faf00 (header) X-AUTH-TOKEN=ea952d91-c7dc-4677-a41b-98043ad20bab

    (time: 2013-12-20T20:52:06, utc:2013-12-20T11:52:06)
    [WWWPost Response]
    {
     "result_code": 0,
     "id": 2539096356138629,
     "items": {
       "items.boostitem.extendCount": {
         "value": 0,
         "locked": false
       },
       "items.moneyinfo.musicCoin": {
         "value": 4,
         "locked": false,
         "recharge_info": {
           "max": 5,
           "recharges_in_sec": 1200,
           "recharges_at_hour": null,
           "next_recharges_at": "2013-12-20T12:06:56"
         },
         "recharges_info": {
           "max": 5,
           "recharges_in_sec": 1200,
           "recharges_at_hour": null,
           "next_recharges_at": "2013-12-20T12:06:56"
         }
       },
       "items.boostitem.premiumNoteCount": {
         "value": 0,
         "locked": false
       },
       "items.boostitem.expBonusCount": {
         "value": 0,
         "locked": false
       },
       "items.boostitem.batteryCount": {
         "value": 0,
         "locked": false
       }
     },
     "user_data": {}
    }
  3. Round End (time: 2013-12-20T20:53:46, utc:2013-12-20T11:53:46) [WWWPost Request] https://beta.api.hive5.io/v3/rounds/end/2539096356138629 (header) X-APP-KEY=a4b9dff4-3a9a-402b-bc2b-00d144ebacad (header) X-AUTH-UUID=d2e38f3f1cc18d01cfa04d62a5ff4415a21faf00 (header) X-AUTH-TOKEN=ea952d91-c7dc-4677-a41b-98043ad20bab

    {"score":{"leaderboard_id":2,"value":2301},"item_changes":[{"key":"items.moneyinfo.coin","value":309,"command":"inc"},{"key":"items.level.exp","value":480,"command":"inc"}]} ``` (time: 2013-12-20T20:53:46, utc:2013-12-20T11:53:46) [WWWPost Response] { "result_code": 0, "items": { "items.level.exp": { "value": 1232, "locked": false }, "items.moneyinfo.coin": { "value": 101273, "locked": false } }, "user_data": {}, "score_updated": true } ```
  4. 점수 갱신 요청 (time: 2013-12-20T20:53:57, utc:2013-12-20T11:53:57) [WWWPost Request] https://beta.api.hive5.io/v3/leaderboards/prize/2 (header) X-APP-KEY=a4b9dff4-3a9a-402b-bc2b-00d144ebacad (header) X-AUTH-UUID=d2e38f3f1cc18d01cfa04d62a5ff4415a21faf00 (header) X-AUTH-TOKEN=ea952d91-c7dc-4677-a41b-98043ad20bab

    (time: 2013-12-20T20:53:58, utc:2013-12-20T11:53:58)
    [WWWPost Response]
    {"result_code":0}
slimerush commented 10 years ago

위의 과정은

  1. 첫번째 게임을 완료하여 점수를 기록 1번의 로그인데이터중에 "reset_info": { "period": "weekly", "weekday": "fri", "hour": 11, "minute": 49 }, "last_prized_at": "2013-12-20T11:34:35", "my_last_score": { "value": 103, "scored_at": "2013-12-20T11:47:14" }
  2. 두번째 게임 시작(2번 라운드 스타트)
  3. 두번째 게임이 끝나기전에 랭킹 리셋시간이 지남(1번 데이터에서 확인)
  4. 두번째 게임의 점수를 기록(다음 랭킹으로 넘어감) 3번의 Round End 요청 시간 : utc:2013-12-20T11:53:46
  5. 랭킹 리셋을 요청

    위와 같은 과정을 거쳤는데, 랭킹 정보가 안오는 상황이야. 확인 좀 부탁해.

Seyun commented 10 years ago

정리하면, 다음과 같은 거죠?

  1. Season 1에 해당하는 점수 A 기록
  2. 리셋 시간 지남 (Season 1 -> 2)
  3. Season 2에 해당하는 점수 B 기록
  4. prize 요청하면, Season 1에 대해서 정산이 이루어져야 하나 안이루어짐
slimerush commented 10 years ago

ㅇㅇ 맞아

Seyun commented 10 years ago

디버그를 위해 API를 추가했어요.

/:version/leaderboards/prize_debug/:leaderboard_id

prize를 시행하면, 기존 prize와 응답이 동일합니다. 단, prize를 하지 않은 경우에 다음 field가 포함됩니다.

"prizedInfo" "score" , "season_from" "season_to" "score_list"

slimerush commented 10 years ago

OK 완료 됐어.