GameObject 常见类型详解 -- 傻瓜(GOOBER)

GAMEOBJECT_TYPE_GOOBER 是 TrinityCore 中用于创建傻瓜的 GameObject 类型

字段详细说明

字段索引 字段名称 数据类型 默认值 说明 可选值/范围
data0 open uint32 0 交互所需的锁类型ID 引用 Lock.db2,0表示无需钥匙
data1 questID uint32 0 关联的任务ID 引用 QuestV2.db2
data2 eventID uint32 0 关联的游戏事件ID 引用 GameEvents.db2
data3 autoClose uint32 3000 自动关闭时间(毫秒) 0 - 2147483647
data4 customAnim uint32 0 自定义动画 0 - 4
data5 consumable enum false 是否为消耗品 0 = 否, 1 = 是
data6 cooldown uint32 0 冷却时间(秒) 0 - 65535
data7 pageID uint32 0 页面ID 引用 PageText.db2
data8 language uint32 0 语言ID 引用 Languages.db2
data9 pageMaterial uint32 0 页面材质 引用 PageTextMaterial.db2
data10 spell uint32 0 关联的法术ID 引用Spell.dbc
data11 noDamageImmune enum false 是否对伤害免疫 0 = 否, 1 = 是
data12 linkedTrap uint32 0 关联的陷阱ID 引用 GameObjects.db2
data13 GiganticAOI enum false 是否具有巨大活动范围 0 = 否, 1 = 是
data14 openTextID uint32 0 开启时显示的文本ID 引用 BroadcastText.db2
data15 closeTextID uint32 0 关闭时显示的文本ID 引用 BroadcastText.db2
data16 requireLOS enum false 是否需要视线 0 = 否, 1 = 是
data17 allowMounted enum false 是否允许骑乘状态下交互 0 = 否, 1 = 是
data18 floatingTooltip enum false 是否显示浮动提示 0 = 否, 1 = 是
data19 gossipID uint32 0 对话ID 引用 Gossip.db2
data20 AllowMultiInteract enum false 是否允许多次交互 0 = 否, 1 = 是
data21 floatOnWater enum false 是否在水面上浮动 0 = 否, 1 = 是
data22 conditionID1 uint32 0 使用条件ID 引用 PlayerCondition.db2
data23 playerCast enum false 是否由玩家施放 0 = 否, 1 = 是
data24 SpawnVignette uint32 0 生成时的视觉效果ID 引用 vignette.db2
data25 startOpen enum false 初始状态 0 = 关闭, 1 = 开启
data26 DontPlayOpenAnim enum false 是否不播放开启动画 0 = 否, 1 = 是
data27 IgnoreBoundingBox enum false 是否忽略边界框 0 = 否, 1 = 是
data28 NeverUsableWhileMounted enum false 是否禁止骑乘时使用 0 = 否, 1 = 是
data29 SortFarZ enum false 是否按远Z排序 0 = 否, 1 = 是
data30 SyncAnimationtoObjectLifetime enum false 是否同步动画到对象生命周期 0 = 否, 1 = 是
data31 NoFuzzyHit enum false 是否无模糊命中 0 = 否, 1 = 是
data32 LargeAOI enum false 是否具有较大活动范围 0 = 否, 1 = 是
data33 InteractRadiusOverride uint32 0 交互半径覆盖值(码*100) 0 - 2147483647

核心功能字段

字段 说明
spell 关联的法术ID,交互时施放指定法术
questID 关联的任务ID,引用 QuestV2.db2 表
eventID 关联的游戏事件ID,引用 GameEvents.db2 表

访问控制字段

字段 说明
open 定义交互所需的钥匙或条件,引用 Lock.db2 表中的记录
conditionID1 使用对象前必须满足的条件,引用 PlayerCondition.db2 表
cooldown 对象使用后的冷却时间(秒)

时间控制字段

字段 说明
autoClose 对象自动关闭的时间(毫秒)
consumable 是否为消耗品,使用后消失

页面和文本字段

字段 说明
pageID 页面ID,引用 PageText.db2 表,用于显示文本内容
language 语言ID,引用 Languages.db2 表
pageMaterial 页面材质,引用 PageTextMaterial.db2 表
openTextID/closeTextID 开启/关闭时显示的文本ID,引用 BroadcastText.db2 表

动画和视觉效果字段

字段 说明
customAnim 自定义动画,值范围0-4
floatingTooltip 控制是否显示浮动提示信息
floatOnWater 控制对象是否在水面上浮动
SpawnVignette 对象生成时的视觉效果ID
DontPlayOpenAnim 是否不播放开启动画
SortFarZ 是否按远Z排序渲染

交互机制字段

字段 说明
requireLOS 控制是否需要视线接触才能交互
allowMounted 控制是否可以在骑乘状态下交互
NeverUsableWhileMounted 强制禁止在骑乘状态下使用
AllowMultiInteract 是否允许多个玩家同时交互
playerCast 控制法术是否由玩家施放

关联机制字段

字段 说明
linkedTrap 关联一个陷阱对象,交互时会触发该陷阱
gossipID 指向 Gossip.db2 表中的记录,定义交互时的对话选项

性能优化字段

字段 说明
GiganticAOI/LargeAOI 扩大对象的活动范围,使远处玩家也能检测到
InteractRadiusOverride 自定义对象的交互距离,覆盖默认值
IgnoreBoundingBox 是否忽略对象的边界框检测
NoFuzzyHit 是否禁用模糊命中检测

生命周期字段

字段 说明
startOpen 对象的初始状态
SyncAnimationtoObjectLifetime 是否同步动画到对象生命周期

注意事项

  • 功能丰富: GOOBER是功能最丰富的GameObject类型,适用于各种特殊用途

  • 法术系统集成: spell字段连接了游戏的法术系统,是其核心功能之一

  • 冷却机制: cooldown字段可以控制对象的使用频率

  • 动画支持: customAnim和相关动画字段提供了丰富的视觉效果

  • 交互控制: 多个字段控制交互条件,如requireLOS、allowMounted等

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

使用示例

sql 复制代码
-- 一个基本的goober对象,交互时施放法术
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), data10) 
VALUES (1023456, 10, 10234, '基本goober对象', 12345);
sql 复制代码
-- 一个与任务相关的goober对象
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, data10) 
VALUES (1023457, 10, 10235, '任务相关对象', 500, 12346);
sql 复制代码
-- 一个带冷却时间的goober对象
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), data10, data6) 
VALUES (1023458, 10, 10236, '带冷却对象', 12347, 30);
相关推荐
rundreamsFly2 小时前
从 Clawdbot 到 Moltbot,再到 OpenClaw:一场被“商标、定位和时代红利”反复暴击的开源实验
开源·openclaw·claw
大飞哥~BigFei5 小时前
整数ID与短字符串互转思路及开源实现分享
java·开源
韦东东5 小时前
本地问答系统升级:本地RAG+网络搜索(已开源)
开源·问答系统·本地rag
铁蛋AI编程实战6 小时前
DeepSeek mHC 架构 + Agent 实战大模型开发指南
人工智能·架构·开源
静听松涛1336 小时前
开源AI崛起:技术普惠与创新加速的新引擎
人工智能·开源
小雨青年6 小时前
从零开始参与开源:把本地脚本升级为工业级开源项目
开源
张3蜂7 小时前
工具香-乌班图安装 Label Studio最稳方案
yolo·目标检测·开源
向上的车轮7 小时前
开源版 Coze: 创建智能体-每日 ERP 系统巡检计划
开源·coze
skywalk81637 小时前
如何安装开源新闻组软件inn@FreeBSD
开源
昇腾CANN8 小时前
RWKV端侧智能体 基于CANN的推理加速
开源·昇腾·cann