Godot 4 · GDScript
Recompensas
Recompensas resgatáveis (diárias, semanais, por evento). Você as define no seu painel e o jogador as resgata a partir do jogo.
Verificar Status
Verifique quais recompensas existem e quais podem ser resgatadas agora:
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
}Resgatando
Resgate pela chave e escute reward_claimed. Seguro contra cliques duplos: nunca concede duas vezes.
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", ...