Files
xyzw_web_helper/MD说明文件夹/游戏功能实现文档.md
2025-10-17 20:56:50 +08:00

431 lines
8.0 KiB
Markdown
Raw Permalink 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.

# 游戏功能模块实现文档
## 概述
本文档记录了所有游戏功能模块的实现细节包括命令、参数、响应处理和UI展示。
---
## 一、每日功能模块
### 1. 队伍阵容 (TeamStatus.vue)
**组件位置**: `src/components/TeamStatus.vue`
**功能描述**: 显示和切换队伍阵容
**命令**:
- 获取队伍信息: `presetteam_getinfo`
- 参数: `{}`
- 响应: 存储在 `tokenStore.gameData.presetTeam`
- 切换队伍: `presetteam_saveteam`
- 参数: `{ teamId: number }`
- 响应: 更新当前使用的队伍ID
**数据结构**:
```javascript
{
useTeamId: number, // 当前使用的队伍ID (1-4)
teams: {
[teamId]: {
teamInfo: {
[position]: {
heroId: number,
level: number,
...
}
}
}
}
}
```
**UI显示**:
- 队伍选择器 (1-4按钮)
- 当前队伍阵容 (英雄头像列表)
- 刷新按钮
---
### 2. 每日任务 (DailyTaskStatus.vue)
**组件位置**: `src/components/DailyTaskStatus.vue`
**功能描述**: 显示每日任务完成状态
**命令**:
- 任务数据通过角色信息获取: `role_getroleinfo`
- 参数: `{}`
- 响应: 存储在 `tokenStore.gameData.roleInfo`
**UI显示**:
- 任务列表
- 完成状态标识
- 进度条
---
### 3. 咸将塔 (TowerStatus.vue)
**组件位置**: `src/components/TowerStatus.vue`
**功能描述**: 爬塔功能
**命令**:
- 获取塔信息: `tower_getinfo`
- 参数: `{}`
- 响应: 存储在 `tokenStore.gameData.roleInfo.role.tower`
- 开始爬塔: `fight_starttower`
- 参数: `{}`
- 响应: 爬塔结果
**数据结构**:
```javascript
{
tower: {
id: number, // 塔层ID (floor*10 + layer)
energy: number // 剩余体力
}
}
```
**UI显示**:
- 当前层数 (floor-layer)
- 剩余体力
- 爬塔按钮
---
### 4. 挂机时间
**组件位置**: `src/components/GameStatus.vue` (内联代码)
**功能描述**: 挂机时间管理
**命令**:
- 加钟: `system_mysharecallback`
- 参数: `{ isSkipShareCard: true, type: 2 }`
- 发送4次间隔300ms
- 领取奖励: `system_claimhangupreward`
- 参数: `{}`
- 配合分享回调使用
**数据结构**:
```javascript
{
hangUp: {
lastTime: number, // 开始挂机时间
hangUpTime: number, // 挂机总时长
remainingTime: number, // 剩余时间
elapsedTime: number // 已挂机时间
}
}
```
**UI显示**:
- 挂机倒计时
- 已挂机时间
- 加钟按钮
- 领取奖励按钮
---
### 5. 咸鱼大冲关
**组件位置**: `src/components/GameStatus.vue` (内联代码)
**功能描述**: 自动答题功能
**命令**:
- 开始答题: `study_startgame`
- 参数: `{}`
- 自动答题流程由 tokenStore 处理
**数据结构**:
```javascript
{
studyStatus: {
isAnswering: boolean,
isCompleted: boolean,
questionCount: number,
answeredCount: number,
status: string,
timestamp: number
}
}
```
**UI显示**:
- 答题状态标识
- 进度显示
- 一键答题按钮
---
### 6. 盐罐机器人
**组件位置**: `src/components/GameStatus.vue` (内联代码)
**功能描述**: 盐罐机器人管理
**命令**:
- 停止: `bottlehelper_stop`
- 参数: `{}`
- 启动: `bottlehelper_start`
- 参数: `{}`
**数据结构**:
```javascript
{
bottleHelpers: {
helperStopTime: number // 停止时间戳
}
}
```
**UI显示**:
- 运行状态
- 剩余时间倒计时
- 启动/重启按钮
---
## 二、俱乐部功能模块
### 1. 俱乐部签到
**组件位置**: `src/components/GameStatus.vue` (内联代码)
**功能描述**: 俱乐部每日签到
**命令**:
- 签到: `legion_signin`
- 参数: `{}`
- 响应: 更新角色信息
**数据结构**:
```javascript
{
statisticsTime: {
'legion:sign:in': number // 签到时间戳
}
}
```
**UI显示**:
- 签到状态
- 俱乐部名称
- 签到按钮
---
### 2. 俱乐部赛车 (CarManagement.vue)
**组件位置**: `src/components/CarManagement.vue`
**功能描述**: 赛车管理和比赛
**命令**: (需要查看CarManagement组件)
- 相关命令在该组件中定义
**UI显示**:
- 赛车信息
- 比赛状态
- 操作按钮
---
### 3. 俱乐部信息 (ClubInfo.vue)
**组件位置**: `src/components/ClubInfo.vue`
**功能描述**: 显示俱乐部详细信息
**命令**:
- 获取俱乐部信息: `legion_getinfo`
- 参数: `{}`
- 响应: 存储在 `tokenStore.gameData.legionInfo`
**数据结构**:
```javascript
{
legionInfo: {
info: {
id: number,
name: string,
level: number,
power: number,
leaderId: number,
members: { [roleId]: memberInfo }
}
}
}
```
**UI显示**:
- 俱乐部概览 (战力、段位、成员数等)
- 成员列表
- 盐场战绩
---
### 4. 俱乐部排位
**组件位置**: `src/components/GameStatus.vue` (内联代码)
**功能描述**: 俱乐部排位报名
**命令**:
- 报名排位: `legionmatch_rolesignup`
- 参数: `{}`
- 响应: 更新报名状态
**数据结构**:
```javascript
{
statistics: {
'last:legion:match:sign:up:time': number // 报名时间戳
}
}
```
**UI显示**:
- 报名状态
- 赛事说明
- 报名按钮
---
## 三、活动功能模块
### 1. 月度任务
**组件位置**: `src/components/GameStatus.vue` (内联代码)
**功能描述**: 月度钓鱼和竞技场任务管理
**命令**:
- 获取月度数据: `activity_get`
- 参数: `{}`
- 响应: 月度活动数据
- 钓鱼: `artifact_lottery`
- 参数: `{ lotteryNumber: number, newFree: true, type: 1 }`
- 免费3次后消耗资源
- 竞技场开始: `arena_startarea`
- 参数: `{}`
- 获取目标: `arena_getareatarget`
- 参数: `{ refresh: boolean }`
- 战斗: `fight_startareaarena`
- 参数: `{ targetId: number }`
**数据结构**:
```javascript
{
monthActivity: {
myMonthInfo: {
'2': { num: number } // 钓鱼次数
},
myArenaInfo: {
num: number // 竞技场次数
}
}
}
```
**目标值**:
- 钓鱼: 320次/月
- 竞技场: 240次/月
**UI显示**:
- 钓鱼进度
- 竞技场进度
- 剩余天数
- 补齐按钮
- 一键完成按钮
---
### 2. 咸将升级模块 (UpgradeModule.vue)
**组件位置**: `src/components/UpgradeModule.vue`
**功能描述**: 批量咸将升星和图鉴升级
**命令**:
- 咸将升星: `hero_heroupgradestar`
- 参数: `{ heroId: number }`
- 批量执行
- 图鉴升级: `book_upgrade`
- 参数: `{ heroId: number }`
- 批量执行
- 领取图鉴奖励: `book_claimpointreward`
- 参数: `{}`
- 可配置次数
**咸将ID范围**:
- 第一批: 101-120
- 第二批: 201-228
- 第三批: 301-314
**配置项**:
- 升星次数: 1-100
- 图鉴升级次数: 1-100
- 领取奖励: 开关
- 领取奖励次数: 1-100
**执行顺序**: 固定为先升星后图鉴
**UI显示**:
- 进度条
- 当前操作说明
- 配置项输入
- 开始升级按钮
---
## 四、身份牌 (IdentityCard.vue)
**组件位置**: `src/components/IdentityCard.vue`
**功能描述**: 显示玩家基本信息
**数据来源**: `tokenStore.gameData.roleInfo`
**UI显示**:
- 玩家头像
- 玩家名称
- 等级、战力等基本信息
- 嵌入式显示模式
---
## 重构方案
### 新的组件结构
```
GameStatus.vue (使用 n-tabs)
├── IdentityCard (常驻顶部)
├── Tab 1: 每日
│ ├── TeamStatus
│ ├── DailyTaskStatus
│ ├── TowerStatus
│ ├── HangUpStatus (新建组件)
│ ├── StudyStatus (新建组件)
│ └── BottleHelperStatus (新建组件)
├── Tab 2: 俱乐部
│ ├── LegionSigninStatus (新建组件)
│ ├── CarManagement
│ ├── ClubInfo
│ └── LegionMatchStatus (新建组件)
└── Tab 3: 活动
├── MonthlyTaskStatus (新建组件)
└── UpgradeModule
```
### 需要提取的内联组件
1. HangUpStatus - 挂机时间
2. StudyStatus - 咸鱼大冲关
3. BottleHelperStatus - 盐罐机器人
4. LegionSigninStatus - 俱乐部签到
5. LegionMatchStatus - 俱乐部排位
6. MonthlyTaskStatus - 月度任务
这些组件将保持原有的逻辑和UI仅从GameStatus.vue中分离出来。