📋 表概述

account_tutorial 表用于追踪每个账号的新手教程完成进度。WoW 客户端内置了一套新手引导系统,通过 tut0~tut7 八个标记位记录玩家是否已经完成了某个教学步骤,避免重复显示教程提示。

📊 表结构

字段名数据类型默认值说明
accountIdint UNSIGNED0账号ID,关联 auth.account.id
tut0int UNSIGNED0教程步骤0完成标记(位掩码)
tut1int UNSIGNED0教程步骤1完成标记
tut2int UNSIGNED0教程步骤2完成标记
tut3int UNSIGNED0教程步骤3完成标记
tut4int UNSIGNED0教程步骤4完成标记
tut5int UNSIGNED0教程步骤5完成标记
tut6int UNSIGNED0教程步骤6完成标记
tut7int UNSIGNED0教程步骤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 位掩码对应。不同版本/语言的客户端教程内容可能不同。