achievement_send_challenge


Syntaxe:

achievement_send_challenge(playerid, challengeid, score, type, message)

Argument La description
playerid L'identifiant unique du joueur à défier.
challengeid L'ID de défi unique (tel qu'il se trouve sur le tableau de bord du fournisseur).
score Le score à battre.
type le type de défi à émettre - l'une des deux constantes indiquées ci-dessous.
message Le message à joindre au défi.


Résultats:

N/A


La description

Cette fonction enverra un défi à travers le réseau au joueur choisi. Vous pouvez obtenir le playerid en utilisant le achievement_load_friends ou la achievement_load_leaderboard fonctions et vous devez également fournir le challengeid qui est la valeur unique donnée le défi lorsque vous l'avez créé sur votre tableau de bord iTunes Connect ou Google Play. Vous devez également fournir un score et un court message texte, ainsi que définir le type de défi. Cela peut être l'une des constantes suivantes:

  • achievement_type_score_challenge - Un défi basé sur la valeur du score.
  • achievement_type_achievement_challenge - Un défi basé sur un exploit.

Cette fonction déclenchera un Callback Social Asynchronous Event pour le joueur qui recevra le challenge, et dans ce cas vous aurez un ds_map référencé dans la variable async_load. La clé d' identification de cette ds_map est utilisé pour identifier le rappel correct (il peut y avoir plus d'une fonction de déclenchement pour un événement asynchrone donné), et sera associé à la constante achievement_challenge_received ainsi qu'un certain nombre d'autres paires clé / valeur pour chaque joueur. Le contenu exact de la carte est indiqué ci-dessous:

NOTE: que l'utilisateur peut également recevoir des notifications toast pour les défis reçus, mais cela dépendra des valeurs que vous avez choisi en utilisant la fonction achievement_show_challenge_notifications.
  1. " id " - Pour cette fonction, il devrait être achievement_leaderboard_info

  2. " playerid " - L'identifiant du joueur pour le challenge.

  3. " issuerid " - L'identifiant de l'émetteur pour le challenge.

  4. " state " - L'état du challenge, qui aura une valeur de 0 - 3 (comme une chaîne de caractères) pour invalide, en attente, complété ou refusé.

  5. " message " - Le message texte pour le défi.

  6. " completeddate " - La date d'achèvement du challenge.

  7. " date d'émission " - Date d'émission du challenge.

  8. " type " - Le type de défi donné. Peut être l'une des deux constantes:
    • achievement_type_score_challenge - Un défi basé sur la valeur du score.
    • achievement_type_achievement_challenge - Un défi basé sur un exploit.
  9. " identifier " - La chaîne d'identification pour le challenge, telle que définie dans le tableau de bord du fournisseur

  10. " score " - Le score est lié au défi (le cas échéant).


Exemple étendu:

Pour envoyer un défi sur le réseau, vous auriez ce code:

achievement_send_challenge(global.playerid[0], global.challengeid[0], score, achievement_type_score_challenge, "Beat that sucker!");

Cette requête déclenchera alors l' Evénement Social dans votre jeu pour le joueur auquel le défi a été dirigé, et ceci peut être traité de la façon suivante:

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");
   }

Le code ci-dessus vérifie le retour ds_map dans l' événement asynchrone social et si son «id» correspond à la constante en cours de vérification, il extrait ensuite les valeurs pertinentes pour chacune des clés de la carte et les stocke dans des variables pour une utilisation future.