547 lines
11 KiB
Markdown
547 lines
11 KiB
Markdown
# 功能更新 - 爬塔任务 v3.2.0
|
||
|
||
## 📅 更新日期
|
||
2025年10月7日
|
||
|
||
---
|
||
|
||
## 🎯 更新概述
|
||
|
||
在批量自动化任务中新增**爬塔功能**,支持设置爬塔次数(0-100次),并扩展了子任务详情显示,现在可以查看所有批量任务的执行状态。
|
||
|
||
---
|
||
|
||
## ✨ 新增功能
|
||
|
||
### 1. 爬塔任务
|
||
|
||
**功能描述**:
|
||
- 支持自动执行爬塔任务
|
||
- 可配置爬塔次数:0-100次
|
||
- 设置为0时自动跳过爬塔任务
|
||
- 超时时间:1000ms(1秒)
|
||
|
||
**使用场景**:
|
||
- 每日爬塔任务自动化
|
||
- 快速提升爬塔进度
|
||
- 批量角色爬塔
|
||
|
||
---
|
||
|
||
### 2. 爬塔次数配置
|
||
|
||
**配置位置**:
|
||
在批量任务面板的配置区域
|
||
|
||
**配置方式**:
|
||
- 使用滑块调整次数(0-100)
|
||
- 实时显示当前设置的次数
|
||
- 配置保存在浏览器本地存储
|
||
|
||
**默认值**:
|
||
- 默认为 0 次(跳过爬塔)
|
||
|
||
---
|
||
|
||
### 3. 扩展子任务详情显示
|
||
|
||
**新增功能**:
|
||
子任务详情现在显示所有批量任务的执行情况,包括:
|
||
|
||
#### 一键补差子任务(46个)
|
||
- 分享游戏
|
||
- 赠送好友金币
|
||
- 免费招募 / 付费招募
|
||
- 免费点金(3次)
|
||
- 开启木质宝箱
|
||
- 福利签到
|
||
- 领取各类礼包
|
||
- 领取邮件
|
||
- 免费钓鱼(3次)
|
||
- 灯神扫荡(4国)
|
||
- 领取扫荡卷(3次)
|
||
- 黑市购买
|
||
- 竞技场战斗(3次)
|
||
- 军团BOSS
|
||
- 每日BOSS(3次)
|
||
- 盐罐机器人操作
|
||
- 领取任务奖励(10个)
|
||
- 领取日常/周常任务奖励
|
||
|
||
#### 其他批量任务(5个)
|
||
- 俱乐部签到
|
||
- 一键答题
|
||
- 领取挂机奖励
|
||
- 加钟
|
||
- 爬塔
|
||
|
||
**查看方式**:
|
||
- 点击角色卡片的"子任务"按钮
|
||
- 切换视图:全部任务 / 一键补差 / 其他任务
|
||
- 查看每个任务的完成状态
|
||
|
||
---
|
||
|
||
## 🎨 用户界面
|
||
|
||
### 1. 批量任务面板
|
||
|
||
**新增配置项**:
|
||
```
|
||
┌────────────────────────────────────────┐
|
||
│ 选择任务模板 | 并发数量 | 爬塔次数 │
|
||
│ [完整套餐▼] | [━━●━━━] | [━━━━━●] │
|
||
│ | 5次 | 0次 │
|
||
└────────────────────────────────────────┘
|
||
```
|
||
|
||
**爬塔次数滑块**:
|
||
- 范围:0-100
|
||
- 显示当前设置值
|
||
- 0 = 跳过爬塔任务
|
||
|
||
---
|
||
|
||
### 2. 子任务详情弹窗
|
||
|
||
**视图切换**:
|
||
```
|
||
┌──────────────────────────────────────┐
|
||
│ [全部任务] [一键补差] [其他任务] [重置所有] │
|
||
└──────────────────────────────────────┘
|
||
```
|
||
|
||
**统计信息**:
|
||
```
|
||
总计: 51 已完成: 30 失败: 2 待执行: 19
|
||
```
|
||
|
||
**任务列表**:
|
||
- 显示所有任务的执行状态
|
||
- 标记消耗资源的任务
|
||
- 显示完成时间和错误信息
|
||
|
||
---
|
||
|
||
## 🔧 技术实现
|
||
|
||
### 1. 新增配置
|
||
|
||
**batchTaskStore.js**:
|
||
```javascript
|
||
// 爬塔配置
|
||
const climbTowerCount = ref(
|
||
parseInt(localStorage.getItem('climbTowerCount') || '0')
|
||
) // 爬塔次数(0-100,0表示跳过)
|
||
|
||
// 设置爬塔次数
|
||
const setClimbTowerCount = (count) => {
|
||
if (count < 0 || count > 100) {
|
||
console.warn('⚠️ 爬塔次数必须在0-100之间')
|
||
return
|
||
}
|
||
climbTowerCount.value = count
|
||
localStorage.setItem('climbTowerCount', count.toString())
|
||
console.log(`🗼 爬塔次数已设置为: ${count}`)
|
||
}
|
||
```
|
||
|
||
---
|
||
|
||
### 2. 爬塔任务执行
|
||
|
||
**执行逻辑**:
|
||
```javascript
|
||
case 'climbTower':
|
||
// 爬塔任务
|
||
const climbResults = []
|
||
const count = climbTowerCount.value
|
||
|
||
if (count === 0) {
|
||
return {
|
||
task: '爬塔',
|
||
skipped: true,
|
||
success: true,
|
||
message: `爬塔次数设置为0,跳过执行`
|
||
}
|
||
}
|
||
|
||
console.log(`开始爬塔,设置次数:${count}`)
|
||
|
||
for (let i = 1; i <= count; i++) {
|
||
try {
|
||
const towerResult = await client.sendWithPromise('tower_climb', {}, 1000)
|
||
climbResults.push({
|
||
task: `爬塔 ${i}/${count}`,
|
||
success: true,
|
||
data: towerResult
|
||
})
|
||
await new Promise(resolve => setTimeout(resolve, 200))
|
||
} catch (error) {
|
||
climbResults.push({
|
||
task: `爬塔 ${i}/${count}`,
|
||
success: false,
|
||
error: error.message
|
||
})
|
||
// 如果失败,继续尝试剩余次数
|
||
}
|
||
}
|
||
|
||
// 标记爬塔任务完成
|
||
dailyTaskStateStore.markTaskCompleted(tokenId, 'climb_tower', true, null)
|
||
|
||
return {
|
||
task: '爬塔',
|
||
taskId: 'climb_tower',
|
||
success: true,
|
||
data: climbResults,
|
||
message: `完成${count}次爬塔`
|
||
}
|
||
```
|
||
|
||
**特点**:
|
||
- ✅ 超时时间:1000ms
|
||
- ✅ 每次爬塔间隔200ms
|
||
- ✅ 失败后继续执行剩余次数
|
||
- ✅ 记录每次爬塔结果
|
||
- ✅ 标记任务完成状态
|
||
|
||
---
|
||
|
||
### 3. 扩展任务状态管理
|
||
|
||
**dailyTaskState.js**:
|
||
```javascript
|
||
// 所有批量任务定义
|
||
const DAILY_FIX_TASKS = [/* 46个一键补差子任务 */]
|
||
|
||
const OTHER_TASKS = [
|
||
{ id: 'legion_signin', name: '俱乐部签到', consumesResources: false },
|
||
{ id: 'auto_study', name: '一键答题', consumesResources: false },
|
||
{ id: 'claim_hangup_reward', name: '领取挂机奖励', consumesResources: false },
|
||
{ id: 'add_clock', name: '加钟', consumesResources: false },
|
||
{ id: 'climb_tower', name: '爬塔', consumesResources: false }
|
||
]
|
||
|
||
const ALL_TASKS = [...DAILY_FIX_TASKS, ...OTHER_TASKS]
|
||
```
|
||
|
||
**新增方法**:
|
||
```javascript
|
||
// 获取详细任务列表(支持分类)
|
||
getDetailedTaskList(tokenId, category = 'all') // 'all' | 'dailyFix' | 'other'
|
||
|
||
// 获取一键补差任务列表
|
||
getDailyFixTaskList(tokenId)
|
||
|
||
// 获取其他任务列表
|
||
getOtherTaskList(tokenId)
|
||
```
|
||
|
||
---
|
||
|
||
### 4. 任务状态跟踪
|
||
|
||
**其他任务现在也使用 executeSubTask 跟踪状态**:
|
||
|
||
```javascript
|
||
case 'legionSignIn':
|
||
return await executeSubTask(
|
||
tokenId,
|
||
'legion_signin',
|
||
'俱乐部签到',
|
||
async () => await client.sendWithPromise('legion_signin', {}, 1000),
|
||
false
|
||
)
|
||
|
||
case 'autoStudy':
|
||
return await executeSubTask(
|
||
tokenId,
|
||
'auto_study',
|
||
'一键答题',
|
||
async () => await client.sendWithPromise('study_startgame', {}, 1000),
|
||
false
|
||
)
|
||
|
||
// ... 其他任务类似
|
||
```
|
||
|
||
**优势**:
|
||
- ✅ 统一的状态管理
|
||
- ✅ 完整的执行记录
|
||
- ✅ 详细的错误信息
|
||
- ✅ 一致的用户体验
|
||
|
||
---
|
||
|
||
## 📖 使用指南
|
||
|
||
### 场景1:配置爬塔次数
|
||
|
||
**步骤**:
|
||
1. 打开批量任务面板
|
||
2. 找到"爬塔次数"配置项
|
||
3. 拖动滑块调整次数(0-100)
|
||
4. 系统自动保存配置
|
||
|
||
**示例**:
|
||
```
|
||
爬塔次数: 20次
|
||
[━━━●━━━━━━━] (滑块位置)
|
||
```
|
||
|
||
**提示**:
|
||
- 设置为 0 = 跳过爬塔
|
||
- 建议根据账号情况设置合适次数
|
||
- 次数越多,执行时间越长
|
||
|
||
---
|
||
|
||
### 场景2:执行爬塔任务
|
||
|
||
**步骤**:
|
||
1. 确保任务模板包含"爬塔"任务(默认包含在完整套餐和快速套餐中)
|
||
2. 设置爬塔次数(大于0)
|
||
3. 点击"开始执行"
|
||
4. 等待任务完成
|
||
|
||
**执行日志**:
|
||
```
|
||
开始爬塔,设置次数:20
|
||
✅ 爬塔 1/20 - 成功
|
||
✅ 爬塔 2/20 - 成功
|
||
...
|
||
✅ 爬塔 20/20 - 成功
|
||
完成20次爬塔
|
||
```
|
||
|
||
**如果设置为0**:
|
||
```
|
||
⏭️ 爬塔次数设置为0,跳过执行
|
||
```
|
||
|
||
---
|
||
|
||
### 场景3:查看所有任务状态
|
||
|
||
**步骤**:
|
||
1. 任务执行后,点击角色卡片的"子任务"按钮
|
||
2. 在弹窗中切换视图:
|
||
- **全部任务**:显示所有51个任务
|
||
- **一键补差**:只显示46个一键补差子任务
|
||
- **其他任务**:显示5个其他批量任务
|
||
3. 查看每个任务的状态
|
||
|
||
**示例视图**:
|
||
|
||
**全部任务(51个)**:
|
||
```
|
||
✅ 分享游戏 [未执行]
|
||
✅ 付费招募 [消耗资源] [已完成]
|
||
...
|
||
✅ 俱乐部签到 [已完成]
|
||
✅ 爬塔 [已完成]
|
||
完成时间: 2025-10-07 09:15:30
|
||
```
|
||
|
||
**其他任务(5个)**:
|
||
```
|
||
✅ 俱乐部签到 [已完成]
|
||
✅ 一键答题 [已完成]
|
||
✅ 领取挂机奖励 [已完成]
|
||
✅ 加钟 [已完成]
|
||
✅ 爬塔 [已完成]
|
||
```
|
||
|
||
---
|
||
|
||
## 📊 性能数据
|
||
|
||
### 爬塔执行时间
|
||
|
||
| 次数 | 预计时间 | 说明 |
|
||
|-----|---------|------|
|
||
| 10次 | 12秒 | 10 × (1秒超时 + 0.2秒间隔) |
|
||
| 20次 | 24秒 | 20 × 1.2秒 |
|
||
| 50次 | 60秒 | 50 × 1.2秒 |
|
||
| 100次 | 120秒 | 100 × 1.2秒(2分钟) |
|
||
|
||
**注意**:
|
||
- 实际时间可能更短(如果服务器响应快)
|
||
- 失败的任务不会增加额外时间(已计入超时)
|
||
|
||
---
|
||
|
||
### 100角色批量爬塔
|
||
|
||
**场景**:100个角色,每个爬塔20次
|
||
|
||
**计算**:
|
||
- 并发数5:约 100/5 × 24秒 = 480秒(8分钟)
|
||
- 并发数6:约 100/6 × 24秒 = 400秒(6.7分钟)
|
||
|
||
**优势**:
|
||
- 自动化,无需手动操作
|
||
- 批量处理,节省大量时间
|
||
- 可配置,灵活调整次数
|
||
|
||
---
|
||
|
||
## ⚠️ 注意事项
|
||
|
||
### 1. 爬塔次数设置
|
||
|
||
**建议**:
|
||
- 根据账号实际情况设置
|
||
- 不确定时先设置较小值测试
|
||
- 观察执行结果后调整
|
||
|
||
**风险**:
|
||
- 设置过高可能导致执行时间过长
|
||
- 如果爬塔失败率高,建议降低次数
|
||
|
||
---
|
||
|
||
### 2. 任务模板
|
||
|
||
**爬塔任务包含在以下模板中**:
|
||
- ✅ 完整套餐
|
||
- ✅ 快速套餐
|
||
- ❌ 仅一键补差
|
||
|
||
**自定义模板**:
|
||
- 可以自己创建包含/不包含爬塔的模板
|
||
- 使用"自定义模板"功能
|
||
|
||
---
|
||
|
||
### 3. 执行失败处理
|
||
|
||
**爬塔失败的可能原因**:
|
||
- 已达爬塔上限
|
||
- 体力不足
|
||
- 网络超时
|
||
- 服务器错误
|
||
|
||
**系统行为**:
|
||
- 失败后继续尝试剩余次数
|
||
- 记录失败原因
|
||
- 在详情中可查看具体错误
|
||
|
||
---
|
||
|
||
## 🆕 模板更新
|
||
|
||
### 更新后的模板
|
||
|
||
**完整套餐**:
|
||
```javascript
|
||
tasks: [
|
||
'dailyFix', // 一键补差
|
||
'legionSignIn', // 俱乐部签到
|
||
'autoStudy', // 一键答题
|
||
'claimHangupReward', // 领取挂机奖励
|
||
'addClock', // 加钟
|
||
'climbTower' // 爬塔(新增)
|
||
]
|
||
```
|
||
|
||
**快速套餐**:
|
||
```javascript
|
||
tasks: [
|
||
'legionSignIn', // 俱乐部签到
|
||
'autoStudy', // 一键答题
|
||
'claimHangupReward', // 领取挂机奖励
|
||
'addClock', // 加钟
|
||
'climbTower' // 爬塔(新增)
|
||
]
|
||
```
|
||
|
||
---
|
||
|
||
## 🎯 使用建议
|
||
|
||
### 1. 日常爬塔
|
||
|
||
**推荐配置**:
|
||
- 爬塔次数:10-20次
|
||
- 任务模板:完整套餐或快速套餐
|
||
- 并发数:5-6
|
||
|
||
**适合**:
|
||
- 每日例行爬塔
|
||
- 维持爬塔进度
|
||
- 领取爬塔奖励
|
||
|
||
---
|
||
|
||
### 2. 快速推进
|
||
|
||
**推荐配置**:
|
||
- 爬塔次数:50-100次
|
||
- 任务模板:仅爬塔(自定义)
|
||
- 并发数:6
|
||
|
||
**适合**:
|
||
- 快速提升爬塔层数
|
||
- 活动期间冲榜
|
||
- 批量角色爬塔
|
||
|
||
---
|
||
|
||
### 3. 跳过爬塔
|
||
|
||
**配置**:
|
||
- 爬塔次数:0
|
||
|
||
**适合**:
|
||
- 不需要爬塔时
|
||
- 节省执行时间
|
||
- 专注其他任务
|
||
|
||
---
|
||
|
||
## 📝 总结
|
||
|
||
### 主要特性
|
||
|
||
1. **灵活配置**
|
||
- 爬塔次数可调(0-100)
|
||
- 设置为0自动跳过
|
||
- 配置持久化保存
|
||
|
||
2. **完整跟踪**
|
||
- 所有任务状态记录
|
||
- 详细的执行日志
|
||
- 失败原因追踪
|
||
|
||
3. **统一管理**
|
||
- 所有批量任务统一显示
|
||
- 支持视图切换
|
||
- 便于查看和管理
|
||
|
||
4. **用户友好**
|
||
- 直观的UI界面
|
||
- 实时反馈
|
||
- 详细的提示信息
|
||
|
||
---
|
||
|
||
### 版本信息
|
||
|
||
**版本**: v3.2.0
|
||
**更新日期**: 2025-10-07
|
||
**主要内容**:
|
||
- 新增爬塔任务
|
||
- 扩展子任务详情显示
|
||
- 所有批量任务状态跟踪
|
||
- 优化用户界面
|
||
|
||
---
|
||
|
||
**相关文档**:
|
||
- [批量任务使用说明.md](./批量任务使用说明.md)
|
||
- [功能更新-任务状态跟踪.md](./功能更新-任务状态跟踪.md)
|
||
- [一键补差完整子任务清单.md](./一键补差完整子任务清单.md)
|
||
|