スコアボードAPIを利用する

編集
この機能は実験的な機能であり、将来仕様が変更される可能性があります。予めご了承ください。

APIでの利用方法

APIを使ったスコアボードの利用方法についてです。

スコアボードへの記録

メソッドwindow.RPGAtsumaru.experimental.scoreboards.setRecord(boardId: number, score: number)
説明引数の boardId を指定することによりスコアを記録するスコアボードを指定。
第2引数のscoreでスコアを指定し、記録するスコアの点数を記録。
引数
  • スコアボードID(デフォルトは1〜10までの整数)
  • 記録するスコアの点数。スコアの値としてRPGアツマールがサポートしている範囲は -999,999,999,999,999+999,999,999,999,999 です。
戻り値Promise<void>
リリース日2018/06/15
更新日2018/08/28

起こりうるエラーの種類

名前説明
BAD_REQUEST
INTERNAL_SERVER_ERRORRPGアツマールのサービス側で何らかの問題が発生しているか、または通信に失敗した

スコアボードを表示する

メソッドwindow.RPGAtsumaru.experimental.scoreboards.display(boardId: number)
説明引数の boardId を指定することによりスコアを記録するスコアボードを指定してスコアボード表示
引数スコアボードID(デフォルトは1〜10までの整数)
戻り値Promise<void>
リリース日2018/06/15
更新日2018/06/15

スコアボードからデータを読み込み

メソッドwindow.RPGAtsumaru.experimental.scoreboards.getRecords(boardId: number)
説明引数の boardId を指定することによりスコアボードの情報を取得
引数スコアボードID(デフォルトは1〜10までの整数)
戻り値Promise<ScoreboardData>
リリース日2018/06/15
更新日2018/06/15

戻り値の型 ScoreboardData について

戻り値で取得できる ScoreboardData は以下のような型です。

interface ScoreboardData {
  myRecord: null | {
    isNewRecord: boolean,
    rank: number,
    score: number
  },
  ranking: Array<{
    rank: number,
    score: number,
    userName: string,
    userId: number
  }>,
  myBestRecord: null | {
    rank: number,
    score: number,
    userName: string,
    userId: number
  },
  boardId: number,
  boardName: string
}

プロパティの内容は次のようになっています。

プロパティ名内容
boardIdnumberボードID
boardNamestringボードの名前
myRecordobject | null今回の自己レコード
myRecord.ranknumber今回の自己レコードのランキング順位
myRecord.scorenumber今回の自己レコードのスコア
myRecord.isNewRecordboolean今回の自己レコードが自己新記録かどうか
myBestRecordobject | null自己ベスト記録。ログインしていないと必ずnullになる
myBestRecord.ranknumber自己ベスト記録のランキング順位
myBestRecord.userNamestring自己ベスト記録のユーザ名
myBestRecord.userIdnumber自己ベスト記録のユーザーID
myBestRecord.scorenumber自己ベスト記録のスコア
rankingarrayランキングデータ
ranking.lengthnumberランキングデータの長さ
ranking[n].ranknumbern+1番目のランキング
ranking[n].userNamestringn+1番目のランクのユーザ名
ranking[n].userIdnumbern+1番目のランクのユーザーID
ranking[n].scorenumbern+1番目のランクのスコア

戻り値の例

// window.RPGAtsumaru.experimental.scoreboards.getRecords(1).then(function(v) { console.log(v) }) を実行
{
  "myRecord": {
    "isNewRecord": false,
    "rank": 5,
    "score": 0
  },
  "ranking": [
    {
      "rank": 1,
      "score": 1000,
      "userName": "atsumalion",
      "userId": 123456
    },
    {
      "rank": 2,
      "score": 500,
      "userName": "atsumatiger",
      "userId": 123457
    },
    {
      "rank": 3,
      "score": 100,
      "userName": "atsumagorilla",
      "userId": 123458
    }
  ],
  "myBestRecord": {
    "rank": 1,
    "score": 1000,
    "userName": "atsumalion",
    "userId": 123456
  },
  "boardId": 1,
  "boardName": "スコアボードの名前"
}

起こりうるエラーの種類

名前説明
BAD_REQUEST
INTERNAL_SERVER_ERRORRPGアツマールのサービス側で何らかの問題が発生しているか、または通信に失敗した