Godot 4 · GDScript
Recompensas
Recompensas reclamables (diarias, semanales, por evento). Las defines en tu panel y el jugador las reclama desde el juego.
Consultar Estado
Consulta que recompensas hay y cuales puede reclamar ahora:
Gamdato.rewards_status_loaded.connect(_on_rewards)
Gamdato.get_rewards_status()
func _on_rewards(recompensas: Array, _server_now: String) -> void:
for r in recompensas:
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
}Reclamar
Reclama por clave y escucha reward_claimed. Es seguro ante doble-clic: no otorga dos veces.
Gamdato.reward_claimed.connect(_on_claim)
func _on_claim(ok: bool, clave: String, _datos: Dictionary, error: String) -> void:
if ok: print("Recompensa %s reclamada!" % clave)
else: print("No disponible: %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", ...