GameObject 常见类型详解 -- 按钮(BUTTON)

GAMEOBJECT_TYPE_BUTTON 是 TrinityCore 中用于创建按钮的 GameObject 类型

字段详细说明

字段索引 字段名称 数据类型 默认值 说明 可选值/范围
data0 startOpen enum false 按钮的初始状态 0 = 未按下, 1 = 已按下
data1 open uint32 0 按下按钮所需的锁类型ID 引用 Lock.db2,0表示无需钥匙
data2 autoClose uint32 3000 按钮自动恢复时间(毫秒) 0 - 2147483647
data3 linkedTrap uint32 0 关联的陷阱ID 引用 GameObjects.db2
data4 noDamageImmune enum false 按钮是否对伤害免疫 0 = 否, 1 = 是
data5 GiganticAOI enum false 是否具有巨大活动范围 0 = 否, 1 = 是
data6 openTextID uint32 0 按下按钮时显示的文本ID 引用 BroadcastText.db2
data7 closeTextID uint32 0 恢复按钮时显示的文本ID 引用 BroadcastText.db2
data8 requireLOS enum false 是否需要视线 0 = 否, 1 = 是
data9 conditionID1 uint32 0 按钮的使用条件ID 引用 PlayerCondition.db2
data10 InteractRadiusOverride uint32 0 交互半径覆盖值(码*100) 0 - 2147483647

状态控制字段

字段 说明
startOpen 定义按钮在游戏世界中的初始状态,按下状态的按钮会在一段时间后自动恢复(根据autoClose值)
autoClose 控制按钮按下后多长时间自动恢复,0表示永不自动恢复

访问控制字段

字段 说明
open 定义按下按钮所需的钥匙或条件,引用 Lock.db2 表中的记录
conditionID1 定义玩家使用按钮之前必须满足的条件,引用 PlayerCondition.db2 表

关联机制字段

字段 说明
linkedTrap 关联一个陷阱对象,当按钮被按下时会触发该陷阱

交互反馈字段

字段 说明
openTextID 按钮被按下时显示给玩家的文本消息ID
closeTextID 按钮恢复时显示给玩家的文本消息ID

游戏机制字段

字段 说明
noDamageImmune 控制按钮是否可以被攻击或法术影响
requireLOS 控制玩家是否需要与按钮保持视线接触才能交互
GiganticAOI 扩大按钮的活动范围,使远处玩家也能检测到

性能优化字段

字段 说明
InteractRadiusOverride 自定义按钮的交互距离,覆盖默认值

注意事项

  • 触发机制: 按钮主要用于触发事件

  • linkedTrap关联: 通过linkedTrap可以创建复杂的触发机制,按钮按下时会激活关联的陷阱

  • 视线要求: requireLOS字段可以增加游戏的交互真实感,玩家必须直视按钮才能按下

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

  • 平衡性: autoClose时间过短或过长都可能影响游戏体验

使用示例

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), data0, data1, data2) 
VALUES (223456, 1, 2234, '基本按钮', 0, 0, 3000);
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), data0, data1, data2, data3, data8) 
VALUES (223457, 1, 2235, '高级按钮', 0, 100, 5000, 50001, 1);
相关推荐
zlinear数据采集卡10 小时前
数据采集卡从入门到精通(10):采样率与分辨率的核心关系——反比律、架构分布与过采样
arm开发·嵌入式硬件·算法·fpga开发·架构·开源
m4Rk_11 小时前
【论文阅读】Agent 记忆机制(41):Agentic Plan Caching——将历史执行轨迹转化为可复用的计划记忆
论文阅读·人工智能·学习·开源·github
zlinear数据采集卡11 小时前
数据采集卡从入门到精通(9):分辨率与精度——16位卡不等于1/65536的精度
开发语言·数据库·fpga开发·开源·c#
猿究院--Cu-Sn合金12 小时前
DeepSeek Harness 社区项目介绍:计费、Git 检查与 Windows 启动器
开源
小小龙学IT14 小时前
oneTBB 开源并行编程库深度解析:从工作窃取调度器到 flow graph 实战
c++·开源
江湖有缘14 小时前
5款开源wiki知识库工具,支持Docker快速部署!
docker·容器·开源
sbjdhjd14 小时前
企业站 SQL 注入实战:PCRE 正则回溯绕过关键词 WAF 完整实战 | 进阶02
sql·安全·web安全·网络安全·ai·开源·php
m4Rk_15 小时前
【论文阅读】Agent 记忆机制(40):HiAgent——通过子目标级记忆提升长程任务执行能力
论文阅读·人工智能·学习·开源·github
也非非也17 小时前
DeepSeek 又开源了一个新东西——DeepSeek Harness
人工智能·开源·agi·deepseek·harness·dsh
小白跃升坊19 小时前
阿里云通义千问正式开源 Qwen3.8-27B:性能与成本的黄金平衡点
开源·大模型·通义千问·qwen·qwen3.8-27b