📋 什么是 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优先级更高

💡 实际案例

普通怪物 创建森林狼 (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精英
3BOSS
4稀有

生物类型

1野兽
6人形
3恶魔
9不死族

🔗 相关表格