📖 creature_template 生物模板表完全指南
基于 AzerothCore 官方数据库 · 包含完整字段说明与实际案例
📋 什么是 creature_template 表?
creature_template 表是AzerothCore世界库中最核心的表格之一,定义了游戏中所有生物类型的基本信息。
🎯 核心概念:这个表定义了NPC、怪物、宠物等生物的属性和行为,是游戏世界的基础数据表。
🆔 生物标识
entry、difficulty_entry系列、KillCredit系列
📊 基础属性
minlevel、maxlevel、exp、faction、unit_class
⚔️ 战斗属性
DamageModifier、BaseAttackTime、RangeAttackTime、HealthModifier
🏷️ 显示信息
name、subname、IconName、modelid系列
📊 表结构
| 字段名 | 数据类型 | 默认值 | 说明 |
|---|---|---|---|
| entry | MEDIUMINT UNSIGNED | 0 | 生物模板ID (主键) |
| difficulty_entry_1 | MEDIUMINT UNSIGNED | 0 | 25人普通难度模板ID |
| difficulty_entry_2 | MEDIUMINT UNSIGNED | 0 | 10人英雄难度模板ID |
| difficulty_entry_3 | MEDIUMINT UNSIGNED | 0 | 25人英雄难度模板ID |
| KillCredit1 | INT UNSIGNED | 0 | 击杀奖励生物ID1 |
| KillCredit2 | INT UNSIGNED | 0 | 击杀奖励生物ID2 |
| name | CHAR(100) | '' | 生物名称 |
| subname | CHAR(100) | NULL | 生物子名称/称号 |
| IconName | CHAR(100) | NULL | 图标名称 |
| gossip_menu_id | MEDIUMINT UNSIGNED | 0 | 对话菜单ID |
| minlevel | TINYINT UNSIGNED | 1 | 最小等级 |
| maxlevel | TINYINT UNSIGNED | 1 | 最大等级 |
| exp | SMALLINT | 0 | 扩展版本标识 |
| faction | SMALLINT UNSIGNED | 0 | 阵营ID |
| npcflag | INT UNSIGNED | 0 | NPC功能标志 |
| speed_walk | FLOAT | 1.0 | 行走速度 |
| speed_run | FLOAT | 1.14286 | 奔跑速度 |
| speed_swim | FLOAT | 1.0 | 游泳速度 |
| speed_flight | FLOAT | 1.0 | 飞行速度 |
| detection_range | FLOAT | 20.0 | 侦测范围 |
| scale | FLOAT | 1.0 | 模型缩放比例 |
| rank | TINYINT UNSIGNED | 0 | 生物等级类型 |
| dmgschool | TINYINT | 0 | 伤害类型 (0=物理, 1=神圣, 2=火焰, 3=自然, 4=冰霜, 5=暗影, 6=奥术) |
| DamageModifier | FLOAT | 1.0 | 伤害倍数 (1.0=100%伤害) |
| BaseAttackTime | INT UNSIGNED | 0 | 近战攻击间隔 (毫秒) |
| RangeAttackTime | INT UNSIGNED | 0 | 远程攻击间隔 (毫秒) |
| BaseVariance | FLOAT | 1.0 | 近战伤害浮动系数 |
| RangeVariance | FLOAT | 1.0 | 远程伤害浮动系数 |
| unit_class | TINYINT UNSIGNED | 0 | 职业类型 |
| unit_flags | INT UNSIGNED | 0 | 单位标志 (控制NPC可交互性、可攻击性等) |
| unit_flags2 | INT UNSIGNED | 0 | 单位标志2 (额外标志) |
| dynamicflags | INT UNSIGNED | 0 | 动态标志 (生物可见状态等) |
| family | TINYINT UNSIGNED | 0 | 生物家族类型 |
| trainer_type | TINYINT | 0 | 训练师类型 (0=职业, 1=骑术, 2=专业) |
| trainer_spell | INT UNSIGNED | 0 | 训练师关联法术ID |
| trainer_class | TINYINT UNSIGNED | 0 | 训练师职业限制 |
| trainer_race | TINYINT UNSIGNED | 0 | 训练师种族限制 |
| type | TINYINT UNSIGNED | 0 | 生物类型 |
| type_flags | INT UNSIGNED | 0 | 类型标志 |
| lootid | MEDIUMINT UNSIGNED | 0 | 掉落模板ID |
| pickpocketloot | MEDIUMINT UNSIGNED | 0 | 偷窃掉落ID |
| skinloot | MEDIUMINT UNSIGNED | 0 | 剥皮掉落ID |
| PetSpellDataId | INT UNSIGNED | 0 | 宠物法术数据ID |
| VehicleId | INT UNSIGNED | 0 | 载具ID |
| mingold | INT UNSIGNED | 0 | 最少掉落金币 (铜币) |
| maxgold | INT UNSIGNED | 0 | 最多掉落金币 (铜币) |
| AIName | CHAR(64) | '' | AI脚本名称 |
| MovementType | TINYINT UNSIGNED | 0 | 移动类型 |
| HoverHeight | FLOAT | 0 | 悬浮高度 |
| HealthModifier | FLOAT | 1.0 | 生命值倍数 (基于等级表计算后的倍率) |
| ManaModifier | FLOAT | 1.0 | 法力值倍数 |
| ArmorModifier | FLOAT | 1.0 | 护甲值倍数 |
| ExperienceModifier | FLOAT | 1.0 | 经验值倍数 |
| RacialLeader | TINYINT UNSIGNED | 0 | 种族领袖标志 (0=否, 1=是) |
| movementId | INT UNSIGNED | 0 | 移动模板ID |
| RegenHealth | TINYINT UNSIGNED | 1 | 是否自动回血 (0=否, 1=是) |
| mechanic_immune_mask | INT UNSIGNED | 0 | 机制免疫掩码 |
| spell_school_immune_mask | INT UNSIGNED | 0 | 法术系免疫掩码 |
| flags_extra | INT UNSIGNED | 0 | 额外标志 (控制特殊行为如无法被选中等) |
| ScriptName | CHAR(64) | '' | 脚本名称 (C++脚本绑定) |
| VerifiedBuild | INT | NULL | 验证版本号 |
🔑 核心字段详解
🆔 entry - 生物模板ID
详细说明:生物的唯一标识符,是表的主键。这个ID在游戏中用于引用特定类型的生物。
取值范围:1 - 16777215
- 不能为0或负数
- 必须唯一,不能重复
- 建议自定义生物使用100000以上的ID避免与官方数据冲突
📊 difficulty_entry系列 - 难度模板
详细说明:用于定义不同难度下生物的模板ID。当玩家进入不同难度的副本时,游戏会使用对应的模板。
- difficulty_entry_1 - 25人普通难度
- difficulty_entry_2 - 10人英雄难度
- difficulty_entry_3 - 25人英雄难度
💡 示例:辛德拉苟萨(entry=36853)在不同难度使用不同的模板ID:
- 25人普通:difficulty_entry_1=38265
- 10人英雄:difficulty_entry_2=38266
- 25人英雄:difficulty_entry_3=38267
⚔️ KillCredit系列 - 击杀奖励
详细说明:用于任务击杀奖励的生物ID。当击杀这些ID的生物时,会被计算为击杀了当前模板的生物。
- 多个不同的生物都能完成同一个击杀任务
- 任务要求击杀"任意兽人"而不是特定的兽人
- 最多只能设置两个击杀奖励目标
📝 name - 生物名称
详细说明:生物的主要名称,显示在生物头顶、目标框、聊天窗口等位置。
字符限制:最大100个字符
- 生物头顶的名称标签
- 目标框中的生物名称
- 聊天窗口的战斗信息
- 任务日志中的目标描述
🏷️ subname - 子名称/称号
详细说明:生物的子名称或称号,显示在主名称下方的尖括号中。
- 职业描述:<铁匠>、<训练师>、<商人>
- 军衔称号:<队长>、<将军>、<指挥官>
- 组织归属:<暴风城卫兵>、<部落战士>
- 特殊身份:<稀有>、<精英>、<首领>
💡 显示格式:name="约翰", subname="铁匠" → 显示为 约翰<铁匠>
🎯 IconName - 图标名称
详细说明:控制鼠标悬停在生物上时显示的光标图标,帮助玩家快速识别NPC的功能。
- Directions - 方向图标,用于守卫和传送NPC
- Speak - 对话图标,显示聊天气泡
- Buy - 购买图标,显示棕色袋子
- Trainer - 训练师图标,显示书本
- Taxi - 飞行点图标,显示带翅膀的靴子
- Repair - 修理图标,显示铁砧
- Attack - 攻击图标,显示剑形光标
- vehichleCursor - 载具光标
📈 minlevel / maxlevel - 等级范围
详细说明:定义生物的等级范围。如果相同则为固定等级,如果不同则随机选择。
取值范围:1 - 255
- 固定等级:minlevel = maxlevel (推荐用于BOSS)
- 小范围浮动:maxlevel = minlevel + 1~2 (普通怪物)
- 大范围浮动:maxlevel = minlevel + 3~5 (特殊区域)
🎮 exp - 扩展版本
详细说明:指定生物使用哪个扩展版本的数据表来计算属性。
- 0 - 经典版:适用于1-60级内容
- 1 - 燃烧的远征:适用于60-70级内容
- 2 - 巫妖王之怒:适用于70-80级内容
⚔️ faction - 阵营ID
详细说明:定义生物所属的阵营,决定了敌对关系。
- 35 - 友好 (对所有玩家友好)
- 14 - 怪物 (对所有玩家敌对)
- 7 - 联盟友好
- 168 - 部落友好
- 16 - 野兽 (被动,被攻击后才反击)
🚩 npcflag - NPC功能标志
详细说明:定义NPC的功能类型,可组合使用多个标志。
- 1 - NPC对话
- 2 - NPC任务发放
- 4 - NPC任务接收
- 8 - NPC训练师
- 16 - NPC商人
- 64 - NPC飞行管理员
- 128 - NPC修理
- 256 - NPC银行
- 512 - NPC旅店
- 1024 - NPC绑定
💡 组合示例:npcflag = 129 (对话+修理) = 1 + 128
⭐ rank - 生物等级类型
详细说明:定义生物的稀有程度和强度。
- 0 - 普通怪物
- 1 - 精英怪物 (更强,更多经验)
- 2 - 稀有精英 (偶尔出现)
- 3 - BOSS (首领级)
- 4 - 稀有 (稀有怪物)
🛡️ unit_class - 职业类型
详细说明:定义生物的职业类型,影响属性计算。
- 0 - 战士 (高生命值,无法力)
- 1 - 法师 (低生命值,高法力)
- 2 - 牧师 (中等生命值,高法力)
- 3 - 盗贼 (中等生命值,无法力)
- 4 - 其他 (默认属性)
🐾 type - 生物类型
详细说明:定义生物的基本类型,影响某些技能和机制。
- 0 - 无类型
- 1 - 野兽
- 2 - 龙类
- 3 - 恶魔
- 4 - 元素
- 5 - 巨人
- 6 - 人形生物
- 7 - 机械
- 8 - 自然生物
- 9 - 不死族
- 10 - 图腾
- 11 - 小宠物
- 12 - 气体云雾
🤖 AIName - AI脚本名称
详细说明:定义生物使用的AI脚本类型。
- '' (空) - 默认AI
- 'SmartAI' - SmartAI脚本系统
- 'AggressorAI' - 主动攻击AI
- 'PassiveAI' - 被动AI
- 'GuardAI' - 守卫AI
- 'PetAI' - 宠物AI
- 'TotemAI' - 图腾AI
🩸 HealthModifier - 生命值倍数
详细说明:基于等级属性表计算后的生命值倍率调整。默认值1.0表示100%基础生命值。
取值范围:0.01 ~ 100.0
- 普通怪物:1.0 (100%基础生命值)
- 精英怪物:2.0 ~ 3.0 (2~3倍生命值)
- 副本BOSS:5.0 ~ 30.0+ (5~30倍以上生命值)
- 世界BOSS:50.0+ (50倍以上生命值)
⚔️ DamageModifier - 伤害倍数
详细说明:控制生物造成伤害的倍率。默认1.0 = 100%伤害。
取值范围:0.01 ~ 100.0
- 普通怪物:1.0
- 精英怪物:1.5 ~ 2.5
- 副本BOSS:3.0 ~ 8.0
- 低伤害NPC:0.5 (友善NPC的轻微伤害)
🚩 flags_extra - 额外标志
详细说明:控制生物的特殊行为标志,使用位掩码组合。
- 1 - 副本绑定 (Instance Bind)
- 2 - 无招架 (No Parry)
- 4 - 无格挡 (No Block)
- 8 - 无暴击 (No Crush)
- 16 - 无XP (No XP)
- 32 - 触发器 (Trigger)
- 64 - 无嘲讽 (No Taunt)
- 128 - 不能被选中 (Not Selectable)
- 256 - 幽灵可见 (Ghost Visible)
- 16384 - 世界事件 (World Event)
- 32768 - 守卫 (Guard)
- 536870912 - 地城结束BOSS (Dungeon End Boss)
💡 组合示例:副本BOSS常用 flags_extra = 1 + 64 + 536870912 (副本绑定 + 无嘲讽 + 地城结束BOSS)
❤️ RegenHealth - 自动回血
详细说明:控制生物是否自动恢复生命值。
- 0 - 不自动回血 (常用于事件NPC、木桩、非战斗单位)
- 1 - 自动回血 (默认值,大多数生物使用)
💡 典型用法:训练假人设置 RegenHealth=0 避免持续回血;BOSS设置 RegenHealth=1 保持战斗强度。
📜 ScriptName - 脚本名称
详细说明:绑定C++脚本到生物,用于实现复杂的自定义行为。与AIName不同,ScriptName绑定的是编译在服务端核心中的C++脚本。
最大64字符
- '' (空) - 无C++脚本绑定
- 'npc_druid_trainer' - 德鲁伊训练师脚本
- 'boss_lich_king' - 巫妖王BOSS脚本
- 'npc_teleporter' - 传送NPC脚本
- 'npc_gossip_menu' - 自定义对话菜单脚本
💡 与AIName的区别:
- ScriptName:C++编译脚本,性能更高,用于复杂逻辑
- AIName:SmartAI脚本,更灵活,可在运行时调整
两者可同时使用,ScriptName优先级更高
- ScriptName:C++编译脚本,性能更高,用于复杂逻辑
- AIName:SmartAI脚本,更灵活,可在运行时调整
两者可同时使用,ScriptName优先级更高
💡 实际案例
普通怪物 创建森林狼 (10-12级野兽)
entry=100001, faction=14(怪物), type=1(野兽), rank=0(普通)
-- 创建普通怪物:森林狼
INSERT INTO creature_template VALUES(
100001, 0, 0, 0, 0, 0, '森林狼', NULL, 'Attack', 0,
10, 12, 0, 14, 0, 1.0, 1.14286, 1.0, 1.0, 20.0, 1.0,
0, 0, 1, 1, 0, 100001, 0, 0, '', 0, 0
);NPC商人 创建铁匠约翰 (对话+修理)
entry=100002, npcflag=129(对话+修理), faction=35(友好), type=6(人形)
-- 创建NPC商人:铁匠约翰
INSERT INTO creature_template VALUES(
100002, 0, 0, 0, 0, 0, '约翰', '铁匠', 'Repair', 5001,
60, 60, 2, 35, 129, 1.0, 1.14286, 1.0, 1.0, 0.0, 1.0,
0, 0, 0, 6, 0, 0, 0, 0, '', 0, 0
);BOSS 创建暗影领主 (80级副本BOSS)
entry=100003, rank=3(BOSS), type=3(恶魔), AIName='SmartAI'
-- 创建副本BOSS:暗影领主
INSERT INTO creature_template VALUES(
100003, 100004, 100005, 100006, 0, 0, '暗影领主', '<首领>', 'Attack', 0,
80, 80, 2, 14, 0, 1.0, 1.14286, 1.0, 1.0, 100.0, 2.0,
3, 1, 3, 3, 0x00000004, 100003, 0, 0, 'SmartAI', 0, 0
);精英 创建精英怪物 (稀有精英)
entry=100010, rank=2(稀有精英), faction=14(怪物), type=6(人形)
-- 创建稀有精英怪物
INSERT INTO creature_template VALUES(
100010, 0, 0, 0, 0, 0, '血色勇士', '稀有精英', 'Attack', 0,
70, 70, 2, 14, 0, 1.0, 1.14286, 1.0, 1.0, 30.0, 1.2,
2, 0, 0, 6, 0, 100010, 0, 0, 'SmartAI', 0, 0
);训练师 创建专业技能训练师
entry=100020, npcflag=9(对话+训练), faction=35(友好)
-- 创建锻造训练师
INSERT INTO creature_template VALUES(
100020, 0, 0, 0, 0, 0, '铁砧大师', '锻造训练师', 'Train', 6001,
60, 60, 2, 35, 9, 1.0, 1.14286, 1.0, 1.0, 0.0, 1.0,
0, 0, 0, 6, 0, 0, 0, 0, '', 0, 0
);⚡ 快速参考
常用阵营ID
| 35 | 友好 |
| 14 | 怪物 |
| 7 | 联盟友好 |
| 168 | 部落友好 |
| 16 | 被动野兽 |
常用NPC标志
| 1 | 对话 |
| 16 | 商人 |
| 64 | 飞行 |
| 128 | 修理 |
| 129 | 对话+修理 |
生物等级类型
| 0 | 普通 |
| 1 | 精英 |
| 3 | BOSS |
| 4 | 稀有 |
生物类型
| 1 | 野兽 |
| 6 | 人形 |
| 3 | 恶魔 |
| 9 | 不死族 |
🔗 相关表格
- creature - 生物刷新表
- creature_addon - 生物附加数据
- creature_template_addon - 模板附加数据
- creature_classlevelstats - 等级属性表
- creature_loot_template - 生物掉落表
- smart_scripts - SmartAI脚本表