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);
相关推荐
大模型丫丫10 小时前
RAGFlow:开源、可深度定制的企业级 RAG 应用开发引擎
开源·rag
冬奇Lab10 小时前
开源项目第192期:shadcn-admin — Vite + shadcn/ui 构建的后台管理界面参考集
开源·资讯
fthux11 小时前
装闭 RenoPit 源码解析(14):Demo模式、健康检查与Docker部署
人工智能·ai·开源·github·open source·renopit
TunerT_TQ11 小时前
Meta React 源码静态评测:从 4540 个源文件看 React Compiler 的工程化演进
meta·开源·github
越千年12 小时前
A 股行情插件开源了,还带老板模式
开源·工具
梦梦代码精13 小时前
基于UniApp+Vue3+ThinkPHP 8,这套知识付费系统的架构设计有点东西
java·低代码·docker·uni-app·开源·php
tedcloud12314 小时前
book-to-skill 怎么部署?把技术书和项目文档变成 AI Agent 可复用知识
linux·运维·服务器·人工智能·开源
zhonyu鱼15 小时前
Kodi:开源免费的家庭影院与媒体中心,打造私人电影库
开源·开源软件·媒体
孔明click3317 小时前
Sa-Token v1.46.0 发布 🚀,来看看有没有令你心动的功能!
java·sa-token·开源·springboot·权限认证
zhonyu鱼17 小时前
Home Assistant:开源的智能家居自动化平台,统一控制全屋设备
开源·自动化·智能家居