ItemExtendedCost.dbc
物品扩展费用表(物品的非金钱出售单位),定义了购买物品时除了金币之外需要的额外代价。根据 CHM 中文详解,第1列为编号(填在数据库 npc_vendor 表的 ExtendedCost 字段里),包含需要荣誉点数、需要竞技场点数、最小竞技场点数、需要物品(5种)、需要物品数量(6个数量)、需要个人竞技场胜率等字段。
文件概述
ItemExtendedCost.dbc 是商人系统的核心扩展文件。在 NPC 商人的出售列表中,每个物品可以关联一个扩展费用 ID (ExtendedCost),使购买该物品不仅需要金币,还需要荣誉点、竞技场点、竞技场等级或其他物品作为交换。根据 CHM 详解,第1列的编号填在数据库 npc_vendor 表里的 ExtendedCost 字段中,作为物品的非金钱出售单位。这是实现 PvP 装备、牌子兑换装备等功能的关键机制。
数据库对应表:world.itemextendedcost_dbc。在 npc_vendor 表的 ExtendedCost 字段中引用此 ID。
列结构
| 序号 | 字段名 | 类型 | 说明 |
|---|---|---|---|
| 1 | ID | int | 编号(CHM:编号,填在数据库 npc_vendor 表里的 ExtendedCost 字段里)。扩展费用唯一ID (主键),作为物品的非金钱出售单位 |
| 2 | HonorPoints | int | 需要荣誉点数(CHM:需要荣誉点数) |
| 3 | ArenaPoints | int | 需要竞技场点数(CHM:需要竞技场点数) |
| 4 | ArenaBracket | int | 竞技场槽约束(CHM:竞技场槽约束,最小竞技场点数)。竞技场段位限制 |
| 5-9 | ItemID_1 ~ ItemID_5 | int | 需要物品(CHM:需要物品,参考 item_template 表的 entry 字段)。需要消耗的物品ID(1-5种) |
| 10-15 | ItemCount_1 ~ ItemCount_5 | int | 需要物品数量(CHM:需要物品数量,共6个数量字段)。对应每种物品需要的数量 |
| 16 | RequiredArenaRating | int | 需要个人竞技场胜率(CHM:需要个人竞技场胜率)。所需的竞技场个人等级 |
重要字段详解
典型费用组合示例
| 费用类型 | 示例ID | HonorPoints | ArenaPoints | 物品 | Rating |
|---|---|---|---|---|---|
| 纯荣誉装 | 1 | 19600 | 0 | - | 0 |
| 荣誉+牌子 | 2 | 8500 | 0 | 征服纹章x1 | 0 |
| 竞技场装(低段) | 3 | 0 | 700 | - | 0 |
| 竞技场装(肩膀) | 4 | 0 | 1350 | - | 2200 |
| 竞技场装(武器) | 5 | 0 | 3400 | - | 1800 |
| 纯物品兑换 | 6 | 0 | 0 | 勇气纹章x50 | 0 |
竞技场槽约束 (ArenaBracket)
CHM 说明该列为"最小竞技场点数",限制只有在特定竞技场等级中达标的玩家才能购买:
CHM 说明该列为"最小竞技场点数",限制只有在特定竞技场等级中达标的玩家才能购买:
- 0 无限制 - 可从任何段位获得
- 1 2v2 - 需要2v2竞技场达到条件
- 2 3v3 - 需要3v3竞技场达到条件
- 3 5v5 - 需要5v5竞技场达到条件
需要物品(ItemID_1~5)和数量(ItemCount_1~5)
CHM 详解指出需要物品参照 item_template 表的 entry 字段,数量字段有6个(对应5种物品的额外一个计数维度)。最多支持5种不同的物品消耗,可组合使用实现复杂的兑换条件。
CHM 详解指出需要物品参照 item_template 表的 entry 字段,数量字段有6个(对应5种物品的额外一个计数维度)。最多支持5种不同的物品消耗,可组合使用实现复杂的兑换条件。
需要个人竞技场胜率 (RequiredArenaRating)
CHM 将该列描述为"需要个人竞技场胜率",控制竞技场等级门槛。常见阈值:
CHM 将该列描述为"需要个人竞技场胜率",控制竞技场等级门槛。常见阈值:
- 1250 - 低阶装备 (手套/项链)
- 1600 - 中阶装备 (头盔/腿部/戒指)
- 1800 - 高阶装备 (武器)
- 2000-2200 - 顶级装备 (肩膀) 及赛季称号奖励
使用技巧
查询某个商人的所有扩展费用:
SELECT nv.item, nv.ExtendedCost, iec.HonorPoints, iec.ArenaPoints,
iec.ItemID_1, iec.ItemCount_1
FROM npc_vendor nv
JOIN itemextendedcost_dbc iec ON nv.ExtendedCost = iec.ID
WHERE nv.entry = 12795; -- 某商人NPC的entry
创建新的牌子兑换费用:
INSERT INTO itemextendedcost_dbc (ID, HonorPoints, ArenaPoints,
ItemID_1, ItemCount_1)
VALUES (9999, 0, 0, 12345, 10);
-- 然后在 npc_vendor 中使用 ExtendedCost=9999
- 组合费用:可以同时设置 HonorPoints + ArenaPoints + 物品消耗,实现复合兑换条件
- 最多5种物品:ItemID_1~5 和 ItemCount_1~5 最多支持5种不同的物品消耗
- npc_vendor 关联:在 npc_vendor 表中设置 ExtendedCost 字段引用此ID(CHM详解确认此用法)
- 注意:修改后需重启服务器或重载 itemextendedcost_dbc 表