GameObject 常见类型详解 -- 宝箱(CHEST)

GAMEOBJECT_TYPE_CHEST 是 TrinityCore 中用于创建宝箱的 GameObject 类型

字段详细说明

字段索引 字段名称 数据类型 默认值 说明 可选值/范围
data0 open uint32 0 开启宝箱所需的锁类型ID 引用 Lock.db2,0表示无需钥匙
data1 chestLoot uint32 0 宝箱战利品表ID 引用 Treasure.db2
data2 chestRestockTime uint32 0 宝箱重新刷新时间(毫秒) 0 - 1800000
data3 consumable enum false 是否为消耗品 0 = 否, 1 = 是
data4 minRestock uint32 0 最小重新填充时间 0 - 65535
data5 maxRestock uint32 0 最大重新填充时间 0 - 65535
data6 triggeredEvent uint32 0 触发的游戏事件ID 引用 GameEvents.db2
data7 linkedTrap uint32 0 关联的陷阱ID 引用 GameObjects.db2
data8 questID uint32 0 关联的任务ID 引用 QuestV2.db2
data9 InteractRadiusOverride uint32 0 交互半径覆盖值(码*100) 0 - 2147483647
data10 requireLOS enum false 是否需要视线 0 = 否, 1 = 是
data11 leaveLoot enum false 是否留下战利品 0 = 否, 1 = 是
data12 notInCombat enum false 是否在战斗中不可用 0 = 否, 1 = 是
data13 logloot enum false 是否记录战利品获取 0 = 否, 1 = 是
data14 openTextID uint32 0 开启时显示的文本ID 引用 BroadcastText.db2
data15 usegrouplootrules enum false 是否使用团队战利品规则 0 = 否, 1 = 是
data16 floatingTooltip enum false 是否显示浮动提示 0 = 否, 1 = 是
data17 conditionID1 uint32 0 使用条件ID 引用 PlayerCondition.db2
data18 xpLevel int32 0 经验等级 -2147483648 - 2147483647
data19 xpDifficulty enum No Exp 经验难度 No Exp, Trivial, Very Small, Small, Substandard, Standard, High, Epic, Dungeon, 5
data20 Unused int32 0 未使用字段 0 - 123
data21 GroupXP enum false 是否获得团队经验 0 = 否, 1 = 是
data22 DamageImmuneOK enum false 是否允许伤害免疫 0 = 否, 1 = 是
data23 trivialSkillLow uint32 0 简单技能等级下限 0 - 65535
data24 trivialSkillHigh uint32 0 简单技能等级上限 0 - 65535
data25 DungeonEncounter uint32 0 地下城遭遇战ID 引用 DungeonEncounter.db2
data26 spell uint32 0 关联的法术ID 引用 Spell.db2
data27 GiganticAOI enum false 是否具有巨大活动范围 0 = 否, 1 = 是
data28 LargeAOI enum false 是否具有较大活动范围 0 = 否, 1 = 是
data29 SpawnVignette uint32 0 生成时的视觉效果ID 引用 vignette.db2
data30 chestPersonalLoot uint32 0 个人战利品表ID 引用 Treasure.db2
data31 turnpersonallootsecurityoff enum false 是否关闭个人战利品安全机制 0 = 否, 1 = 是
data32 ChestProperties uint32 0 宝箱属性ID 引用 ChestProperties.db2
data33 chestPushLoot uint32 0 推送战利品表ID 引用 Treasure.db2
data34 ForceSingleLooter enum false 是否强制单人拾取 0 = 否, 1 = 是

核心功能字段

字段 说明
chestLoot 指向 Treasure.db2 表中的记录,定义了宝箱包含的战利品
chestPersonalLoot 个人战利品表,为每个玩家生成独特的战利品
chestPushLoot 推送战利品表,可能用于特定的游戏机制

访问控制字段

字段 说明
open 定义开启宝箱所需的钥匙或条件,引用 Lock.db2 表中的记录
questID 宝箱关联的任务ID,玩家必须完成指定任务才能开启宝箱
conditionID1 定义玩家使用宝箱之前必须满足的条件,引用 PlayerCondition.db2 表

刷新机制字段

字段 说明
chestRestockTime 宝箱被清空后重新刷新战利品的时间(毫秒)
minRestock/maxRestock 宝箱重新填充时间的随机范围
consumable 是否为消耗品,开启后消失

交互机制字段

字段 说明
requireLOS 控制玩家是否需要与宝箱保持视线接触才能交互
notInCombat 控制玩家是否可以在战斗状态下开启宝箱
usegrouplootrules 是否使用团队战利品分配规则

战利品机制字段

字段 说明
leaveLoot 是否在宝箱被开启后留下战利品
logloot 是否记录玩家获取的战利品到日志
ForceSingleLooter 是否强制只能由一个玩家拾取战利品

关联机制字段

字段 说明
linkedTrap 关联一个陷阱对象,开启宝箱时会触发该陷阱
triggeredEvent 开启宝箱时触发的游戏事件ID
spell 开启宝箱时施放的法术ID

经验和技能字段

字段 说明
xpLevel 与宝箱相关的经验等级
xpDifficulty 经验获取难度等级
trivialSkillLow/High 简单技能等级范围,用于技能相关的宝箱

视觉效果字段

字段 说明
floatingTooltip 是否显示浮动提示信息
openTextID 开启宝箱时显示给玩家的文本消息ID
SpawnVignette 宝箱生成时的视觉效果ID

性能优化字段

字段 说明
GiganticAOI/LargeAOI 扩大宝箱的活动范围,使远处玩家也能检测到
InteractRadiusOverride 自定义宝箱的交互距离,覆盖默认值

注意事项

  • 战利品系统: chestLoot是宝箱的核心字段,用于战利品内容

  • 刷新机制: chestRestockTime控制宝箱的刷新时间,对于公共区域的宝箱尤其重要

  • 任务关联: questID字段可以创建任务相关的宝箱

  • 团队机制: usegrouplootrules和ForceSingleLooter字段控制团队环境下的战利品分配

  • 安全机制: turnpersonallootsecurityoff可以控制个人战利品的安全机制

  • 性能考虑: GiganticAOI和LargeAOI会影响服务器性能,应谨慎使用

  • 平衡性: 各种限制条件(open, conditionID1等)需要根据游戏难度和流程合理设置

使用示例

sql 复制代码
-- 一个基本的宝箱,包含战利品,5分钟刷新
INSERT INTO `gameobject_template` 
(entry, [type](file://c:\TrinityCore\dep\protobuf\src\google\protobuf\descriptor.h#L797-L797), displayId, [name](file://c:\TrinityCore\dep\g3dlite\include\G3D\XML.h#L166-L168), data1, data2) 
VALUES (423456, 3, 4234, '基本宝箱', 100, 300000);
sql 复制代码
-- 一个与任务相关的宝箱,需要完成任务才能开启
INSERT INTO `gameobject_template` 
(entry, [type](file://c:\TrinityCore\dep\protobuf\src\google\protobuf\descriptor.h#L797-L797), displayId, [name](file://c:\TrinityCore\dep\g3dlite\include\G3D\XML.h#L166-L168), data0, data1, data8) 
VALUES (423457, 3, 4235, '任务宝箱', 0, 101, 500);
sql 复制代码
-- 一个高级宝箱,需要钥匙,关联陷阱,使用团队战利品规则
INSERT INTO `gameobject_template` 
(entry, [type](file://c:\TrinityCore\dep\protobuf\src\google\protobuf\descriptor.h#L797-L797), displayId, [name](file://c:\TrinityCore\dep\g3dlite\include\G3D\XML.h#L166-L168), data0, data1, data7, data15) 
VALUES (423458, 3, 4236, '高级宝箱', 50, 102, 50001, 1);
相关推荐
西安栈上月明软件科技1 小时前
从业务黑话到本体图谱:OAG本体建模五步法(西安老系统AI化改造实战)
数据库·人工智能·架构
anxiao_m1 小时前
跨云跨机房大数据迁移怎么选?不同场景工具适配指南
数据库·云启快传
风哥2号3 小时前
数据库教程FGMT43‑MySQL性能分析与优化调整
数据库·mysql
随身数智备忘录3 小时前
财务数据分析如何与业务场景结合?财务数据分析如何从数出有据到数出有用?
数据库
这个DBA有点耶4 小时前
数据库教程:从零基础到实战的完整学习路径(2026版)
数据库·程序员·代码规范
forestsea5 小时前
从零构建 Java 智能体 RAG 系统:Milvus 向量数据库实战指南
java·数据库·milvus
probex_6 小时前
从 ByConity 到 VictoriaMetrics:一次指标数据迁移引发的四种存储对比
数据库
Patrick在香港6 小时前
Python 审计香港开放数据目录:两个端点差 10 倍,只有 9.3% 的资源标了「最后修改时间」
开发语言·数据库·python·数据分析·api·数据治理·开放数据
这个DBA有点耶6 小时前
自增主键用尽了怎么办?INT溢出、在线迁移与预防策略全解析
数据库·mysql·代码规范
老纪的技术唠嗑局7 小时前
Agent 习惯性删库跑路,数据库纷纷学 Git 续命
数据库·人工智能