Ideias e funcionalidades do jogo

A tua próxima funcionalidade

Valores do jogador

Moedas, contadores e energia geridos pelo servidor. Defina saldos, ofertas e alterações verificadas por projeto.

SDK: developRequer uma sessão de jogador
Unity
Ilustração de Valores do jogador
O resultado visível

O jogo mostra os saldos e as ofertas configurados. As compras devolvem o estado atual do jogador.

Vídeo em breve

Este passo ainda não tem vídeo. O guia e o pedido MCP já podem ser usados.

Valores do jogador

Preparar o mesmo projeto

  1. Seleciona no painel o mesmo projeto que na configuração do teu jogo.

    Valores do jogador →
  2. Criem ou reutilizem estas entradas de teste no formulário do painel. São valores de exemplo, não dados atuais.

    Valores
    coins: initialBalance=100, maxBalance=1000000; energy: initialBalance=10, maxBalance=100
    Permitir alterações diretas
    false
    Ofertas
    energy-pack: costs=[{"key":"coins","amount":20}], rewards=[{"key":"energy","amount":5}]

    O saldo inicial é atribuído uma única vez por chave. As alterações diretas começam desativadas. Validated Actions mantém os limites por partida; os limites diários e de saldo vêm destas definições. Um limite opcional vazio significa sem limite.

  3. Guardem, recarreguem e verifiquem as entradas antes do exemplo. Preservem as restantes definições.

Integra esta funcionalidade

Podes consultar o guia. Para o executar, precisas de uma chave de projeto ativa. Preparar o projeto

SDK instalado, configuração do projeto importada e jogador com sessão iniciada.

Este exemplo do SDK usa develop. Verifica se as API necessárias existem no SDK instalado.

Concluam a ligação do início rápido com o jogador escolhido. Chamem RunReviewedAction() através de um botão ou ação explícita da cena. Abrir o ficheiro não envia pedidos.

C#
Assets/Scripts/PlayerValuesDemo.cs
Chamada ao horizOn
1using UnityEngine;
2using PM.horizOn.Cloud.Core;
3using PM.horizOn.Cloud.Manager;
4​
5// Existing SDK/project configuration and authenticated player session required.
6// Call RunReviewedAction explicitly after reviewing this example and its data.
7public sealed class PlayerValuesDemo : MonoBehaviour
8{
9 public async void RunReviewedAction()
10 {
11 var sessionUser = UserManager.Instance.CurrentUser;
12 if (sessionUser == null || !sessionUser.IsValid()) return;
13 var userId = UserManager.Instance.CurrentUser.UserId;
14 var current = await PlayerValuesManager.Instance.GetState(userId);
15 if (!current.IsSuccess) { Debug.LogWarning(current.ErrorCode); return; }
16 foreach (var value in current.State.values) Debug.Log(value.key + "=" + value.balance);
17 // This minimal first call reads authoritative balances, never a local reward delta.
18 // For purchases and original retry, import PlayerValuesExample and its
19 // PendingPlayerValuesPurchase helper from the official SDK samples.
20 // Persist the complete original user/offer/operationId before one send.
21 // An uncertain or expired original must never become a fresh purchase ID.
22 }
23}
Abrir o exemplo SDK completo ↗

Testa a tua nova funcionalidade.

O jogo mostra os saldos e as ofertas configurados. As compras devolvem o estado atual do jogador.

Seleciona no painel o mesmo projeto que na configuração do teu jogo.

Endpoints da API
  • GET/player-values
  • GET/player-values/offers
  • POST/player-values/purchase
  • POST/player-values/adjust
Todos os endpoints na referência da API
A nossa sugestão para o próximo passo

Dá uma pontuação máxima a cada partida.

Guarda a pontuação depois de uma partida e mostra quem está à frente. Continua a usar a ligação e a sessão do jogador.