Files
tcg-client/Assets/TcgEngine/Docs/TaskSystemUserGuide.md
2025-09-02 16:58:21 +08:00

101 lines
2.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 任务系统使用说明
## 概述
任务系统为玩家提供游戏目标和奖励机制。系统每天为玩家分配一个随机任务,玩家完成任务后可获得奖励。
## 系统架构
任务系统由以下几个核心组件构成:
1. **TaskData**: 任务配置数据结构
2. **TaskManager**: 任务管理器,负责任务逻辑处理
3. **GameClientTaskIntegration**: 游戏客户端集成组件
4. **API接口**: 与服务器通信的接口
## 功能特性
### 1. 任务分配
- 每日0点为每个玩家随机分配一个任务
- 玩家最多同时持有5个任务
- 任务过期时间为24小时
### 2. 任务类型
系统支持以下6种任务类型
1. 登录任务
2. 对战任务
3. 胜利任务
4. 击败特定阵营英雄任务
5. 召唤特定阵营英雄任务
6. 使用特定阵营英雄技能任务
### 3. 任务状态
任务具有以下4种状态
1. **Active**: 激活状态,玩家正在进行中
2. **Completed**: 完成状态,条件已满足但奖励未领取
3. **Expired**: 过期状态,任务已超时
4. **Claimed**: 已领取,奖励已发放
### 4. 奖励机制
当前版本仅支持金币奖励,未来可扩展支持:
- 卡牌包
- 稀有卡牌
- 经验值
- 其他游戏内物品
## 集成指南
### 1. 客户端集成
在游戏客户端中,通过以下方式集成任务系统:
```csharp
// 在游戏启动时初始化任务系统
TaskManager taskManager = TaskManager.Instance;
taskManager.OnPlayerLogin(); // 玩家登录时检查任务
// 在游戏过程中自动追踪任务进度
// 系统会自动监听游戏事件并更新任务进度
```
### 2. 服务器集成
服务器需要提供以下API接口
1. `GET /tasks` - 获取所有任务配置
2. `GET /users/{userId}/tasks` - 获取玩家任务数据
3. `POST /users/{userId}/tasks` - 保存玩家任务数据
## 扩展开发
### 添加新的任务类型
1.`TaskConditionType`枚举中添加新的任务类型
2.`TaskManager.UpdateTaskProgress`方法中添加相应的条件判断
3. 在服务器端添加对应的任务处理逻辑
### 添加新的奖励类型
1.`TaskRewardType`枚举中添加新的奖励类型
2.`TaskManager.GiveReward`方法中添加奖励发放逻辑
3. 在服务器端添加对应的奖励处理逻辑
## 最佳实践
### 性能优化
1. 使用本地缓存减少API调用频率
2. 对任务数据进行批处理更新
3. 实现合理的错误重试机制
### 用户体验
1. 及时通知玩家任务完成状态
2. 提供清晰的任务进度显示
3. 确保奖励发放的可靠性
## 故障排除
### 常见问题
1. **任务无法加载**: 检查网络连接和API接口状态
2. **任务进度不更新**: 检查事件监听是否正常注册
3. **奖励未发放**: 检查奖励发放逻辑和用户数据同步
### 调试建议
1. 使用日志输出追踪任务状态变化
2. 验证API响应数据的正确性
3. 检查时间戳和过期逻辑