15 KiB
15 KiB
功能更新 - 任务状态跟踪 v3.1.0
📅 更新日期
2025年10月7日
🎯 更新概述
本次更新为"一键补差"功能添加了任务状态持久化和智能跳过机制,有效避免了资源消耗型任务(如付费招募、开宝箱、黑市购买)的重复执行,防止资源浪费。
✨ 新增功能
1. 任务状态持久化
功能描述:
- 系统自动记录每个角色的每日任务完成状态
- 数据存储在浏览器本地,不会丢失
- 每天0点自动重置,符合游戏每日任务机制
包含的任务状态信息:
- 任务是否完成
- 完成时间
- 执行成功/失败状态
- 错误信息(如果失败)
2. 智能跳过机制
功能描述: 自动识别并跳过已完成的资源消耗型任务,避免重复执行造成资源浪费。
会被跳过的任务(消耗资源型):
| 任务名称 | 说明 | 资源消耗 |
|---|---|---|
| 付费招募 | 使用金币招募英雄 | 消耗金币 |
| 免费点金 1/3, 2/3, 3/3 | 使用免费次数点金(每天3次) | 消耗每日免费次数 |
| 开启木质宝箱×10 | 打开10个木质宝箱 | 消耗宝箱道具 |
| 免费钓鱼 1/3, 2/3, 3/3 | 使用免费次数钓鱼(每天3次) | 消耗每日免费次数 |
| 黑市一键采购 | 购买黑市商品 | 消耗金币 |
| 竞技场战斗 1/3, 2/3, 3/3 | 进行竞技场战斗(每天3次) | 消耗每日免费次数 |
跳过逻辑:
- ✅ 如果任务已成功完成,下次执行时自动跳过
- ✅ 跳过的任务会在执行日志中标记为"已完成,跳过执行"
- ✅ 其他任务不受影响,每次都会正常执行
示例日志:
⏭️ 跳过已完成的任务: 付费招募
⏭️ 跳过已完成的任务: 免费点金 1/3
⏭️ 跳过已完成的任务: 免费点金 2/3
⏭️ 跳过已完成的任务: 免费点金 3/3
⏭️ 跳过已完成的任务: 开启木质宝箱×10
⏭️ 跳过已完成的任务: 免费钓鱼 1/3
⏭️ 跳过已完成的任务: 免费钓鱼 2/3
⏭️ 跳过已完成的任务: 免费钓鱼 3/3
⏭️ 跳过已完成的任务: 黑市一键采购
⏭️ 跳过已完成的任务: 竞技场战斗 1/3
⏭️ 跳过已完成的任务: 竞技场战斗 2/3
⏭️ 跳过已完成的任务: 竞技场战斗 3/3
3. 子任务详情查看
功能描述: 在批量任务执行进度中,每个角色卡片新增"子任务"按钮,可以查看一键补差的详细任务列表和执行状态。
如何使用:
- 在批量任务面板中,找到任意角色的进度卡片
- 点击右上角的"子任务"按钮
- 打开子任务详情弹窗
子任务详情弹窗包含:
统计信息
- 总计任务数:约46个子任务
- 已完成:成功完成的任务数量
- 失败:执行失败的任务数量
- 待执行:未执行的任务数量
任务列表
每个任务显示:
- ✅/❌/⏳ 状态图标(成功/失败/未执行)
- 任务名称
- 消耗资源标记(如果适用)
- 完成状态标签
- 完成时间(如果已完成)
- 错误信息(如果失败)
示例:
✅ 付费招募 [消耗资源] [已完成]
完成时间: 2025-10-07 08:30:25
✅ 免费点金 1/3 [消耗资源] [已完成]
完成时间: 2025-10-07 08:30:26
✅ 免费点金 2/3 [消耗资源] [已完成]
完成时间: 2025-10-07 08:30:27
✅ 开启木质宝箱×10 [消耗资源] [已完成]
完成时间: 2025-10-07 08:30:28
✅ 免费钓鱼 1/3 [消耗资源] [已完成]
完成时间: 2025-10-07 08:30:35
❌ 黑市一键采购 [消耗资源] [失败]
错误: 金币不足
✅ 竞技场战斗 1/3 [消耗资源] [已完成]
完成时间: 2025-10-07 08:30:45
⏳ 免费招募 [未执行]
4. 手动重置功能
功能描述: 支持手动重置某个角色的所有任务状态,方便用户在需要时重新执行。
如何使用:
- 打开子任务详情弹窗
- 点击右上角的"重置所有"按钮
- 所有任务状态立即清空,下次运行时会重新执行
使用场景:
- 需要重新执行付费招募/开宝箱等任务
- 测试任务执行流程
- 任务状态出现异常需要重置
📊 技术实现
1. 新增文件
src/stores/dailyTaskState.js
- 任务状态持久化Store
- 管理所有角色的任务状态
- 提供状态查询、更新、重置等方法
关键方法:
// 检查任务是否已完成
isTaskCompleted(tokenId, taskId)
// 标记任务为已完成
markTaskCompleted(tokenId, taskId, success, error)
// 获取需要跳过的任务列表
getTasksToSkip(tokenId)
// 获取任务详情列表(用于UI展示)
getDetailedTaskList(tokenId)
// 重置任务状态
resetTokenTasks(tokenId)
2. 修改文件
src/stores/batchTaskStore.js
- 新增
executeSubTask辅助函数 - 修改一键补差的执行逻辑
- 添加任务状态检查和跳过逻辑
关键变更:
// 执行子任务并跟踪状态
const executeSubTask = async (tokenId, taskId, taskName, executor, consumesResources) => {
// 如果任务消耗资源且已完成,跳过执行
if (consumesResources && dailyTaskStateStore.isTaskCompleted(tokenId, taskId)) {
return { task: taskName, skipped: true, success: true, message: '已完成,跳过执行' }
}
try {
const result = await executor()
dailyTaskStateStore.markTaskCompleted(tokenId, taskId, true, null)
return { task: taskName, success: true, data: result }
} catch (error) {
dailyTaskStateStore.markTaskFailed(tokenId, taskId, error.message)
return { task: taskName, success: false, error: error.message }
}
}
src/components/TaskProgressCard.vue
- 新增"子任务"按钮
- 新增子任务详情弹窗
- 显示任务状态和统计信息
3. 数据结构
localStorage存储格式:
{
"dailyTaskStates": {
"token_xxx": {
"date": "2025-10-07",
"tasks": {
"paid_recruit": {
"completed": true,
"completedAt": 1696656625000,
"success": true,
"error": null
},
"open_box": {
"completed": true,
"completedAt": 1696656628000,
"success": true,
"error": null
},
"black_market": {
"completed": true,
"completedAt": 1696656630000,
"success": false,
"error": "金币不足"
}
// ... 其他任务
}
}
// ... 其他token
}
}
🎨 用户界面变化
批量任务面板
新增元素:
- 每个角色卡片右上角新增"子任务"按钮
效果图:
┌─────────────────────────────────────┐
│ 🎮 角色A [执行中] [详情] [子任务] │
│ ━━━━━━━━━━━━━━ 60% │
│ 一键补差 (25/46) │
│ ✓ 成功: 20 ✗ 失败: 5 │
└─────────────────────────────────────┘
子任务详情弹窗
标题栏:
- 左侧:角色名称 - 一键补差子任务详情
- 右侧:[重置所有] 按钮
内容区域:
- 统计信息区(顶部)
┌─────────────────────────────────────┐
│ 总计: 46 已完成: 20 失败: 5 待执行: 21 │
└─────────────────────────────────────┘
- 任务列表区(可滚动)
✅ 付费招募 [消耗资源] [已完成]
完成时间: 2025-10-07 08:30:25
✅ 开启木质宝箱×10 [消耗资源] [已完成]
完成时间: 2025-10-07 08:30:28
⏳ 免费招募 [未执行]
⏳ 免费点金 1/3 [未执行]
... (更多任务)
- 提示信息区(底部)
💡 提示
• 标记为"消耗资源"的任务(付费招募、免费点金、开宝箱、免费钓鱼、黑市购买、竞技场战斗)
完成后,下次运行时会自动跳过
• 任务状态每天0点自动重置,或者可以手动点击"重置所有"按钮重置
• 其他任务每次都会尝试执行,不受已完成状态影响
📖 使用指南
场景1:正常执行一键补差
步骤:
- 在批量任务面板选择"完整套餐"或"仅一键补差"模板
- 点击"开始执行"
- 系统自动执行所有任务,并记录状态
结果:
- 所有任务正常执行
- 付费招募、开宝箱、黑市购买等任务完成后被标记
下次执行:
- 已完成的资源消耗型任务会被自动跳过
- 其他任务正常执行
场景2:查看任务详情
步骤:
- 执行完成后,点击角色卡片的"子任务"按钮
- 查看每个子任务的执行状态
- 查看哪些任务成功、失败或未执行
用途:
- 了解任务执行情况
- 排查失败原因
- 确认哪些任务已完成
场景3:重新执行资源消耗型任务
步骤:
- 点击"子任务"按钮打开详情弹窗
- 点击右上角"重置所有"按钮
- 确认重置
- 重新执行批量任务
结果:
- 所有任务状态清空
- 付费招募、开宝箱等任务会重新执行
- 注意:会消耗相应资源
场景4:多次运行一键补差
情况说明: 有时候可能需要在同一天内多次运行一键补差(例如测试、或者部分任务失败后重试)。
系统行为:
-
第一次运行:所有任务正常执行
- 付费招募 ✅ 成功(消耗金币)
- 免费点金×3 ✅ 成功(消耗免费次数)
- 开宝箱×10 ✅ 成功(消耗宝箱)
- 免费钓鱼×3 ✅ 成功(消耗免费次数)
- 黑市购买 ✅ 成功(消耗金币)
- 竞技场战斗×3 ✅ 成功(消耗免费次数)
-
第二次运行(同一天内):
- 付费招募 ⏭️ 跳过(已完成)
- 免费点金×3 ⏭️ 跳过(已完成)
- 开宝箱×10 ⏭️ 跳过(已完成)
- 免费钓鱼×3 ⏭️ 跳过(已完成)
- 黑市购买 ⏭️ 跳过(已完成)
- 竞技场战斗×3 ⏭️ 跳过(已完成)
- 其他任务 ✅ 正常执行
优势:
- ✅ 避免重复消耗资源
- ✅ 可以安全地多次运行
- ✅ 只有失败的任务会重试
⚠️ 注意事项
1. 任务重置时机
自动重置:
- 每天0点系统自动重置所有任务状态
- 每小时检查一次,清理过期数据
手动重置:
- 点击"重置所有"按钮立即重置
- 重置后下次运行会重新执行所有任务
2. 资源消耗
被标记为"消耗资源"的任务:
- 付费招募:消耗金币
- 免费点金(3次):消耗每日免费次数
- 开启木质宝箱×10:消耗宝箱道具
- 免费钓鱼(3次):消耗每日免费次数
- 黑市一键采购:消耗金币
- 竞技场战斗(3次):消耗每日免费次数
其他任务不消耗重要资源:
- 免费招募:使用免费次数(不限制)
- 领取类任务:纯领取,不消耗资源
- 扫荡类任务:使用免费次数(不限制)
3. 数据存储
存储位置:
- 浏览器localStorage
- 数据不会丢失(除非清除浏览器数据)
数据安全:
- 仅存储在本地,不上传服务器
- 切换浏览器或设备需要重新执行
4. 跳过逻辑
只跳过成功的任务:
- ✅ 成功的资源消耗型任务会被跳过
- ❌ 失败的任务不会被跳过,会重新执行
- ⏳ 未执行的任务正常执行
示例:
第一次运行:
付费招募 ✅ 成功
开宝箱 ❌ 失败(宝箱不足)
黑市购买 ✅ 成功
第二次运行(同一天):
付费招募 ⏭️ 跳过(已成功)
开宝箱 🔄 重新执行(上次失败)
黑市购买 ⏭️ 跳过(已成功)
🔧 故障排除
Q: 任务状态没有保存?
可能原因:
- 浏览器隐私模式或禁用localStorage
- 浏览器数据被清除
解决方法:
- 确保浏览器允许使用localStorage
- 不要在隐私模式下使用
- 避免清除浏览器数据
Q: 任务被错误跳过?
可能原因:
- 任务状态未正确重置
解决方法:
- 打开子任务详情
- 点击"重置所有"按钮
- 重新执行批量任务
Q: 想重新执行已完成的任务?
解决方法:
- 方法1:等到第二天(自动重置)
- 方法2:手动重置任务状态
- 打开子任务详情弹窗
- 点击"重置所有"
- 重新执行
📈 性能影响
存储空间
每个角色:
- 约46个子任务
- 每个任务约100-200字节
- 单个角色约10KB
100个角色总计:
- 约1MB存储空间
- localStorage限制:通常5-10MB
- 结论:存储空间充足,无需担心
执行速度
跳过任务的优势:
- 跳过12个子任务(付费招募1 + 点金3 + 开宝箱1 + 钓鱼3 + 黑市1 + 竞技场3)
- 每个任务平均1秒 + 0.2秒间隔
- 总共节省约 12秒 + 2.4秒(间隔时间) = 14.4秒/角色
100个角色批量执行:
- 节省时间:约1440秒(24分钟)
- 减少网络请求:1200次
- 降低服务器压力:显著
- 性能提升:约20-25%
🎉 总结
主要优势
-
🛡️ 资源保护
- 自动跳过已完成的12个资源消耗型任务
- 避免重复执行造成的资源浪费
- 保护每日免费次数(点金、钓鱼、竞技场)
-
📊 状态可见
- 详细的任务执行状态
- 清晰的成功/失败信息
- 46个子任务的完整跟踪
-
🔄 灵活控制
- 支持手动重置
- 自动每日重置
- 单独控制每个角色
-
⚡ 性能提升
- 减少不必要的网络请求(每角色12次)
- 缩短批量执行时间(每角色节省约14秒)
- 100角色节省24分钟,性能提升20-25%
-
🎯 用户友好
- 直观的UI界面
- 详细的任务详情展示
- 清晰的消耗资源标记
适用场景
✅ 推荐使用:
- 每天多次运行一键补差
- 需要查看任务执行详情
- 想避免资源浪费
✅ 特别适合:
- 管理多个游戏角色
- 需要精细控制任务执行
- 对资源消耗敏感的用户
版本: v3.1.0
更新日期: 2025-10-07
相关文档: