gossip_menu_option表

概述

gossip_menu_option表是AzerothCore中控制NPC对话选项的核心表格。它定义了玩家在与NPC对话时可以选择的各种选项,如"我想要训练"、"我想要购买物品"等。这个表格与gossip_menu表配合使用,构成完整的对话系统。

表格结构

字段名 数据类型 默认值 说明
MenuID SMALLINT UNSIGNED 0 对话菜单ID,对应gossip_menu表
OptionID SMALLINT UNSIGNED 0 选项ID,同一菜单内的唯一标识
OptionIcon TINYINT UNSIGNED 0 选项图标类型
OptionText TEXT NULL 选项显示的文本内容
OptionBroadcastTextID MEDIUMINT 0 广播文本ID,用于多语言支持
OptionType TINYINT UNSIGNED 0 选项类型,定义点击后的行为
OptionNpcFlag INT UNSIGNED 0 NPC标志,控制选项显示条件
ActionMenuID MEDIUMINT UNSIGNED 0 点击后跳转的菜单ID
ActionPoiID MEDIUMINT UNSIGNED 0 兴趣点ID,用于地图标记
BoxCoded TINYINT UNSIGNED 0 是否需要输入确认码
BoxMoney INT UNSIGNED 0 需要支付的金币数量
BoxText TEXT NULL 确认框显示的文本
BoxBroadcastTextID MEDIUMINT 0 确认框广播文本ID
ConditionID MEDIUMINT UNSIGNED 0 显示条件ID
VerifiedBuild SMALLINT 1 验证版本号

字段详细说明

OptionIcon (选项图标)

定义选项前显示的图标类型:

OptionType (选项类型)

定义点击选项后的行为:

使用示例

添加商人选项

INSERT INTO gossip_menu_option (MenuID, OptionID, OptionIcon, OptionText, OptionType, OptionNpcFlag)
VALUES (1000, 0, 1, '我想要购买物品。', 1, 128);

添加训练师选项

INSERT INTO gossip_menu_option (MenuID, OptionID, OptionIcon, OptionText, OptionType, OptionNpcFlag)
VALUES (1001, 0, 2, '我想要训练。', 2, 16);

添加需要确认的选项

INSERT INTO gossip_menu_option (MenuID, OptionID, OptionIcon, OptionText, OptionType, BoxMoney, BoxText)
VALUES (1002, 0, 6, '我想要重置天赋。', 6, 10000, '重置天赋需要花费1金币,确定要继续吗?');

常见问题

如何查看某个菜单的所有选项?

SELECT * FROM gossip_menu_option
WHERE MenuID = 菜单ID
ORDER BY OptionID;

修改对话选项后需要重启服务器吗?

.reload gossip_menu_option

相关表格