選択したプラットフォーム用のリーダーボードページにログインします
achievement_login()
この関数は適切なリーダーボードとアチーブメントサービスにログインします。 もしサービスが利用できない場合、Game Centerやすべてのアチーブメントに記録された"ふり"をして、デバイスに保存されます。実際のサービスが利用可能であれば、記録はアップロードされます。 この関数は非同期イベント変数"async_load"にキー・値のペアを書くのするソーシャル非同期イベントをトリガします(詳細はソーシャル非同期イベントについて?を参照してください)。 このds_mapの"id"キーはコールバックを適切に識別するために使用されます(非同期イベントは同時に複数のトリガが発生する可能性があります)。 コールバックを識別するには"id"キーと定数"achievement_our_info"と一致するかどうかをチェックします。 ds_mapの内容は以下のとおりです。
次のコードはおそらくゲームの開始時に呼び出されます。 もしくはルームに配置した特別なボタンオブジェクトから、Googleのゲームサービスや、Apple Game Centerアカウントへのログインを要求します
achievement_login();
これにより現在のプレイヤーの情報を要求を送信し、async_loadのds_mapの非同期コールバックを生成します
// "id"の値をチェック var ident = ds_map_find_value(async_load, "id"); if ident == achievement_our_info { // ユーザ名を取得 var name = ds_map_find_value(async_load, "name" ); // プレイヤーIDを取得 var playerid = ds_map_find_value(async_load, "playerid" ); global.OurName = name; global.OurId = playerid; if os_type == os_android { // Android環境のリーダーボードを取得 achievement_load_leaderboard("CgkIs9_51u0PEAIQBw",false,1,100,achievement_filter_friends_only); } else { // それ以外の環境のリーダーボードを取得 achievement_load_leaderboard("leaderboard1id",false,1,100,achievement_filter_friends_only); } achievement_get_challenges(); achievement_load_friends(); achievement_load_progress(); }
上記コードは、ソーシャル非同期イベントにより生成したds_mapの"id"が定数と一致するかチェックして、一致すれば、 その後、リーダーボードを準備するために必要な関数を呼び出す前に、変数内のすべての異なる値になるマップをループ処理し、チャレンジやフレンドリストを取得します