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);
相关推荐
欧阳天羲10 分钟前
【开源资料】AI激光灭蚊机器人|YOLOv8数据集标注模板+完整训练配置文件一键拿走(适配ESP32-S3/树莓派双版本)
人工智能·机器人·开源
明略科技4 小时前
什么是 RAG?为什么光靠大模型的记忆力远远不够
开源·agent
tudoSearcher8 小时前
手机、平板、电脑同时控制Claude Code / Codex ?:Paseo实战指南
网络·开源·开源软件·个人开发·ai编程
lipku10 小时前
LiveTalking 更新:集成 vLLM-Omni TTS服务
python·开源·数字人·vllm·实时数字人
Par@ish10 小时前
关于开源GNU通用许可(GPLv3)详细解说
web安全·开源·开源协议
SeaTunnel12 小时前
87 个 PR 迭代复盘|Apache SeaTunnel 5 月版本重点更新解读
大数据·数据库·开源·apache·seatunnel
DolphinScheduler社区12 小时前
实战演示 | 基于 Apache DolphinScheduler 与 Apache SeaTunnel 实现 MySQL 到 Doris 离线定时增量同步
数据库·mysql·开源·apache·海豚调度·大数据工作流调度
SL-staff13 小时前
Vue3私有化AI白板落地实战|解决政企项目智能绘图合规难题(可直接复用源码)
人工智能·低代码·开源·vue3·白板·jvs规则引擎·jvs-draw
国产化创客13 小时前
嵌入式视觉完整技术体系--ESP32/K230/RDK-X5/树莓派四层架构全解析
嵌入式硬件·物联网·架构·开源·智能硬件
爱上纯净的蓝天13 小时前
AtomCode 源码编译与二次开发入门
开源·二次开发·源码编译·atomcode