📊 表结构

字段名 数据类型 默认值 说明
guid INT UNSIGNED 自增 生物实例GUID (主键)
id MEDIUMINT UNSIGNED 0 生物模板ID,对应creature_template.entry
map SMALLINT UNSIGNED 0 地图ID
zoneId SMALLINT UNSIGNED 0 区域ID
areaId SMALLINT UNSIGNED 0 子区域ID
spawnMask TINYINT UNSIGNED 1 刷新掩码,控制副本难度刷新
phaseMask INT UNSIGNED 1 相位掩码,控制可见相位
modelid MEDIUMINT UNSIGNED 0 模型ID,0则使用模板默认
equipment_id MEDIUMINT 0 装备ID,0则使用模板默认
position_x FLOAT 0 X坐标
position_y FLOAT 0 Y坐标
position_z FLOAT 0 Z坐标
orientation FLOAT 0 朝向(弧度)
spawntimesecs INT UNSIGNED 120 重生时间(秒)
wander_distance FLOAT 0 游荡距离
currentwaypoint MEDIUMINT UNSIGNED 0 当前路径点
curhealth INT UNSIGNED 1 当前生命值
curmana INT UNSIGNED 0 当前法力值
MovementType TINYINT UNSIGNED 0 移动类型
npcflag INT UNSIGNED 0 NPC标志(覆盖模板)
unit_flags INT UNSIGNED 0 单位标志(覆盖模板)
dynamicflags INT UNSIGNED 0 动态标志(覆盖模板)
ScriptName VARCHAR(64) '' 脚本名称(覆盖模板)
VerifiedBuild SMALLINT 0 验证版本

🔑 核心字段详解

🆔 guid - 生物实例GUID

详细说明:生物实例的唯一标识符,自动递增。每个生物实例都有独立的GUID。 取值范围:1 - 4294967295
  • 主键,必须唯一
  • 用于在游戏中唯一标识一个生物实例
  • 与creature_template.entry不同,GUID是实例ID

📋 id - 生物模板ID

详细说明:关联到creature_template表的entry字段,决定生物的基本属性。 取值范围:对应creature_template.entry
  • 必须对应creature_template中存在的entry
  • 同一模板可以有多个刷新实例
  • 决定生物的名称、等级、阵营等

🗺️ map - 地图ID

详细说明:生物所在的地图ID,对应Map.dbc。
  • 0 - 东部王国
  • 1 - 卡利姆多
  • 530 - 外域
  • 571 - 诺森德
  • 33 - 影牙城堡
  • 34 - 死亡矿井
  • 36 - 黑石深渊

🎭 spawnMask - 刷新掩码

详细说明:控制生物在哪些副本难度下刷新,位掩码值。
  • 1 - 普通10人
  • 2 - 普通25人
  • 4 - 英雄10人
  • 8 - 英雄25人
  • 15 (1+2+4+8) - 所有难度

👁️ phaseMask - 相位掩码

详细说明:控制生物在哪些相位中可见。
  • 1 - 默认相位(所有玩家可见)
  • 2 - 相位1
  • 4 - 相位2
  • 255 - 所有相位可见

📍 position_x/y/z - 坐标位置

详细说明:生物在地图上的确切位置坐标。
  • position_x: X轴坐标
  • position_y: Y轴坐标
  • position_z: Z轴坐标(高度)
  • 可通过游戏GM命令获取: .gps

🔄 orientation - 朝向

详细说明:生物的朝向角度,以弧度表示(0-2π)。
  • 0 - 朝北
  • π/2 (1.57) - 朝东
  • π (3.14) - 朝南
  • 3π/2 (4.71) - 朝西

⏱️ spawntimesecs - 重生时间

详细说明:生物死亡后的重生时间,以秒为单位。
  • 120 - 2分钟(普通怪物)
  • 300 - 5分钟
  • 3600 - 1小时(稀有怪物)
  • 86400 - 1天(世界BOSS)
  • 0 - 不重生

🚶 MovementType - 移动类型

详细说明:控制生物的移动行为。
  • 0 - 静止不动
  • 1 - 随机游荡(配合wander_distance)
  • 2 - 路径移动(配合waypoint_data)

🎯 wander_distance - 游荡距离

详细说明:当MovementType=1时,定义随机游荡的最大距离。
  • 0 - 不游荡
  • 5 - 5码范围内游荡
  • 10 - 10码范围内游荡

💡 实际案例

普通怪物 在艾尔文森林刷新狗头人

id=1260(狗头人矿工), map=0(东部王国), MovementType=1(随机游荡)

-- 刷新狗头人矿工 INSERT INTO creature VALUES( 0, 1260, 0, 0, 0, 1, 1, 0, 0, -9449.06, 64.8392, 56.3581, 1.57, 300, 5, 0, 1, 0, 1, 0, 0, 0, 0, '', 0 );

NPC 在暴风城刷新银行NPC

id=100000(自定义NPC), map=0, phaseMask=1, MovementType=0(静止)

-- 刷新银行NPC INSERT INTO creature VALUES( 0, 100000, 0, 0, 0, 1, 1, 0, 0, -8925.47, 560.23, 93.85, 3.14, 120, 0, 0, 1, 0, 0, 0, 0, 0, 0, '', 0 );

副本BOSS 在影牙城堡刷新BOSS

id=100003(自定义BOSS), map=33(影牙城堡), spawnMask=15(所有难度)

-- 刷新副本BOSS INSERT INTO creature VALUES( 0, 100003, 33, 0, 0, 15, 1, 0, 0, -234.56, 78.90, 12.34, 0, 86400, 0, 0, 1, 0, 0, 0, 0, 0, 0, 'boss_shadowlord', 0 );

路径移动 创建巡逻怪物

MovementType=2(路径移动), 需配合waypoint_data表

-- 刷新巡逻怪物 INSERT INTO creature VALUES( 0, 100010, 0, 0, 0, 1, 1, 0, 0, -9000.0, 500.0, 50.0, 0, 300, 0, 1, 1, 0, 2, 0, 0, 0, 0, '', 0 );

相位 创建相位任务怪物

phaseMask=2(只在相位1可见), 需配合条件或任务

-- 刷新相位怪物 INSERT INTO creature VALUES( 0, 100020, 0, 0, 0, 1, 2, 0, 0, -8500.0, 600.0, 45.0, 1.57, 300, 5, 0, 1, 0, 1, 0, 0, 0, 0, '', 0 );

⚡ 快速参考

常用地图ID

0东部王国
1卡利姆多
530外域
571诺森德
33影牙城堡

刷新掩码

1普通10人
2普通25人
4英雄10人
8英雄25人
15所有难度

移动类型

0静止
1随机游荡
2路径移动

朝向(弧度)

0朝北
1.57朝东
3.14朝南
4.71朝西

🔗 相关表格

❓ 常见问题

Q1: 如何获取坐标位置?
在游戏中使用GM命令 .gps 可获取当前位置坐标。
Q2: 添加生物后需要重启服务器吗?
不需要重启,使用命令 .reload creature 重新加载即可。
Q3: 如何让生物不重生?
设置 spawntimesecs = 0 即可。
Q4: guid字段填什么?
填0即可,数据库会自动分配新的GUID。