Sistemas de jogo

Missões no jogo: tarefas diárias e recompensas

Como 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.

As missões são um sistema de tarefas pronto: missões diárias, semanais e únicas com recompensas, uma trilha de pontos com baús e um bônus por concluir um grupo de tarefas. As missões fazem parte de todo projeto novo. O servidor conta o progresso e as recompensas; o jogo só informa o que o jogador fez e mostra o resultado.

O que o jogador vê

  • Ciclos em abas: diárias, semanais, conquistas, com o tempo até o próximo ciclo.
  • Barras de progresso em cada tarefa e uma janela de detalhes com todos os objetivos.
  • Um botão "Pegar tudo" para as tarefas concluídas.
  • Uma trilha de pontos com baús que abrem conforme os pontos se acumulam.
  • Um selo na aba quando há tarefas concluídas à espera.
Missões
12 450
320
Diárias2
Semanal
Conquistas
Novas missões em 08:12:44
Pontos de missão: 45
20
40
60
80
100
Derrotar 20 monstros
20/20
+10
Pegar
Vencer 3 fases
3/3
+10
Pegar
Melhorar o herói 10 vezes
7/10
+15
Pegar
Comprar qualquer coisa na loja
0/1
+20
Pegar
Pegar tudo
Os ciclos são abas, com o tempo até o próximo ciclo.
A trilha de pontos: missões concluídas somam pontos e baús abrem pelo caminho.
Uma missão concluída espera o “Pegar”; as outras mostram o progresso.
“Pegar tudo” recolhe todas as missões concluídas com um toque.
Exemplo. A tela de missões: ciclos, a trilha de pontos com baús e a lista de missões.

Como as missões são montadas

  • Ciclo: um conjunto de tarefas com cronograma: diário, semanal, permanente ou um evento temporário. Um ciclo pode correr em fases, uma após a outra, por exemplo uma temporada de oito semanas, cada semana com suas tarefas e sua trilha de pontos.
  • Missão: um ou mais objetivos, cada um com seu contador ("derrotar 20 monstros"), e uma recompensa. Uma missão pode exigir que outra seja concluída antes: é assim que se montam sequências.

Há três tipos de recompensa, e todos funcionam ao mesmo tempo:

  1. Recompensa da missão: quando todos os objetivos são cumpridos.
  2. Baús na trilha de pontos: uma missão recolhida soma pontos do ciclo, e um baú abre no total necessário.
  3. Bônus de grupo: quando um número definido de missões de um grupo é concluído.

De onde vem o progresso

FonteExemploO que você precisa fazer
O jogo informaUm monstro derrotado, uma fase vencidaUma linha de código onde isso acontece
O servidor contaUma compra na loja, outra missão recolhidaNada, só escolher o evento
Um script no servidorSua própria regra no cloud codeUma chamada a partir do script

Passo 01Crie um ciclo

Abra o painel, escolha seu projeto e vá em Operações ao vivo → v2 → Missão. Na aba Ciclos, crie um ciclo, por exemplo diário, e adicione uma trilha de pontos com baús se quiser.

Passo 02Adicione tarefas

Na aba Missões, crie uma missão: nome, ciclo, objetivos e recompensa. Para cada objetivo, escolha de onde vem o progresso. Se for o jogo que conta, escolha um nome de contador, por exemplo monsters_defeated.

O botão IA da página abre um assistente: "Crie três missões diárias: por vitórias, por compras na loja e por melhorias de herói". Ele propõe as mudanças, e você revisa e aperta Salvar.

Passo 03Ensine o jogo a informar o progresso

Para os objetivos que o jogo conta, peça ao programador de IA: "Conte monsters_defeated toda vez que um monstro for derrotado". Ele coloca a chamada no lugar certo do código. O modelo de RPG idle já informa as fases vencidas e as melhorias de herói.

Para desenvolvedores

As missões funcionam por meio de client.quest no @idosgames/core. O progresso é enviado pelo nome do contador, não por missão: o servidor o repassa a todas as tarefas ativas que escutam aquele contador.

TypeScript
// Onde acontece: um monstro foi derrotado
await client.quest.addQuestProgress('monsters_defeated', 1)

// A tela de missões: o progresso do jogador; os ciclos avançam sozinhos
const state = await client.quest.getUserQuestState()

// Recolher a recompensa de uma missão concluída
const claim = await client.quest.claimQuestReward('daily_win_20', 'daily')
if (!claim.ok) return showError(claim.error)
  • addQuestProgress só move objetivos cuja fonte é o jogo. Objetivos que o servidor conta sozinho são recusados.
  • Nunca envie um valor "por garantia": se um objetivo tem um máximo por chamada, ultrapassá-lo bane a conta do jogador.
  • As recompensas concedidas já são aplicadas aos saldos no cache do SDK; não é preciso recarregá-los.

Todos os campos estão descritos na habilidade quest-system, servida pelo servidor MCP do SDK.

Perguntas frequentes

Preciso adicionar missões ao meu projeto?

Não. As missões fazem parte de todo projeto novo. A aba de missões aparece para os jogadores assim que pelo menos uma missão é configurada no painel.

Como o jogo sabe que uma tarefa foi concluída?

O servidor conta o progresso. Algumas tarefas ele conta sozinho (compras, outras missões); sobre ações dentro do jogo, como derrotar um monstro, o jogo avisa o servidor com uma linha de código.

Posso fazer um passe de batalha?

A trilha de pontos de um ciclo oferece uma mecânica parecida. Cada missão recolhida soma pontos, e a trilha tem baús que abrem quando o jogador chega aos pontos necessários.

Veja também

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.