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);
相关推荐
zzzll11119 小时前
RAGFlow:开源可检索增强生成框架深度解析
开源
sbjdhjd10 小时前
大三网安秋招核心学习前言(AI 安全 + Web 漏洞 + 内网渗透全考点)
人工智能·网络协议·学习·安全·网络安全·开源·php
云空10 小时前
《完整开源魔方项目分类清单(按用途/语言划分,含GitHub地址、核心能力、适用场景)》
开源·编程·魔方
NutShell Wang10 小时前
国产全模态开源潮:从语言模型到视频模型,中国开源生态再升级
人工智能·语言模型·开源·大模型·音视频·多模态·vibe coding
Albart57511 小时前
【玩转 AtomCode】替代Claude Code!开源多模型免费AI编码Agent深度实测教程
人工智能·rust·开源·atomcode·多模型ai
kaixin_啊啊12 小时前
GitHub 开源 Qwen-MM-Plugins 小白入门,给 Codex 装上多模态工具箱
开源·github
晴殇i12 小时前
最近在 Github 名字叫“马尾辫”,这个真的很有趣看到头像
前端·后端·开源
fthux1 天前
装闭 RenoPit 源码解析(05):FastAPI与Celery如何执行AI装修分析
人工智能·ai·开源·github·open source·renopit
冬奇Lab1 天前
开源项目第183期:Ontology Playground — 微软出品的本体论可视化学习工具,零后端、浏览器直接运行
人工智能·microsoft·开源
NocoBase1 天前
如何用 AI 和 NocoBase 搭建一套可投入生产的 CRM
低代码·ai·开源·无代码·无代码开发平台