GameObject 常见类型详解 -- 陷阱(TRAP)

GAMEOBJECT_TYPE_TRAP 是 TrinityCore 中用于创建陷阱的 GameObject 类型

字段详细说明

字段索引 字段名称 数据类型 默认值 说明 可选值/范围
data0 open uint32 0 触发陷阱所需的锁类型ID 引用 Lock.db2,0表示无需钥匙
data1 Unused int32 0 未使用字段 0 - 65535
data2 radius uint32 0 陷阱触发半径 0 - 100
data3 spell uint32 0 触发的法术ID 引用 Spell.db2
data4 charges uint32 1 可触发次数 0 - 65535
data5 cooldown uint32 0 冷却时间(秒) 0 - 65535
data6 autoClose uint32 0 自动关闭时间(毫秒) 0 - 2147483647
data7 startDelay uint32 0 启动延迟(秒) 0 - 65535
data8 serverOnly enum false 是否仅服务器端 0 = 否, 1 = 是
data9 stealthed enum false 是否潜行状态 0 = 否, 1 = 是
data10 GiganticAOI enum false 是否具有巨大活动范围 0 = 否, 1 = 是
data11 stealthAffected enum false 是否受潜行影响 0 = 否, 1 = 是
data12 openTextID uint32 0 触发时显示的文本ID 引用 BroadcastText.db2
data13 closeTextID uint32 0 关闭时显示的文本ID 引用 BroadcastText.db2
data14 IgnoreTotems enum false 是否忽略图腾 0 = 否, 1 = 是
data15 conditionID1 uint32 0 触发条件ID 引用 PlayerCondition.db2
data16 playerCast enum false 是否由玩家施放 0 = 否, 1 = 是
data17 SummonerTriggered enum false 是否由召唤者触发 0 = 否, 1 = 是
data18 requireLOS enum false 是否需要视线 0 = 否, 1 = 是
data19 TriggerCondition uint32 0 触发条件ID 引用 PlayerCondition.db2
data20 Checkallunits enum false 是否检查所有单位 0 = 否(仅检查玩家), 1 = 是(检查所有单位)
data21 InteractRadiusOverride uint32 0 交互半径覆盖值(码*100) 0 - 2147483647

核心功能字段

字段 说明
spell 陷阱触发时施放的法术ID,引用 Spell.db2 表
radius 陷阱的触发半径,单位为码
charges 陷阱可触发的次数,0表示无限次数

时间控制字段

字段 说明
cooldown 陷阱触发后的冷却时间(秒)
startDelay 陷阱启动前的延迟时间(秒)
autoClose 陷阱自动关闭的时间(毫秒)

访问控制字段

字段 说明
open 定义触发陷阱所需的钥匙或条件,引用 Lock.db2 表中的记录
conditionID1 触发陷阱前必须满足的条件,引用 PlayerCondition.db2 表
TriggerCondition 另一个触发条件字段,功能与conditionID1类似

隐身和检测字段

字段 说明
stealthed 陷阱是否处于潜行状态
stealthAffected 陷阱是否受潜行状态影响
IgnoreTotems 陷阱是否忽略图腾的影响

交互机制字段

字段 说明
requireLOS 控制是否需要视线接触才能触发陷阱
Checkallunits 控制陷阱是否检查所有单位(包括NPC)或仅检查玩家
playerCast 控制陷阱是否由玩家施放

视觉效果字段

字段 说明
openTextID 陷阱触发时显示给玩家的文本消息ID
closeTextID 陷阱关闭时显示给玩家的文本消息ID
serverOnly 控制陷阱是否仅在服务器端存在,客户端不可见

性能优化字段

字段 说明
GiganticAOI 扩大陷阱的活动范围,使远处玩家也能检测到
InteractRadiusOverride 自定义陷阱的交互距离,覆盖默认值
SummonerTriggered 控制陷阱是否由召唤者触发

注意事项

  • 法术系统集成: spell字段是陷阱的核心,它连接了游戏的法术系统

  • 触发范围: radius字段定义了陷阱的有效范围

  • 使用次数: charges字段控制陷阱的可使用次数,0表示无限使用

  • 冷却机制: cooldown字段可以防止陷阱被频繁触发

  • 隐身机制: stealthed和stealthAffected字段与潜行系统相关

  • 检测机制: Checkallunits字段控制陷阱检测目标的范围

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

使用示例

sql 复制代码
-- 一个基本的陷阱,触发时施放法术,有3次使用次数
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), data2, data3, data4) 
VALUES (623456, 6, 6234, '基本陷阱', 5, 12345, 3);
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), data2, data3, data5, data7) 
VALUES (623457, 6, 6235, '延迟陷阱', 3, 12346, 10, 2);
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), data2, data3, data12, data15) 
VALUES (623458, 6, 6236, '高级陷阱', 4, 12347, 200, 300);
相关推荐
weixin_511222803 小时前
GameObject 常见类型详解 -- 傻瓜(GOOBER)
开源
卓码软件测评4 小时前
第三方软件测试公司:【Gatling基于Scala的开源高性能负载测试工具】
测试工具·开源·scala·压力测试·可用性测试·第三方软件测试
weixin_511222806 小时前
物品奖励系统介绍
开源
讓丄帝愛伱7 小时前
阿里开源 Java 诊断神器Arthas
java·linux·开发语言·开源
说私域7 小时前
微商本地化发展模式的借鉴与探讨——以开源AI智能名片链动2+1模式S2B2C商城小程序为例
人工智能·小程序·开源
诗仙&李白7 小时前
HEFrame.WpfUI :一个现代化的 开源 WPF UI库
ui·开源·wpf
javastart7 小时前
Oumi:开源的AI模型一站式开发平台,涵盖训练、评估和部署模型
人工智能·开源·aigc
叶庭云7 小时前
一文了解国产算子编程语言 TileLang,TileLang 对国产开源生态的影响与启示
开源·昇腾·开发效率·tilelang·算子编程语言·deepseek-v3.2·国产 ai 硬件
ajassi20008 小时前
开源 C# 快速开发(十四)进程--内存映射
开发语言·开源·c#