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);
相关推荐
mortimer2 小时前
faster-whisper本地转录简单方案
开源·github·openai
OpenCSG4 小时前
CSGHub v1.12.0开源版本更新
人工智能·开源·opencsg·csghub
兆龙电子单片机设计4 小时前
【STM32项目开源】STM32单片机物联网门禁控制系统
stm32·单片机·物联网·开源·自动化
ApacheSeaTunnel4 小时前
结项报告完整版 | Apache SeaTunnel支持metalake开发
大数据·开源·数据集成·seatunnel·数据同步
白鲸开源4 小时前
结项报告完整版:Apache SeaTunnel 支持 Flink 引擎 Schema Evolution 功能
大数据·flink·开源
软件供应链安全指南6 小时前
“基于‘多模态SCA+全周期协同’的中间件开源风险治理实践”荣获OSCAR开源+安全及风险治理案例
安全·中间件·开源
CoderJia程序员甲6 小时前
GitHub 热榜项目 - 日榜(2025-11-11)
ai·开源·大模型·github·ai教程
CoderJia程序员甲1 天前
GitHub 热榜项目 - 日榜(2025-11-07)
ai·开源·大模型·github·ai教程
HelloGitHub1 天前
别犹豫,用过才知道 AI 还能这样玩
开源·github