📖 account_tutorial 表
账号新手教程进度表,记录玩家已完成的新手引导教程步骤。
📋 表概述
account_tutorial 表用于追踪每个账号的新手教程完成进度。WoW 客户端内置了一套新手引导系统,通过 tut0~tut7 八个标记位记录玩家是否已经完成了某个教学步骤,避免重复显示教程提示。
- 主键:(accountId)
- 引擎:InnoDB
- 关联表:account(accountId)
📊 表结构
| 字段名 | 数据类型 | 默认值 | 说明 |
|---|---|---|---|
accountId | int UNSIGNED | 0 | 账号ID,关联 auth.account.id |
tut0 | int UNSIGNED | 0 | 教程步骤0完成标记(位掩码) |
tut1 | int UNSIGNED | 0 | 教程步骤1完成标记 |
tut2 | int UNSIGNED | 0 | 教程步骤2完成标记 |
tut3 | int UNSIGNED | 0 | 教程步骤3完成标记 |
tut4 | int UNSIGNED | 0 | 教程步骤4完成标记 |
tut5 | int UNSIGNED | 0 | 教程步骤5完成标记 |
tut6 | int UNSIGNED | 0 | 教程步骤6完成标记 |
tut7 | int UNSIGNED | 0 | 教程步骤7完成标记 |
🔍 重要字段详解
tut0~tut7 — 位掩码教程标记
每个 tutX 字段使用位掩码(bitmask)来存储多个子步骤的完成状态。例如 tut0 的值 7(二进制 111)表示前三个子步骤都已完成。客户端通过读取这些位来判断是否显示某个教程提示。
accountId — 账号级别
教程进度是账号级别的数据,不是角色级别的。同一账号下的所有角色共享教程完成状态,一个角色完成了某个教程,其他角色也不会再看到同样的提示。
💡 SQL查询示例
查询某个账号的教程进度
SELECT accountId, tut0, tut1, tut2, tut3, tut4, tut5, tut6, tut7
FROM account_tutorial
WHERE accountId = 100;
重置某个账号的所有教程进度(重新显示所有提示)
UPDATE account_tutorial
SET tut0=0, tut1=0, tut2=0, tut3=0, tut4=0, tut5=0, tut6=0, tut7=0
WHERE accountId = 100;
❓ 常见问题
Q: 如何让所有玩家重新看到新手教程?
清空整个表:TRUNCATE TABLE account_tutorial; 或使用 UPDATE account_tutorial SET tut0=0, tut1=0, tut2=0, tut3=0, tut4=0, tut5=0, tut6=0, tut7=0; 来重置所有账号的教程状态。
Q: 每个 tutX 具体控制哪些教程?
教程内容由客户端 Cfg_Tutorials.dbc 或 Tutorials.dbc 定义,与服务的 tutX 位掩码对应。不同版本/语言的客户端教程内容可能不同。