Loja no jogo: vitrines, ofertas e preços
Como funciona a loja pronta do iDos Games: vitrines com ofertas que se revezam, preços em moeda do jogo ou dinheiro de verdade, presentes grátis e limites de compra, e como configurá-la no painel sem código.
A loja é um sistema pronto: a tela de loja do seu jogo mais a lógica de compras no servidor. Você configura vitrines e ofertas no painel, e a cada compra o servidor confere sozinho o preço, os limites e o rodízio. Não dá para falsificar uma compra pelo jogo, e a loja não precisa de servidor próprio.
O que o jogador vê
- Vitrines em abas. A primeira seção de uma vitrine é um carrossel; as outras são grades de cartões.
- Um presente diário grátis que brilha até ser recolhido.
- Contadores nos cartões: "renova em", "abre em", "esgotado".
- Uma janela de confirmação de compra (um painel inferior no celular).
- A animação "Você ganhou": as recompensas voam até os contadores de saldo.
- Um selo na aba da loja quando há uma oferta grátis à espera.
Como a loja é montada
A loja é uma árvore: vitrine → seções → slots → oferta.
- Oferta: o que é vendido. Preço, recompensas, limites, fitas ("melhor custo", "x2"). As ofertas ficam em um catálogo único.
- Slot: um lugar na prateleira da vitrine. Uma oferta só pode ser comprada por um slot: oferta fora de qualquer slot não é vendida.
- Rodízio: um slot pode mostrar uma oferta de um conjunto e trocá-la por um cronograma, como uma loja diária. O servidor calcula o rodízio, então o jogador vê a mesma loja em qualquer aparelho.
Preços
| O que o jogador paga | Como funciona |
|---|---|
| Moeda do jogo, itens | Descontado do saldo do jogador |
| Dinheiro de verdade | Uma compra na loja de apps; o servidor confere o recibo |
| Assistir a um anúncio | O jogador gasta uma visualização de anúncio que ganhou (versões com anúncios) |
| Nada | Uma oferta grátis; o limite é obrigatório, senão o servidor não vende |
Você pode mostrar um preço "antigo" riscado, e o servidor calcula o percentual de desconto. Uma oferta pode ter várias opções de preço, por exemplo moedas ou gemas.
Limites de compra
- Para sempre: por exemplo, um pacote inicial uma única vez.
- Por dia: zera à meia-noite UTC.
- Intervalo: a próxima compra só depois de um tempo definido.
- Por janela de rodízio: o limite do slot enquanto esta oferta está na prateleira.
O servidor calcula para cada jogador os selos "primeira compra" e "esgotado" e os contadores.
Passo 01Adicione a loja ao seu projeto
O modelo de RPG idle já tem uma loja com uma vitrine de exemplo. Em qualquer outro projeto quem adiciona é o programador de IA: escreva "Adicione uma loja" no chat. Ele instala o sistema pronto em vez de escrever uma loja do zero. A aba da loja aparece para os jogadores quando houver algo para vender.
Passo 02Configure ofertas e uma vitrine
Abra o painel, escolha seu projeto e vá em Operações ao vivo → v2 → Loja.
- Na aba Ofertas, crie uma oferta: nome, preço, o que o jogador recebe e um limite.
- Na aba Vitrines, crie uma vitrine, adicione uma seção e slots e coloque ofertas nos slots.
- Predefinições são configurações compartilhadas que você aplica a muitas ofertas de uma vez.
O painel avisa sobre ofertas sem slot e ofertas grátis sem limite. O botão IA da página abre um assistente: descreva o que vender ("um pacote de 500 moedas por US$ 0,99 e um baú diário grátis"), ele propõe as mudanças, e você revisa e aperta Salvar.
Passo 03Teste e lance
Confira a loja na versão de teste do seu app. As configurações vão para o app ao vivo em uma ação separada, então um lançamento de código nunca as sobrescreve. Mais em publicação e links.
Para desenvolvedores
A loja funciona por meio de client.store no @idosgames/core. Desenhe a tela a partir de getStorefront(): a vitrine
já calculada para este jogador (rodízio, limites, contadores). getDefinitions() é só a configuração, igual para todos.
const res = await client.store.getStorefront()
if (!res.ok) return showError(res.error)
for (const store of res.data.Stores ?? [])
for (const section of store.Sections ?? [])
for (const slot of section.Slots ?? []) {
// Um slot vazio chega com Offer === null: desenhe uma moldura vazia para a prateleira não pular.
if (!slot.Offer) continue
drawCard(slot.Offer, slot.RefreshesAtUtc)
}
const buy = await client.store.purchase(offer.OfferID, 1, {
selectedOptionID: option.OptionID,
slot: { storeID: store.StoreID, sectionID: section.SectionID, slotID: slot.SlotID },
})- Se a compra retornar
OFFER_NOT_IN_ROTATION, a vitrine mudou: recarregue-a sem mostrar erro. - Desative o botão "Comprar" enquanto a requisição estiver em andamento: cada chamada de
purchaseé uma compra separada. - Conte os contadores a partir de
ServerTimeUtcna resposta, não do relógio do aparelho. nullem um limite restante significa "sem limite";0significa "esgotado".
Todos os campos estão descritos na habilidade store-system, servida pelo servidor MCP do SDK.
Perguntas frequentes
Por que uma oferta está no catálogo mas não pode ser comprada?
Uma oferta só é comprada por meio de um slot da vitrine. Se ela não está em nenhum slot, não pode ser comprada. O painel lista essas ofertas sob um aviso separado "Fora de qualquer prateleira".
Posso criar um presente diário grátis?
Sim. Uma oferta sem preço é uma oferta grátis comum, mas precisa ter um limite, por exemplo uma vez por dia. O servidor se recusa a vender uma oferta grátis sem limite.
Preciso verificar as compras no meu próprio servidor?
Não. O servidor do iDos Games confere o preço, os limites e o rodízio em cada compra. O jogo só mostra a vitrine e pede a compra.
Os descontos do premium se aplicam?
Sim. O servidor aplica sozinho os descontos e bônus do nível premium. O jogo lê na resposta da compra o que foi de fato cobrado e entregue.
Veja também
- Missões no jogo: tarefas diárias e recompensasComo funcionam as missões prontas do iDos Games: tarefas diárias, semanais e únicas, uma trilha de pontos com baús e um bônus por um grupo de tarefas, e como configurá-las no painel.
- Ranking no jogo: classificação, rodadas e recompensasComo funciona o ranking pronto do iDos Games: placares com rodadas, recompensas por posição e por pontos, proteção contra pontuações infladas, e como configurá-lo no painel.
- O modelo de RPG idle: herói, ondas e chefesUm modelo pronto de RPG idle no iDos Games: o herói enfrenta sozinho ondas de monstros e chefes, o ouro se acumula mesmo com o jogador fora e os atributos são melhorados com ouro. O que vem dentro e como transformá-lo no seu jogo.
- O que vem em um projeto novoTodo projeto novo no iDos Games começa com login, um lobby e seis sistemas prontos; outros sistemas, como loja, rankings, eventos ou multijogador, entram quando o app precisa deles.
Crie o seu próprio jogo
Descreva a ideia em uma frase: o programador de IA cria o jogo, e ele vai ao ar com um link próprio.