Godot 4 · GDScript
Награды
Награды, которые можно получить (ежедневные, еженедельные, за событие). Вы определяете их в своей панели, а игрок получает их в игре.
Проверка статуса
Проверьте, какие награды существуют и какие можно получить прямо сейчас:
Gamdato.rewards_status_loaded.connect(_on_rewards)
Gamdato.get_rewards_status()
func _on_rewards(rewards: Array, _server_now: String) -> void:
for r in rewards:
if r.claimable_now:
Gamdato.claim_reward(r.key)# rewards: Array, each reward you defined in the panel:
{
"key": String, # pass this to claim_reward()
"display_name": String,
"cadence_type": String, # e.g. "daily", "weekly"
"claimable_now": bool,
"next_claimable_at": String, # ISO date, or null
"payload_keys": Array
}Получение
Получите по ключу и слушайте reward_claimed. Защищено от двойных кликов: награда никогда не выдаётся дважды.
Gamdato.reward_claimed.connect(_on_claim)
func _on_claim(ok: bool, key: String, _data: Dictionary, error: String) -> void:
if ok: print("Reward %s claimed!" % key)
else: print("Not available: %s" % error)# reward_claimed(success: bool, reward_key: String, payload: Dictionary, error: String)
# payload = the reward content you defined in the panel, e.g.:
{ "coins": 100, "skin": "gold" }
# on failure, error explains why: "cooldown", "already_claimed_period", ...