表概述

playercreateinfo表是角色创建系统的核心表,定义了每种种族-职业组合的出生信息。当玩家创建新角色时,系统查询此表获取该角色应该从哪个地图哪个坐标出生。

主键为 (race, class),每条记录对应一种种族和职业组合的出生配置。

表结构

字段名数据类型默认值说明
raceTINYINT UNSIGNED0种族ID
classTINYINT UNSIGNED0职业ID
mapSMALLINT UNSIGNED0出生地图ID
zoneINT UNSIGNED0出生区域ID
position_xFLOAT0出生点X坐标
position_yFLOAT0出生点Y坐标
position_zFLOAT0出生点Z坐标(高度)
orientationFLOAT0出生朝向角度

重要字段详解

race / class (种族-职业组合)

联合主键,定义每种有效的种族-职业组合的出生信息。不同种族有不同的出生区域:

  • 人类(race=1) → 出生在艾尔文森林(map=0, zone=12)
  • 兽人(race=2) → 出生在杜隆塔尔(map=1, zone=14)
  • 矮人(race=3) → 出生在丹莫罗(map=0, zone=1)
  • 暗夜精灵(race=4) → 出生在泰达希尔(map=1, zone=141)
  • 亡灵(race=5) → 出生在提瑞斯法林地(map=0, zone=85)
  • 牛头人(race=6) → 出生在莫高雷(map=1, zone=215)
  • 侏儒(race=7) → 出生在丹莫罗(map=0, zone=1)
  • 巨魔(race=8) → 出生在杜隆塔尔(map=1, zone=14)
  • 血精灵(race=10) → 出生在永歌森林(map=530, zone=3430)
  • 德莱尼(race=11) → 出生在秘蓝岛(map=530, zone=3524)
zone (出生区域)

指定角色出生的具体区域编号。zone不同于map,一个map(如东部王国=0)包含多个zone(如艾尔文森林=12, 丹莫罗=1)。

position_x/y/z & orientation (出生位置)

精确定义角色创建后在世界中出现的坐标位置和朝向。每个种族-职业组合的出生点通常对应该种族的新手村区域。

实战案例

查询所有种族-职业组合的出生信息:
SELECT race, class, map, zone, position_x, position_y, position_z
FROM playercreateinfo
ORDER BY race, class;
查询联盟阵营所有角色的出生信息:
SELECT race, class, map, zone
FROM playercreateinfo
WHERE race IN (1, 3, 4, 7, 11)
ORDER BY race, class;
修改人类战士的出生位置:
UPDATE playercreateinfo
SET position_x = -8949.95, position_y = -132.93, position_z = 83.53, orientation = 0
WHERE race = 1 AND class = 1;

常见问题

Q: 创建角色时无法选择某职业,如何排查?

检查playercreateinfo表中是否存在该(race, class)组合。如果缺少记录,该种族将无法创建该职业的角色。

Q: 如何修改所有角色的出生位置?

更新playercreateinfo表中对应race-class组合的坐标值即可。配合playercreateinfo_item/action/skills表可以完全自定义角色创建配置。