playercreateinfo_item - 玩家创建物品表

玩家创建物品表定义了新创建的玩家角色在进入游戏时自动获得的物品。这些物品包括初始装备、工具、消耗品等,为不同种族和职业的新角色提供基础的游戏物品。

表结构

字段名 类型 描述
race tinyint unsigned 种族ID
详细说明:指定这个物品适用的种族。对应CharRaces.dbc文件中的种族ID,决定了哪个种族的新角色会获得这个物品。
取值范围:1 - 255 (tinyint unsigned的范围)
常用种族ID:
  • 1 - 人类 (Human)
  • 2 - 兽人 (Orc)
  • 3 - 矮人 (Dwarf)
  • 4 - 暗夜精灵 (Night Elf)
  • 5 - 亡灵 (Undead)
  • 6 - 牛头人 (Tauren)
  • 7 - 侏儒 (Gnome)
  • 8 - 巨魔 (Troll)
  • 10 - 血精灵 (Blood Elf)
  • 11 - 德莱尼 (Draenei)

注意:必须与playercreateinfo表中的race字段对应
class tinyint unsigned 职业ID
详细说明:指定这个物品适用的职业。对应CharClasses.dbc文件中的职业ID,与种族ID组合确定具体的角色类型。
取值范围:1 - 255 (tinyint unsigned的范围)
常用职业ID:
  • 1 - 战士 (Warrior)
  • 2 - 圣骑士 (Paladin)
  • 3 - 猎人 (Hunter)
  • 4 - 盗贼 (Rogue)
  • 5 - 牧师 (Priest)
  • 6 - 死亡骑士 (Death Knight)
  • 7 - 萨满 (Shaman)
  • 8 - 法师 (Mage)
  • 9 - 术士 (Warlock)
  • 11 - 德鲁伊 (Druid)

组合限制:种族和职业的组合必须是游戏中允许的有效组合
itemid mediumint unsigned 物品ID
详细说明:指定要给予新角色的物品ID。对应item_template表中的entry字段,必须是有效的物品ID。
取值范围:1 - 16777215 (mediumint unsigned的范围)
常见物品类型:
  • 武器 - 初始武器,如新手剑、法杖等
  • 护甲 - 初始装备,如布甲、皮甲、锁甲等
  • 消耗品 - 食物、水、药剂等
  • 工具 - 采矿锄、钓鱼竿、剥皮刀等
  • 任务物品 - 特定的起始任务物品
  • 其他 - 背包、弹药、试剂等

示例物品ID:
  • 25 - 破旧的剑
  • 2362 - 破旧的皮甲
  • 117 - 干硬的面包
  • 159 - 清凉的泉水

注意:确保物品ID在item_template表中存在且适合新手使用
amount tinyint unsigned 物品数量
详细说明:指定给予物品的数量。对于可堆叠的物品,可以给予多个;对于装备类物品,通常为1。
取值范围:1 - 255 (tinyint unsigned的范围)
数量设置建议:
  • 装备类 - 通常设置为1,如武器、护甲
  • 消耗品 - 可设置为多个,如20个面包、20瓶水
  • 弹药 - 猎人的箭矢可设置为200-1000
  • 试剂 - 法师的试剂可设置为20-50
  • 工具 - 通常设置为1,如采矿锄、钓鱼竿

堆叠限制:
  • 不能超过物品的最大堆叠数量
  • 如果超过堆叠限制,会分成多个堆叠
  • 装备类物品通常不可堆叠,amount应为1

平衡考虑:给予适量的物品,既能帮助新手又不会破坏游戏平衡
Note varchar(255) 备注说明
详细说明:可选的备注字段,用于记录这个物品配置的说明、用途或特殊注意事项。这个字段不影响游戏功能,仅用于开发和维护时的参考。
字符限制:最大255个字符,可以为空(NULL)
建议用途:
  • 物品用途 - 说明为什么给予这个物品
  • 版本信息 - 记录添加或修改的版本
  • 特殊说明 - 记录特殊的配置原因
  • 维护信息 - 记录修改人和修改时间

示例备注:
  • "初始武器 - 所有近战职业必需"
  • "种族特色食物 - 体现文化差异"
  • "3.3.5版本新增 - 提升新手体验"
  • "临时配置 - 待后续调整"

注意:虽然是可选字段,但建议填写有意义的备注便于维护

功能说明

主要用途

工作机制

当玩家创建新角色时,系统会:

  1. 根据选择的种族和职业查找对应的物品记录
  2. 检查物品是否存在且有效
  3. 将指定数量的物品添加到角色背包
  4. 如果是装备类物品,可能会自动装备
  5. 记录物品获得日志

配置示例

人类战士的基础物品

-- 为人类战士配置初始物品
INSERT INTO playercreateinfo_item (race, class, itemid, amount, Note) VALUES
(1, 1, 25, 1, '初始武器 - 破旧的剑'),
(1, 1, 2362, 1, '初始护甲 - 破旧的皮甲'),
(1, 1, 117, 20, '基础食物 - 干硬的面包'),
(1, 1, 159, 20, '基础饮料 - 清凉的泉水'),
(1, 1, 2504, 1, '初始盾牌 - 磨损的圆盾');

暗夜精灵猎人的配置

-- 为暗夜精灵猎人配置物品
INSERT INTO playercreateinfo_item (race, class, itemid, amount, Note) VALUES
(4, 3, 2504, 1, '初始武器 - 磨损的短弓'),
(4, 3, 2512, 200, '初始弹药 - 粗制箭矢'),
(4, 3, 6948, 1, '炉石'),
(4, 3, 117, 20, '基础食物'),
(4, 3, 159, 20, '基础饮料'),
(4, 3, 2101, 1, '剥皮刀 - 猎人专用工具');

查询示例

查看特定种族职业的物品配置

SELECT pci.*, it.name as item_name, it.Quality, it.class as item_class
FROM playercreateinfo_item pci
JOIN item_template it ON pci.itemid = it.entry
WHERE pci.race = 1 AND pci.class = 1  -- 人类战士
ORDER BY it.class, it.subclass;

统计各职业的初始物品数量

SELECT class, COUNT(*) as item_count, SUM(amount) as total_items
FROM playercreateinfo_item
GROUP BY class
ORDER BY class;

查找所有职业都有的通用物品

SELECT itemid, it.name, COUNT(DISTINCT class) as class_count
FROM playercreateinfo_item pci
JOIN item_template it ON pci.itemid = it.entry
GROUP BY itemid, it.name
HAVING class_count = (SELECT COUNT(DISTINCT class) FROM playercreateinfo_item)
ORDER BY itemid;

注意事项

⚠️ 重要提醒