📋 表概述

lfg_data 表存储每个角色在随机副本查找器(Looking For Group)系统中的状态。记录了角色当前正在排队等待哪个地下城以及排队状态,是LFG系统的核心数据表。

主键为 guid,每个角色在LFG系统中只有一条状态记录。dungeon 字段指定排队的目标地下城ID。

📊 表结构

字段名类型默认值说明
guidint UNSIGNED0角色全局唯一ID(主键)
dungeonint UNSIGNED0排队的地下城ID(0=未排队)
statetinyint UNSIGNED0LFG状态码

🔍 重要字段详解

🏰 dungeon - 地下城ID

详细说明:指定角色正在排队等待的副本/地下城。
  • 0 = 未排队或已完成(角色不在LFG中)
  • 具体ID值对应 LFGDungeons.dbc 中的地下城ID
  • 随机英雄地下城、随机普通地下城等有各自的专有ID
  • 常见值:258=随机WLK英雄地下城,261=随机WLK普通地下城

📊 state - LFG状态

详细说明:角色在LFG系统中的当前状态。
  • 0 = 空闲/未排队
  • 1 = 正在排队等待中
  • 2 = 已匹配到队伍,等待确认
  • 3 = 已确认进入(正在传送进副本)
💡 清理所有排队状态:UPDATE lfg_data SET dungeon = 0, state = 0 WHERE dungeon > 0;

💡 SQL示例

示例1:查询正在排队的角色

SELECT l.guid, c.name, c.level, c.class, l.dungeon, l.state FROM lfg_data l JOIN characters c ON c.guid = l.guid WHERE l.state > 0 ORDER BY l.state;

示例2:清除指定角色的排队状态

UPDATE lfg_data SET dungeon = 0, state = 0 WHERE guid = 100;

❓ 常见问题

Q1: 角色卡在LFG排队状态无法取消怎么办?
直接重置该角色的 lfg_data 记录:UPDATE lfg_data SET dungeon=0, state=0 WHERE guid=X;
Q2: lfg_data 与 LFGDungeons.dbc 的关系是什么?
lfg_data.dungeon 存储的是 LFGDungeons.dbc 中定义的地下城组ID,不是地图ID。每个DBC条目对应一个排队选项(如"随机WLK英雄本")。