9.4 KiB
功能更新 - 任务状态诊断
📅 更新日期
2025年10月7日
🎯 更新内容
在批量自动化的"一键补差"中,添加了任务完成状态诊断功能,可以自动对比执行前后的任务状态,帮助诊断任务完成问题。
✨ 新增功能
1. 执行前状态获取
在一键补差开始执行前,自动获取当前角色的每日任务完成状态。
控制台输出示例:
🔍 正在获取执行前的任务完成状态...
📊 执行前任务状态: {
"1": 0,
"2": -1,
"3": 0,
"4": -1,
"5": 0,
"6": 0,
"7": 0,
"8": 0,
"9": 0,
"10": 0,
"11": 0,
"12": 0,
"13": 0,
"14": 0
}
状态值说明:
- -1: 任务已完成
- 0: 任务未完成
- 其他数字: 任务进行中(表示进度值)
2. 执行后状态获取
在一键补差全部执行完成后,再次获取任务完成状态。
控制台输出示例:
🔍 正在获取执行后的任务完成状态...
📊 执行后任务状态: {
"1": 0,
"2": -1,
"3": -1,
"4": -1,
"5": 0,
"6": -1,
"7": -1,
"8": 0,
"9": 0,
"10": 0,
"11": 0,
"12": -1,
"13": -1,
"14": -1
}
3. 任务状态对比分析
自动对比执行前后的状态变化,清晰显示哪些任务被完成了。
控制台输出示例:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📋 每日任务完成状态对比分析
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
任务1: 未完成 (无变化) ❌ 未完成
任务2: 已完成 (无变化) ✅ 已完成
任务3: 未完成 → 已完成 ✅ 已完成
任务4: 已完成 (无变化) ✅ 已完成
任务5: 未完成 (无变化) ❌ 未完成
任务6: 未完成 → 已完成 ✅ 已完成
任务7: 未完成 → 已完成 ✅ 已完成
任务8: 未完成 (无变化) ❌ 未完成
任务9: 未完成 (无变化) ❌ 未完成
任务10: 未完成 (无变化) ❌ 未完成
任务11: 未完成 (无变化) ❌ 未完成
任务12: 未完成 → 已完成 ✅ 已完成
任务13: 未完成 → 已完成 ✅ 已完成
任务14: 未完成 → 已完成 ✅ 已完成
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📊 统计: 已完成 8/14,本次改变 6 个任务
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🔍 如何使用
1. 运行一键补差
在批量任务面板中:
- 勾选"一键补差"任务
- 点击"开始执行"
- 打开浏览器控制台(F12)
2. 查看控制台输出
在控制台中,你会看到:
- 📊 执行前任务状态:显示当前哪些任务已完成
- 📋 子任务执行过程:一键补差的所有操作
- 📊 执行后任务状态:显示执行后哪些任务已完成
- 📋 任务状态对比分析:对比前后变化
3. 分析结果
根据输出结果,你可以:
情况A:某个任务执行前后都是"未完成"
示例:任务1: 未完成 (无变化) ❌ 未完成
可能原因:
- ✅ 一键补差中没有执行对应任务1的操作
- ✅ 或者执行了,但任务要求还未达到
排查方法:
- 查看游戏内任务1是什么任务
- 检查一键补差的子任务列表中是否包含该任务
- 如果缺失,需要补充相应的操作
情况B:某个任务从"未完成"变为"已完成"
示例:任务3: 未完成 → 已完成 ✅ 已完成
说明:
- ✅ 一键补差成功完成了该任务
- ✅ 这是正常的、期望的结果
情况C:某个任务执行前已经是"已完成"
示例:任务2: 已完成 (无变化) ✅ 已完成
说明:
- ✅ 该任务在执行前就已经完成了
- ✅ 可能是今天早些时候完成的
- ✅ 这是正常现象
🎯 诊断任务奖励领取失败问题
问题:为什么"领取任务奖励1"失败?
诊断步骤:
-
运行一键补差,查看任务1的状态
如果输出显示:
任务1: 未完成 (无变化) ❌ 未完成结论:任务1没有被完成,所以无法领取任务奖励1。
-
查看游戏内任务1是什么
- 打开游戏的"每日任务"界面
- 查看第1个任务的名称和要求
比如可能是:
- "登录游戏"
- "完成新手引导"
- "参与任意战斗"
- 或其他任务
-
检查一键补差是否包含该任务
对比游戏内任务1的要求和一键补差的子任务列表:
📋 一键补差包含以下子任务: 1. 分享游戏 2. 赠送好友金币 3. 免费招募 4. 付费招募 5. 免费点金 1/3, 2/3, 3/3 6. 开启木质宝箱×10 7. 福利签到 ... (更多任务)如果任务1对应的操作不在列表中,就找到了问题根源。
-
补充缺失的任务
根据任务1的具体要求,在一键补差中添加相应的操作。
📊 完整示例解读
示例场景
假设控制台输出如下:
📊 执行前任务状态: {
"1": 0,
"2": 0,
"3": 0,
"4": 0,
"5": 0,
"6": 0,
"7": 0,
"12": 0,
"13": 0,
"14": 0
}
... (一键补差执行过程) ...
📊 执行后任务状态: {
"1": 0,
"2": -1,
"3": -1,
"4": -1,
"5": 0,
"6": -1,
"7": -1,
"12": -1,
"13": -1,
"14": -1
}
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📋 每日任务完成状态对比分析
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
任务1: 未完成 (无变化) ❌ 未完成
任务2: 未完成 → 已完成 ✅ 已完成
任务3: 未完成 → 已完成 ✅ 已完成
任务4: 未完成 → 已完成 ✅ 已完成
任务5: 未完成 (无变化) ❌ 未完成
任务6: 未完成 → 已完成 ✅ 已完成
任务7: 未完成 → 已完成 ✅ 已完成
任务12: 未完成 → 已完成 ✅ 已完成
任务13: 未完成 → 已完成 ✅ 已完成
任务14: 未完成 → 已完成 ✅ 已完成
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📊 统计: 已完成 8/10,本次改变 8 个任务
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
解读分析
✅ 成功完成的任务:2, 3, 4, 6, 7, 12, 13, 14(共8个)
❌ 未完成的任务:
- 任务1:执行前后都是未完成 → 需要补充相应操作
- 任务5:执行前后都是未完成 → 需要补充相应操作
问题定位:
- 查看游戏内任务1和任务5分别是什么
- 检查一键补差是否包含对应的操作
- 如果缺失,添加相应的操作
可能的情况:
- 任务1可能是"参与竞技场",但一键补差中可能没有竞技场操作
- 任务5可能是"领取挂机奖励",但一键补差中可能没有这个操作
🛠️ 技术实现
代码位置
文件: src/stores/batchTaskStore.js
函数: executeTask → case 'dailyFix'
实现逻辑
// 1. 执行前获取任务状态
const beforeRoleInfo = await client.sendWithPromise('role_getroleinfo', {}, 1000)
const beforeTaskStatus = beforeRoleInfo?.role?.dailyTask?.complete || {}
// 2. 执行一键补差的所有操作
// ... (所有子任务) ...
// 3. 执行后获取任务状态
const afterRoleInfo = await client.sendWithPromise('role_getroleinfo', {}, 1000)
const afterTaskStatus = afterRoleInfo?.role?.dailyTask?.complete || {}
// 4. 对比分析
for (const taskId of allTaskIds) {
const before = beforeTaskStatus[taskId] || 0
const after = afterTaskStatus[taskId] || 0
const changed = before !== after
console.log(`任务${taskId}: ${before} → ${after} (${changed ? '已改变' : '无变化'})`)
}
数据结构
任务完成状态(role.dailyTask.complete):
{
"1": 0, // 未完成
"2": -1, // 已完成
"3": 0, // 未完成
"4": -1, // 已完成
"5": 5, // 进行中(进度值)
...
}
⚠️ 注意事项
1. 任务ID可能不连续
游戏内的任务ID可能不是连续的(比如1, 2, 3, 4, 5, 6, 7, 12, 13, 14),这是正常的。
2. 任务数量可能变化
不同版本的游戏可能有不同数量的每日任务,诊断功能会自动适应。
3. 任务要求可能复杂
有些任务可能需要多个操作才能完成,比如:
- "参与3次竞技场" 需要打3场竞技场
- "开启10个宝箱" 需要有足够的宝箱
4. 状态更新可能有延迟
虽然我们已经添加了1秒延迟,但在极端情况下(网络很差),服务器状态更新可能仍需要更多时间。
📝 反馈与改进
使用本功能后,请反馈以下信息:
-
任务ID对应表:
- 任务1 = ?
- 任务2 = 分享游戏
- 任务3 = 赠送好友金币
- ...(请补充完整)
-
未完成的任务:
- 哪些任务执行前后都是"未完成"
- 这些任务在游戏内的具体要求是什么
-
问题任务:
- "领取任务奖励X"失败的原因是什么
- 对应的任务X在游戏内是什么
有了这些信息,我们就可以精准修复一键补差,确保所有任务都能正确完成!
更新版本: v3.3.0
更新日期: 2025-10-07
更新文件: src/stores/batchTaskStore.js
更新状态: ✅ 已完成并可用