📊 表结构

字段名 数据类型 默认值 说明
entry MEDIUMINT UNSIGNED 0 游戏对象模板ID(主键)
type TINYINT UNSIGNED 0 游戏对象类型
displayId MEDIUMINT UNSIGNED 0 显示模型ID
name VARCHAR(100) '' 对象名称
IconName VARCHAR(100) '' 图标名称
castBarCaption VARCHAR(100) '' 施法条标题
unk1 VARCHAR(100) '' 未知字段
size FLOAT 1 对象大小
data0 INT 0 数据字段0(根据type含义不同,详见下方说明)
data1 INT 0 数据字段1
data2 INT 0 数据字段2
data3 INT 0 数据字段3
data4 INT 0 数据字段4
data5 INT 0 数据字段5
data6 INT 0 数据字段6
data7 INT 0 数据字段7
data8 INT 0 数据字段8
data9 INT 0 数据字段9
data10 INT -1 数据字段10
data11 INT -1 数据字段11
data12 INT 0 数据字段12
data13 INT 0 数据字段13
data14 INT 0 数据字段14
data15 INT 0 数据字段15
data16 INT 0 数据字段16
data17 INT 0 数据字段17
data18 INT 0 数据字段18
data19 INT 0 数据字段19
data20 INT 0 数据字段20
data21 INT 0 数据字段21
data22 INT 0 数据字段22
data23 INT 0 数据字段23
AIName CHAR(64) '' AI名称
ScriptName VARCHAR(64) '' 脚本名称
WDBVerified SMALLINT 1 验证版本

🔑 核心字段详解

🆔 entry - 游戏对象模板ID

详细说明:游戏对象模板的唯一标识符。 取值范围:1 - 16777215
  • 主键字段
  • gameobject表的id字段引用此值
  • 每个对象类型有唯一entry

📦 type - 游戏对象类型

详细说明:定义游戏对象的类型,决定对象的行为和data字段含义。 取值范围:0 - 35 常用类型:
  • 0 - 门(DOOR)
  • 1 - 按钮(BUTTON)
  • 2 - 任务给予者(QUESTGIVER)
  • 3 - 箱子(CHEST)
  • 5 - 通用(GENERIC)
  • 6 - 陷阱(TRAP)
  • 7 - 椅子(CHAIR)
  • 8 - 法术焦点(SPELL_FOCUS)
  • 10 - 交互对象(GOOBER)
  • 19 - 邮箱(MAILBOX)
  • 22 - 法术施法者(SPELLCASTER)
  • 23 - 集合石(MEETINGSTONE)

🎨 displayId - 显示模型ID

详细说明:游戏对象的3D模型ID,对应GameObjectDisplayInfo.dbc。 取值范围:对应DBC文件
  • 决定对象的外观表现
  • 包含模型文件和贴图信息
  • 不同displayId显示不同造型

📝 name - 对象名称

详细说明:游戏对象的名称,显示给玩家。
  • 最大长度100字符
  • 显示在鼠标悬停提示
  • 可通过本地化表翻译

🎯 IconName - 图标名称

详细说明:鼠标悬停时显示的图标类型。 常用图标:
  • Taxi - 飞行点图标
  • Talk - 对话图标
  • Attack - 攻击图标
  • Directions - 方向图标
  • Quest - 任务图标(黄色感叹号)

📏 size - 对象大小

详细说明:游戏对象的缩放比例。 取值范围:0.1 - 10.0+
  • 1.0 - 默认大小
  • 0.5 - 缩小一半
  • 2.0 - 放大两倍
  • 模型可被重新缩放

📊 data0-data23 - 数据字段

详细说明:根据type不同,这些字段有不同含义。 重要提示:
  • 这些字段来自WDB,不应随意修改
  • 不同type的data字段含义完全不同
  • 部分字段默认值为-1表示特殊含义
箱子(type=3)常用字段:
  • data0 - 打开所需锁ID
  • data1 - 掉落模板ID(loot_id)
  • data2 - 使用后消失时间(秒)
  • data3 - 触发陷阱的gameobject_template.entry
  • data4 - 最小金币
  • data5 - 最大金币

🤖 AIName - AI名称

详细说明:游戏对象使用的AI类型。 常用AI:
  • SmartGameObjectAI - SmartAI系统
  • GameObjectAI - 基础AI
  • 空字符串表示无AI

📜 ScriptName - 脚本名称

详细说明:游戏对象使用的C++脚本名称。
  • 对应脚本库中的脚本类
  • 可实现复杂自定义逻辑
  • 优先级高于AIName

💡 实际案例

箱子 创建普通宝箱模板

type=3(箱子), data1=掉落ID, data2=刷新时间

INSERT INTO gameobject_template VALUES( 12345, 3, 10, '普通宝箱', '', '', '', 1, 0, 12345, 180, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '', '', 1 );

邮箱 创建邮箱模板

type=19(邮箱), displayId=邮箱模型

INSERT INTO gameobject_template VALUES( 142102, 19, 307, '邮箱', 'Mail', '', '', 1, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '', '', 1 );

创建副本门模板

type=0(门), data0=初始状态, data2=自动关闭时间

INSERT INTO gameobject_template VALUES( 180405, 0, 5432, '副本门', '', '', '', 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '', '', 1 );

SmartAI 创建使用SmartAI的对象

AIName='SmartGameObjectAI', 配合smart_scripts表

INSERT INTO gameobject_template VALUES( 12346, 10, 10, '交互对象', 'Talk', '正在激活...', '', 1, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'SmartGameObjectAI', '', 1 );

修改 修改箱子掉落ID

entry=12345的箱子修改掉落模板

UPDATE gameobject_template SET data1 = 54321 WHERE entry = 12345;

⚡ 快速参考

常用类型

0
1按钮
3箱子
10交互对象
19邮箱

箱子data字段

data0锁ID
data1掉落ID
data2刷新时间
data4-5金币范围

图标类型

Taxi飞行点
Talk对话
Quest任务
Mail邮箱

AI类型

SmartGameObjectAISmartAI
GameObjectAI基础AI
空字符串无AI

🔗 相关表格

❓ 常见问题

Q1: 如何确定data字段的含义?
根据type值查阅AZ官方文档,不同type的data字段含义完全不同。
Q2: displayId从哪里获取?
从GameObjectDisplayInfo.dbc文件或wowhead等网站查询模型ID。
Q3: 如何让箱子有掉落?
设置data1为掉落模板ID,并在gameobject_loot_template表中配置掉落内容。
Q4: ScriptName和AIName的区别?
ScriptName是C++脚本,AIName是内置AI系统。ScriptName优先级更高。