指定のプレイヤーのチャレンジデータを送信します
achievement_send_challenge(playerid, challengeid, score, type, message)
この関数は指定のプレイヤーにネットワーク経由でのチャレンジを送信します。プレイヤーIDは、achievement_load_friends()やachievement_load_leaderboard()で取得可能です。またチャレンジIDはiTunes ConnectまたはGoogleのダッシュボードでチャレンジを作成した際に割り当てられたIDを使用します。 その他、スコア、ショートテキストメッセージ、チャレンジの種別を指定することが必要です。チャレンジ種別の定数は以下のいずれかとなります
この関数は、チャレンジを受信するプレイヤーのためのソーシャル非同期イベントのコールバックをトリガします。 これにより変数"async_load"にds_mapで値が格納されます。このds_mapの"id"キーは他の非同期コールバックと識別するために、定数"achievement_challenge_received"と一致する必要があります。ds_mapの詳細な説明は以下のとおりです
注意:ユーザは、受信したチャレンジに対する toast通知を受け取ることができますが、これは関数achievement_show_challenge_notifications()を使用して選択した値に依存します。
ネットワーク経由でチャレンジを送信するには、このコードとなります
achievement_send_challenge(global.playerid[0], global.challengeid[0], score, achievement_type_score_challenge, "Beat that sucker!");
このリクエストにより、プレイヤーのチャレンジのためにソーシャル非同期イベントをトリガします
var ident = ds_map_find_value(async_load, "id"); if ident == achievement_challenge_received { player_id = ds_map_find_value(async_load, "playerid"); issuer_id = ds_map_find_value(async_load, "issuerid"); state = ds_map_find_value(async_load, "state"); message = ds_map_find_value(async_load, "message"); date_completed = ds_map_find_value(async_load, "completeddate"); date_issued = ds_map_find_value(async_load, "issueddate"); ach_type = ds_map_find_value(async_load, "type"); ach_ident = ds_map_find_value(async_load, "identifier"); ach_score = ds_map_find_value(async_load, "score"); }
上記コードにより、ソーシャル非同期イベントで返されたds_mapの"id"キーをチェックして定数と一致した場合、受け取った値を変数に格納します