游戏系统

游戏内任务:每日任务和奖励

iDos Games 现成任务系统的运作方式:每日、每周和一次性任务,带宝箱的积分进度条,以及一组任务的额外奖励,还有如何在后台中设置。

任务是一个现成的任务系统:带奖励的每日、每周和一次性任务,带宝箱的积分进度条,以及完成一组任务的额外奖励。 任务是每个新项目的一部分。进度和奖励由服务器计算;游戏只需上报玩家做了什么并显示结果。

玩家看到什么

  • 以标签页呈现的周期:每日、每周、成就,并显示到下一个周期的计时。
  • 每个任务上的进度条,以及显示全部目标的详情弹窗。
  • 用于已完成任务的**“全部领取”按钮**。
  • 积分进度条,宝箱随积分累积而开启。
  • 有已完成任务待领取时,标签页上的徽标。
任务
12 450
320
每日2
每周
成就
新任务 08:12:44 后刷新
任务积分: 45
20
40
60
80
100
击败 20 个怪物
20/20
+10
领取
通关 3 个关卡
3/3
+10
领取
升级英雄 10 次
7/10
+15
领取
在商店购买任意物品
0/1
+20
领取
全部领取
周期以标签页显示,并带有到下个周期的计时。
积分进度条:领取任务会增加积分,沿途开启宝箱。
已完成的任务等待“领取”;其余任务显示进度。
“全部领取”一键领取所有已完成任务。
示例. 任务界面:周期、带宝箱的积分进度条和任务列表。

任务的结构

  • 周期:一组按计划进行的任务:每日、每周、常驻或限时活动。周期可以按阶段依次进行,例如一个八周的赛季,每周都有自己的任务和积分进度条。
  • 任务:一个或多个目标,每个目标有自己的计数器(“击败 20 个怪物”),以及一份奖励。任务可以要求先完成另一个任务:任务链就是这样构建的。

奖励有三种,并且同时生效:

  1. 任务奖励:所有目标完成时发放。
  2. 积分进度条上的宝箱:领取任务会增加周期积分,达到所需总数时开启宝箱。
  3. 分组奖励:同一组中完成了设定数量的任务时发放。

进度从哪里来

来源示例你需要做什么
游戏上报击败了一个怪物、通过了一个关卡在发生的位置加一行代码
服务器统计在商店购买、领取了另一个任务什么都不用做,只需选择事件
服务器脚本你在云代码中的自定义规则从脚本中调用

步骤 01创建周期

打开后台,选择你的项目,进入 实时运营 → v2 → 任务。在周期标签页创建一个周期,例如每日周期,如果需要,再添加一条带宝箱的积分进度条。

步骤 02添加任务

在任务标签页创建任务:名称、周期、目标和奖励。为每个目标选择进度来源。如果由游戏统计,就选择一个计数器名称,例如 monsters_defeated。

页面上的 AI 按钮会打开助手:“做三个每日任务:胜利、商店购买和英雄升级”。它会提出修改,你检查后点击保存。

步骤 03让游戏上报进度

对于由游戏统计的目标,告诉 AI 编程助手:“每击败一个怪物就统计一次 monsters_defeated”。它会在代码的正确位置加上调用。放置 RPG 模板已经会上报通关的关卡和英雄升级。

开发者须知

任务通过 @idosgames/core 中的 client.quest 工作。进度按计数器名称而不是按任务发送:服务器会把它交给所有监听该计数器的进行中任务。

TypeScript
// 在发生的位置:击败了一个怪物
await client.quest.addQuestProgress('monsters_defeated', 1)

// 任务界面:玩家的进度;周期会自动向前滚动
const state = await client.quest.getUserQuestState()

// 领取已完成任务的奖励
const claim = await client.quest.claimQuestReward('daily_win_20', 'daily')
if (!claim.ok) return showError(claim.error)
  • addQuestProgress 只推进来源为游戏的目标。服务器自己统计的目标会被拒绝。
  • 永远不要“保险起见”多发数值:如果目标有单次调用上限,超出会导致玩家账号被封禁。
  • 发放的奖励已经应用到 SDK 缓存中的余额,不需要重新加载。

每个字段都在技能 quest-system 中有说明,由 SDK 的 MCP 服务器提供。

常见问题

需要把任务加入我的项目吗?

不需要。任务是每个新项目的一部分。只要在后台中设置了至少一个任务,任务标签页就会对玩家显示。

游戏怎么知道任务完成了?

进度由服务器计算。有些任务服务器自己统计(购买、其他任务),而对于游戏内的行为,例如击败一个怪物,游戏用一行代码告诉服务器。

可以做战斗通行证吗?

周期的积分进度条提供类似的机制。每领取一个任务就增加积分,进度条上的宝箱会在玩家达到所需积分时开启。

另请参阅

制作你自己的游戏

用一句话描述你的想法,AI 编程助手会把它做出来,并以独立链接上线。