Creature.dbc - 生物数据库

Creature.dbc存储了游戏中所有生物(NPC和怪物)的基本信息。这个文件定义了生物的名称、模型、等级、生命值等基础属性。

注意: 在AzerothCore中,通常不需要直接修改Creature.dbc,而是通过修改world.creature_template表来自定义生物属性。

主要字段说明

以下是Creature.dbc中的主要字段:

基本信息字段

字段名 类型 描述
ID 整数 生物唯一标识符
ModelID 整数 模型ID
Faction 整数 阵营ID
Scale 浮点数 缩放比例
Name 字符串 生物名称(本地化字符串)
SubName 字符串 生物子名称(本地化字符串)

战斗属性字段

字段名 类型 描述
MinLevel 整数 最小等级
MaxLevel 整数 最大等级
Health 整数 基础生命值
Power 整数 基础能量值
Damage 浮点数 基础伤害
AttackTime 整数 攻击速度(毫秒)
RangedAttackTime 整数 远程攻击速度(毫秒)

生物类型(Type)

生物类型字段定义了生物的基本分类:

名称 描述
0 CREATURE_TYPE_BEAST 野兽
1 CREATURE_TYPE_DRAGONKIN 龙类
2 CREATURE_TYPE_DEMON 恶魔
3 CREATURE_TYPE_ELEMENTAL 元素生物
4 CREATURE_TYPE_GIANT 巨人
5 CREATURE_TYPE_UNDEAD 亡灵
6 CREATURE_TYPE_HUMANOID 人型生物
7 CREATURE_TYPE_CRITTER 小动物
8 CREATURE_TYPE_MECHANICAL 机械
9 CREATURE_TYPE_NOT_SPECIFIED 未指定

生物与数据库的关系

在AzerothCore中,生物数据分布在多个地方:

  1. Creature.dbc:包含生物的基本信息
  2. world.creature_template:包含生物的游戏属性,如技能、掉落等
  3. world.creature:包含游戏中实际存在的生物实例数据
  4. world.creature_addon:包含生物的附加数据,如装备、光环等

使用示例

查询生物信息

以下SQL语句将查询"暴风城卫兵"的生物信息:

SELECT * FROM creature_template WHERE name LIKE '%暴风城卫兵%';

创建自定义生物

以下SQL语句将创建一个新的生物"精英守卫":

INSERT INTO creature_template (entry, modelid1, name, subname, minlevel, maxlevel, faction, scale, rank, unit_class, unit_flags, type, type_flags, HealthModifier, ManaModifier, ArmorModifier, DamageModifier, ExperienceModifier, RegenHealth, movementId, RacialLeader, lootid, pickpocketloot, skinloot, resistance1, resistance2, resistance3, resistance4, resistance5, resistance6, spell1, spell2, spell3, spell4, spell5, spell6, spell7, spell8, PetSpellDataId, VehicleId, mingold, maxgold, AIName, MovementType, InhabitType, HoverHeight, HealthModifierExtra, ManaModifierExtra, ArmorModifierExtra, DamageModifierExtra, ScriptName)
VALUES (
    100000, -- 自定义生物ID,避免与官方生物冲突
    19746, '精英守卫', '自定义NPC', 60, 60, 11, 1.2, 1, 1, 0, 6, 0, 5, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '', 0, 3, 1, 1, 1, 1, 1, ''
);