玩家创建物品表定义了新创建的玩家角色在进入游戏时自动获得的物品。这些物品包括初始装备、工具、消耗品等,为不同种族和职业的新角色提供基础的游戏物品。
字段名 | 类型 | 描述 |
---|---|---|
race | tinyint unsigned | 种族ID |
详细说明:指定这个物品适用的种族。对应CharRaces.dbc文件中的种族ID,决定了哪个种族的新角色会获得这个物品。
取值范围:1 - 255 (tinyint unsigned的范围) 常用种族ID:
注意:必须与playercreateinfo表中的race字段对应 |
||
class | tinyint unsigned | 职业ID |
详细说明:指定这个物品适用的职业。对应CharClasses.dbc文件中的职业ID,与种族ID组合确定具体的角色类型。
取值范围:1 - 255 (tinyint unsigned的范围) 常用职业ID:
组合限制:种族和职业的组合必须是游戏中允许的有效组合 |
||
itemid | mediumint unsigned | 物品ID |
详细说明:指定要给予新角色的物品ID。对应item_template表中的entry字段,必须是有效的物品ID。
取值范围:1 - 16777215 (mediumint unsigned的范围) 常见物品类型:
示例物品ID:
注意:确保物品ID在item_template表中存在且适合新手使用 |
||
amount | tinyint unsigned | 物品数量 |
详细说明:指定给予物品的数量。对于可堆叠的物品,可以给予多个;对于装备类物品,通常为1。
取值范围:1 - 255 (tinyint unsigned的范围) 数量设置建议:
堆叠限制:
平衡考虑:给予适量的物品,既能帮助新手又不会破坏游戏平衡 |
||
Note | varchar(255) | 备注说明 |
详细说明:可选的备注字段,用于记录这个物品配置的说明、用途或特殊注意事项。这个字段不影响游戏功能,仅用于开发和维护时的参考。
字符限制:最大255个字符,可以为空(NULL) 建议用途:
示例备注:
注意:虽然是可选字段,但建议填写有意义的备注便于维护 |
当玩家创建新角色时,系统会:
-- 为人类战士配置初始物品
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;