373 lines
9.4 KiB
Markdown
373 lines
9.4 KiB
Markdown
|
|
# 功能更新 - 任务状态诊断
|
|||
|
|
|
|||
|
|
## 📅 更新日期
|
|||
|
|
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. 运行一键补差
|
|||
|
|
|
|||
|
|
在批量任务面板中:
|
|||
|
|
1. 勾选"一键补差"任务
|
|||
|
|
2. 点击"开始执行"
|
|||
|
|
3. 打开浏览器控制台(F12)
|
|||
|
|
|
|||
|
|
### 2. 查看控制台输出
|
|||
|
|
|
|||
|
|
在控制台中,你会看到:
|
|||
|
|
- 📊 **执行前任务状态**:显示当前哪些任务已完成
|
|||
|
|
- 📋 **子任务执行过程**:一键补差的所有操作
|
|||
|
|
- 📊 **执行后任务状态**:显示执行后哪些任务已完成
|
|||
|
|
- 📋 **任务状态对比分析**:对比前后变化
|
|||
|
|
|
|||
|
|
### 3. 分析结果
|
|||
|
|
|
|||
|
|
根据输出结果,你可以:
|
|||
|
|
|
|||
|
|
#### 情况A:某个任务执行前后都是"未完成"
|
|||
|
|
|
|||
|
|
**示例**:`任务1: 未完成 (无变化) ❌ 未完成`
|
|||
|
|
|
|||
|
|
**可能原因**:
|
|||
|
|
- ✅ 一键补差中**没有执行**对应任务1的操作
|
|||
|
|
- ✅ 或者执行了,但任务要求还未达到
|
|||
|
|
|
|||
|
|
**排查方法**:
|
|||
|
|
1. 查看游戏内任务1是什么任务
|
|||
|
|
2. 检查一键补差的子任务列表中是否包含该任务
|
|||
|
|
3. 如果缺失,需要补充相应的操作
|
|||
|
|
|
|||
|
|
#### 情况B:某个任务从"未完成"变为"已完成"
|
|||
|
|
|
|||
|
|
**示例**:`任务3: 未完成 → 已完成 ✅ 已完成`
|
|||
|
|
|
|||
|
|
**说明**:
|
|||
|
|
- ✅ 一键补差成功完成了该任务
|
|||
|
|
- ✅ 这是正常的、期望的结果
|
|||
|
|
|
|||
|
|
#### 情况C:某个任务执行前已经是"已完成"
|
|||
|
|
|
|||
|
|
**示例**:`任务2: 已完成 (无变化) ✅ 已完成`
|
|||
|
|
|
|||
|
|
**说明**:
|
|||
|
|
- ✅ 该任务在执行前就已经完成了
|
|||
|
|
- ✅ 可能是今天早些时候完成的
|
|||
|
|
- ✅ 这是正常现象
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 🎯 诊断任务奖励领取失败问题
|
|||
|
|
|
|||
|
|
### 问题:为什么"领取任务奖励1"失败?
|
|||
|
|
|
|||
|
|
**诊断步骤**:
|
|||
|
|
|
|||
|
|
1. **运行一键补差,查看任务1的状态**
|
|||
|
|
|
|||
|
|
如果输出显示:
|
|||
|
|
```
|
|||
|
|
任务1: 未完成 (无变化) ❌ 未完成
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
**结论**:任务1没有被完成,所以无法领取任务奖励1。
|
|||
|
|
|
|||
|
|
2. **查看游戏内任务1是什么**
|
|||
|
|
|
|||
|
|
- 打开游戏的"每日任务"界面
|
|||
|
|
- 查看第1个任务的名称和要求
|
|||
|
|
|
|||
|
|
比如可能是:
|
|||
|
|
- "登录游戏"
|
|||
|
|
- "完成新手引导"
|
|||
|
|
- "参与任意战斗"
|
|||
|
|
- 或其他任务
|
|||
|
|
|
|||
|
|
3. **检查一键补差是否包含该任务**
|
|||
|
|
|
|||
|
|
对比游戏内任务1的要求和一键补差的子任务列表:
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
📋 一键补差包含以下子任务:
|
|||
|
|
1. 分享游戏
|
|||
|
|
2. 赠送好友金币
|
|||
|
|
3. 免费招募
|
|||
|
|
4. 付费招募
|
|||
|
|
5. 免费点金 1/3, 2/3, 3/3
|
|||
|
|
6. 开启木质宝箱×10
|
|||
|
|
7. 福利签到
|
|||
|
|
... (更多任务)
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
如果任务1对应的操作不在列表中,就找到了问题根源。
|
|||
|
|
|
|||
|
|
4. **补充缺失的任务**
|
|||
|
|
|
|||
|
|
根据任务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. 查看游戏内任务1和任务5分别是什么
|
|||
|
|
2. 检查一键补差是否包含对应的操作
|
|||
|
|
3. 如果缺失,添加相应的操作
|
|||
|
|
|
|||
|
|
**可能的情况**:
|
|||
|
|
- 任务1可能是"参与竞技场",但一键补差中可能没有竞技场操作
|
|||
|
|
- 任务5可能是"领取挂机奖励",但一键补差中可能没有这个操作
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 🛠️ 技术实现
|
|||
|
|
|
|||
|
|
### 代码位置
|
|||
|
|
|
|||
|
|
**文件**: `src/stores/batchTaskStore.js`
|
|||
|
|
**函数**: `executeTask` → `case 'dailyFix'`
|
|||
|
|
|
|||
|
|
### 实现逻辑
|
|||
|
|
|
|||
|
|
```javascript
|
|||
|
|
// 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`):
|
|||
|
|
```json
|
|||
|
|
{
|
|||
|
|
"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秒延迟,但在极端情况下(网络很差),服务器状态更新可能仍需要更多时间。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 📝 反馈与改进
|
|||
|
|
|
|||
|
|
### 使用本功能后,请反馈以下信息:
|
|||
|
|
|
|||
|
|
1. **任务ID对应表**:
|
|||
|
|
- 任务1 = ?
|
|||
|
|
- 任务2 = 分享游戏
|
|||
|
|
- 任务3 = 赠送好友金币
|
|||
|
|
- ...(请补充完整)
|
|||
|
|
|
|||
|
|
2. **未完成的任务**:
|
|||
|
|
- 哪些任务执行前后都是"未完成"
|
|||
|
|
- 这些任务在游戏内的具体要求是什么
|
|||
|
|
|
|||
|
|
3. **问题任务**:
|
|||
|
|
- "领取任务奖励X"失败的原因是什么
|
|||
|
|
- 对应的任务X在游戏内是什么
|
|||
|
|
|
|||
|
|
有了这些信息,我们就可以精准修复一键补差,确保所有任务都能正确完成!
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
**更新版本**: v3.3.0
|
|||
|
|
**更新日期**: 2025-10-07
|
|||
|
|
**更新文件**: `src/stores/batchTaskStore.js`
|
|||
|
|
**更新状态**: ✅ 已完成并可用
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|