GameMaker Studio · GML
Monnaies et achats
Gamdato est livre avec une economie : des monnaies virtuelles que le joueur achete avec de l'argent reel (via Stripe), et des objets qu'il acquiert en depensant ces monnaies. Tout est defini dans le panneau et consomme depuis l'extension.
Definir les Monnaies et Objets
Dans le panneau, definissez vos monnaies (chacune avec un code) et les objets de la boutique (chacun avec un SKU).
Le "code" de la monnaie est ce que vous passez a gmda_getCurrencyLeaderboard().
Soldes
Lisez les soldes actuels et votre catalogue de monnaies. Lisez balances_loaded.
gmda_getBalances(); // -> balances_loaded# balances: Array, each:
{
"currency_id": String,
"balance": int
}
# currencies: Array, the catalog you defined in the panel:
{
"id": String,
"code": String,
"display_name": String,
"icon_url": String,
"is_active": bool
}
# "code" is the currency code you pass to get_currency_leaderboard().Acheter de la Monnaie (Recharge)
Lancez un paiement Stripe pour un pack de monnaie et lisez topup_started ; ouvrez l'URL retournee.
gmda_buyPack("coins_500"); // -> topup_started (e.response.url)Depenser sur des Objets
Achetez un objet de la boutique par SKU. Une cle d'idempotence est generee pour vous si vous l'omettez.
gmda_purchase("sword_of_dawn"); // -> purchase_completedPassez votre propre cle d'idempotence en 2e argument pour rendre une nouvelle tentative sure.
Inventaire
Listez les objets que le joueur possede et lisez inventory_loaded.
gmda_getInventory(); // -> inventory_loaded# items: Array, each owned item:
{
"item_id": String,
"source": String,
"acquired_at": String,
"metadata": Dictionary
}
# Rows also include internal ids (id, player_id, game_id).Grand Livre
Lisez l'historique des transactions (les plus recentes en premier) et lisez ledger_loaded.
gmda_getLedger(); // -> ledger_loaded
gmda_getLedger(50, 0); // limite, decalage# entries: Array, newest first:
{
"id": String,
"currency_id": String,
"delta": int,
"balance_after": int,
"op_type": String,
"created_at": String
}
# Rows also include internal ids/metadata (player_id, game_id, ref_kind, ref_value, idempotency_key, metadata).Classement par Monnaie
Un classement ordonne par solde de monnaie. Lisez currency_leaderboard_loaded.
gmda_getCurrencyLeaderboard("gold"); // -> currency_leaderboard_loaded# entries: Array, ordered by balance, highest first:
{
"rank": int,
"player_id": String,
"player_name": String,
"balance": int
}Octroyer de la Monnaie
Appliquez un octroi defini par le serveur via une cle de raison (p. ex. une recompense de quete) et lisez grant_completed.
gmda_grantCurrency("daily_quest"); // -> grant_completedLes octrois sont definis dans le panneau ; le client ne les reference que par cle de raison.