📊 表结构
| 字段名 | 数据类型 | 默认值 | 说明 |
|---|---|---|---|
| entry | INT UNSIGNED | 0 | 游戏对象模板ID (主键) |
| faction | SMALLINT UNSIGNED | 0 | 阵营ID |
| flags | INT UNSIGNED | 0 | 对象标志 |
| mingold | INT UNSIGNED | 0 | 最小金币 |
| maxgold | INT UNSIGNED | 0 | 最大金币 |
| artkit0 | INT | 0 | 外观套装0 |
| artkit1 | INT | 0 | 外观套装1 |
| artkit2 | INT | 0 | 外观套装2 |
| artkit3 | INT | 0 | 外观套装3 |
🔑 核心字段详解
🆔 entry - 游戏对象模板ID
详细说明:对应gameobject_template.entry,指定附加属性的游戏对象模板。
取值范围:对应gameobject_template.entry
- 表的主键
- 影响所有该类型的游戏对象
- 必须是已存在的游戏对象模板
⚔️ faction - 阵营ID
详细说明:游戏对象的阵营,影响与玩家的交互和敌对关系。
取值范围:对应FactionTemplate.dbc
| 阵营ID | 阵营 | 说明 |
|---|---|---|
| 14 | 敌对 | 对所有玩家敌对 |
| 35 | 友好 | 对所有玩家友好 |
| 55 | 联盟 | 联盟阵营 |
| 85 | 部落 | 部落阵营 |
| 其他 | 自定义 | 其他阵营ID |
🚩 flags - 对象标志
详细说明:游戏对象的行为标志,控制特殊属性和交互方式。
取值范围:位标志组合
| 标志值 | 标志名 | 说明 |
|---|---|---|
| 1 | GO_FLAG_IN_USE | 正在使用中 |
| 2 | GO_FLAG_LOCKED | 锁定状态 |
| 4 | GO_FLAG_INTERACT_COND | 需要条件交互 |
| 8 | GO_FLAG_TRANSPORT | 运输对象 |
| 16 | GO_FLAG_UNK5 | 未知标志5 |
| 32 | GO_FLAG_NODESPAWN | 不消失 |
组合使用:可以组合多个标志,如flags=6表示锁定且需要条件交互(2+4)。
💰 mingold/maxgold - 金币掉落
详细说明:游戏对象打开时掉落的金币范围。
取值范围:0 - 2147483647
- mingold - 最小金币数量
- maxgold - 最大金币数量
- 实际掉落金币在范围内随机
- 0表示不掉落金币
- 用于宝箱、容器等对象
常见配置:
| 对象类型 | 最小金币 | 最大金币 |
|---|---|---|
| 普通宝箱 | 100 | 500 |
| 精良宝箱 | 500 | 2000 |
| 史诗宝箱 | 2000 | 10000 |
🎨 artkit0-3 - 外观套装
详细说明:游戏对象的外观套装ID,控制对象的视觉外观。
取值范围:对应GameObjectArtKit.dbc
- 最多支持4个外观套装
- artkit0 - 主要外观
- artkit1-3 - 替换外观
- 用于状态变化的对象
- 0表示使用默认外观
💡 实际案例
宝箱配置 配置宝箱金币掉落
游戏对象ID=12345, faction=35, mingold=100, maxgold=500
INSERT INTO gameobject_template_addon VALUES(
12345, 35, 0, 100, 500, 0, 0, 0, 0
);锁定对象 配置锁定标志
游戏对象ID=12346, flags=2(锁定状态)
INSERT INTO gameobject_template_addon VALUES(
12346, 35, 2, 0, 0, 0, 0, 0, 0
);阵营对象 配置阵营特定对象
游戏对象ID=12347, faction=55(联盟阵营)
INSERT INTO gameobject_template_addon VALUES(
12347, 55, 0, 0, 0, 0, 0, 0, 0
);外观变化 配置外观套装
游戏对象ID=12348, artkit0=100, artkit1=101
INSERT INTO gameobject_template_addon VALUES(
12348, 35, 0, 0, 0, 100, 101, 0, 0
);查询 查询游戏对象的附加属性
查询游戏对象ID=12345的附加属性
SELECT gta.entry, gta.faction, gta.flags, gta.mingold, gta.maxgold, gt.name
FROM gameobject_template_addon gta
JOIN gameobject_template gt ON gta.entry = gt.entry
WHERE gta.entry = 12345;⚡ 快速参考
阵营ID
| 14 | 敌对 |
| 35 | 友好 |
| 55 | 联盟 |
| 85 | 部落 |
对象标志
| 1 | 正在使用 |
| 2 | 锁定 |
| 4 | 条件交互 |
| 8 | 运输 |
| 32 | 不消失 |
金币掉落
| 普通宝箱 | 100-500 |
| 精良宝箱 | 500-2000 |
| 史诗宝箱 | 2000-10000 |
| 0 | 不掉落 |
关联表
| gameobject_template | 对象模板 |
| gameobject_addon | 实例附加 |
| FactionTemplate.dbc | 阵营模板 |
| GameObjectArtKit.dbc | 外观套装 |
🔗 相关表格
- gameobject_template - 游戏对象模板表
- gameobject_addon - 游戏对象实例附加表
- gameobject - 游戏对象刷新表
❓ 常见问题
Q1: 这个表和gameobject_addon的区别?
gameobject_template_addon针对整个模板,影响所有该类型的对象;gameobject_addon针对单个实例,只影响特定对象。
Q2: 如何设置阵营特定对象?
设置faction字段为对应阵营ID(如55联盟、85部落),只有该阵营的玩家才能看到或交互。
Q3: flags标志如何组合?
使用位标志组合,如flags=6表示锁定且需要条件交互(2+4),flags=34表示不消失且正在使用(32+2)。
Q4: 金币掉落如何计算?
实际掉落金币在mingold和maxgold之间随机,每次打开对象都会随机生成金币数量。