3.1 creature_template - 生物模板表

生物模板表存储了游戏中所有生物类型的基本信息。这个表定义了NPC、怪物、宠物等生物的属性和行为。

表结构

字段名 类型 描述
entry mediumint unsigned 生物模板ID (主键)
详细说明:生物的唯一标识符,是表的主键。这个ID在游戏中用于引用特定类型的生物。每个生物模板都必须有一个唯一的entry值,游戏通过这个ID来识别和加载对应的生物数据。
取值范围:1 - 16777215 (mediumint unsigned的最大值)
注意事项:
  • 不能为0或负数
  • 必须唯一,不能重复
  • 建议自定义生物使用100000以上的ID避免与官方数据冲突
difficulty_entry_1 mediumint unsigned 25人普通难度模板ID
详细说明:用于定义25人普通难度下生物的模板ID。当玩家进入25人普通难度的副本时,游戏会使用这个字段指定的模板来生成生物,而不是使用基础的entry模板。
取值范围:0 - 16777215 (0表示不使用难度模板)
使用场景:
  • 团队副本BOSS在不同难度下有不同的属性
  • 战场NPC根据等级段有不同的强度
  • 某些特殊事件中的NPC需要临时调整

示例:辛德拉苟萨(entry=36853)在25人普通模式使用difficulty_entry_1=38265
difficulty_entry_2 mediumint unsigned 10人英雄难度模板ID
详细说明:用于定义10人英雄难度下生物的模板ID。当玩家进入10人英雄难度的副本时,游戏会使用这个字段指定的模板来生成生物。英雄难度通常比普通难度更具挑战性。
取值范围:0 - 16777215 (0表示不使用难度模板)
难度对比:
  • 10人英雄 > 10人普通
  • 通常生命值和伤害都有显著提升
  • 可能有额外的技能或机制
  • 掉落更好的装备和更多金币

示例:辛德拉苟萨(entry=36853)在10人英雄模式使用difficulty_entry_2=38266
difficulty_entry_3 mediumint unsigned 25人英雄难度模板ID
详细说明:用于定义25人英雄难度下生物的模板ID。这是最高难度的团队副本模式,生物拥有最强的属性和最复杂的机制。
取值范围:0 - 16777215 (0表示不使用难度模板)
难度等级:
  • 25人英雄 (最高难度)
  • 10人英雄
  • 25人普通
  • 10人普通 (基础难度)

特点:最高的生命值、伤害和最复杂的战斗机制,提供最好的奖励
示例:辛德拉苟萨(entry=36853)在25人英雄模式使用difficulty_entry_3=38267
KillCredit1 int unsigned 击杀奖励生物ID1
详细说明:用于任务击杀奖励的第一个生物ID。当这是一个击杀奖励模板时,这个字段链接到可以被击杀来获得任务奖励的实际生物entry。这通常用于创建虚拟的击杀目标。
取值范围:0 - 4294967295 (0表示不使用击杀奖励)
使用场景:
  • 多个不同的生物都能完成同一个击杀任务
  • 任务要求击杀"任意兽人"而不是特定的兽人
  • 事件中临时替换击杀目标
  • 简化任务设计,避免为每个可击杀目标单独创建任务

工作原理:当击杀KillCredit1指定的生物时,会被计算为击杀了当前模板的生物
KillCredit2 int unsigned 击杀奖励生物ID2
详细说明:用于任务击杀奖励的第二个生物ID。与KillCredit1配合使用,允许最多两个不同的生物都能计入同一个击杀任务目标。如果需要超过两个生物,则需要使用脚本实现。
取值范围:0 - 4294967295 (0表示不使用第二个击杀奖励)
组合使用:
  • KillCredit1 = 1234, KillCredit2 = 5678:击杀ID为1234或5678的生物都算完成任务
  • KillCredit1 = 1234, KillCredit2 = 0:只有击杀ID为1234的生物才算完成任务
  • 两个字段都为0:只能击杀当前entry的生物来完成任务

限制:最多只能设置两个击杀奖励目标,更多目标需要脚本支持
name char(100) 生物名称
详细说明:生物的主要名称,这是显示在生物头顶、目标框、聊天窗口等地方的主要标识文字。名称支持多语言,会根据客户端语言显示对应的文本。
字符限制:最大100个字符,支持UTF-8编码
显示位置:
  • 生物头顶的名称标签
  • 目标框中的生物名称
  • 聊天窗口的战斗信息
  • 任务日志中的目标描述
  • 死亡信息和荣誉击杀提示

命名建议:使用有意义的名称,避免特殊字符,考虑本地化需求
示例:"暴风城卫兵"、"部落战士"、"巫妖王阿尔萨斯"
subname char(100) 生物子名称/称号
详细说明:生物的子名称或称号,显示在主名称下方的尖括号中,用于提供额外的身份信息、职业描述或特殊标识。这个字段是可选的。
字符限制:最大100个字符,可以为空(NULL)
显示格式:在游戏中显示为 <subname> 的形式
常见用途:
  • 职业描述:<铁匠>、<训练师>、<商人>
  • 军衔称号:<队长>、<将军>、<指挥官>
  • 组织归属:<暴风城卫兵>、<部落战士>
  • 特殊身份:<稀有>、<精英>、<首领>
  • 功能说明:<飞行管理员>、<旅店老板>

示例:name="约翰", subname="铁匠" → 显示为 约翰<铁匠>
IconName char(100) 图标名称 (鼠标悬停显示的图标类型)
详细说明:用于告诉玩家这个生物是什么类型的NPC,控制鼠标悬停在生物上时显示的光标图标。这个字段帮助玩家快速识别NPC的功能。
字符限制:最大100个字符,可以为空(NULL)
常用图标类型:
  • Directions - 方向图标,用于守卫和传送NPC
  • Gunner - 炮手图标,用于炮塔NPC/玩家控制单位
  • vehichleCursor - 载具光标,表示玩家控制载具
  • Driver - 驾驶员图标,显示方向盘
  • Attack - 攻击图标,显示剑形光标
  • Buy - 购买图标,显示棕色袋子
  • Speak - 对话图标,显示聊天气泡
  • Pickup - 拾取图标,显示抓取手形
  • Interact - 交互图标,显示齿轮
  • Trainer - 训练师图标,显示书本
  • Taxi - 飞行点图标,显示带翅膀的靴子
  • Repair - 修理图标,显示铁砧

注意:名称区分大小写,必须使用准确的拼写
gossip_menu_id mediumint unsigned 对话菜单ID
详细说明:这个生物的对话菜单ID,链接到gossip_menu表。当玩家右键点击NPC时,会显示对应的对话选项。这个字段通常从游戏数据嗅探中获得。
取值范围:0 - 16777215 (0表示没有对话菜单)
数据来源:
  • 从客户端数据包嗅探获得(推荐)
  • 自定义创建时必须使用大于50000的ID
  • 链接到gossip_menu.MenuID字段

功能作用:
  • 显示NPC的对话文本
  • 提供交互选项菜单
  • 支持条件判断和动态内容
  • 可以包含任务、商店、训练等功能入口

注意:如果NPC有npcflag但没有gossip_menu_id,可能无法正常交互
minlevel tinyint unsigned 最小等级
详细说明:生物的最小等级。如果minlevel和maxlevel相同,生物将始终是固定等级;如果不同,生物在生成时会在这个范围内随机选择一个等级。
取值范围:1 - 255 (tinyint unsigned的范围)
等级影响:
  • 生命值和法力值 (基于creature_classlevelstats表)
  • 基础伤害和护甲值
  • 技能等级和抗性
  • 经验值奖励
  • 玩家能否攻击该生物

设计建议:
  • 普通怪物:设置为区域平均等级
  • 精英怪物:比区域等级高2-5级
  • BOSS:比副本推荐等级高0-2级
  • NPC:根据功能和位置设置合适等级

注意:等级必须 ≤ maxlevel,建议最小值为1
maxlevel tinyint unsigned 最大等级
详细说明:生物的最大等级。与minlevel配合使用,定义生物的等级范围。生物在生成时会在minlevel到maxlevel之间随机选择一个等级。
取值范围:1 - 255 (tinyint unsigned的范围)
等级范围设置:
  • 固定等级:minlevel = maxlevel (推荐用于BOSS和重要NPC)
  • 小范围浮动:maxlevel = minlevel + 1~2 (普通怪物)
  • 大范围浮动:maxlevel = minlevel + 3~5 (特殊区域)

版本限制:
  • 经典版:最高60级
  • 燃烧的远征:最高70级
  • 巫妖王之怒:最高80级

平衡考虑:等级差距过大会影响玩家体验和经验获取
注意:必须 ≥ minlevel,建议不超过当前版本等级上限
exp smallint 扩展版本 (0=经典版, 1=燃烧远征, 2=巫妖王之怒)
详细说明:指定生物使用哪个扩展版本的数据表来计算生命值。这个字段决定了生物从creature_classlevelstats表的哪一列获取基础属性数据。
取值范围:0 - 2 (对应不同的扩展版本)
版本对应:
  • 0 - 经典版 (Classic):使用damage_base列,适用于1-60级内容
  • 1 - 燃烧的远征 (TBC):使用damage_exp1列,适用于60-70级内容
  • 2 - 巫妖王之怒 (WotLK):使用damage_exp2列,适用于70-80级内容

影响属性:
  • 基础生命值计算
  • 基础法力值计算
  • 基础伤害计算
  • 护甲值计算

选择建议:根据生物所在区域和等级范围选择对应的扩展版本
注意:必须与生物的等级范围和所在区域的扩展版本匹配
faction smallint unsigned 阵营ID
详细说明:定义生物所属的阵营,决定了生物对玩家和其他生物的敌对性。阵营ID对应FactionTemplate.dbc文件中的记录,控制着复杂的敌友关系系统。
取值范围:0 - 65535 (smallint unsigned的范围)
重要功能:
  • 敌对关系:决定生物是否会攻击玩家
  • 协助机制:相同阵营的生物会互相协助战斗
  • 声望系统:影响击杀后的声望变化
  • PvP标记:影响玩家的PvP状态

常用阵营:
  • 35 - 友好 (对所有玩家友好)
  • 14 - 怪物 (对所有玩家敌对)
  • 11 - 联盟守卫
  • 85 - 部落守卫
  • 7 - 中立生物

设计建议:根据生物的角色和所在区域选择合适的阵营
注意:阵营设置错误可能导致意外的敌对或协助行为
npcflag int unsigned NPC标志 (位掩码)
详细说明:定义NPC的交互功能,是一个位掩码值,可以组合多个标志来赋予NPC不同的功能。这个字段决定了玩家能与NPC进行哪些类型的交互。
取值范围:0 - 4294967295 (int unsigned的范围)
常用标志值:
  • 1 (0x00000001) - 闲聊:显示对话选项
  • 2 (0x00000002) - 任务给予者:可以给予或完成任务
  • 16 (0x00000010) - 训练师:可以训练技能
  • 32 (0x00000020) - 职业训练师:训练职业技能
  • 64 (0x00000040) - 专业训练师:训练专业技能
  • 128 (0x00000080) - 商人:可以买卖物品
  • 4096 (0x00001000) - 修理:可以修理装备
  • 8192 (0x00002000) - 飞行管理员:提供飞行服务
  • 16384 (0x00004000) - 灵魂医者:复活玩家
  • 65536 (0x00010000) - 旅店老板:设置炉石
  • 131072 (0x00020000) - 银行:提供银行服务
  • 1048576 (0x00100000) - 战场管理员:战场传送
  • 2097152 (0x00200000) - 拍卖师:拍卖行服务
  • 4194304 (0x00400000) - 兽栏管理员:宠物寄存

组合使用:可以将多个标志相加,如商人+修理=128+4096=4224
注意:设置npcflag后通常还需要配置对应的数据表(如npc_vendor、npc_trainer等)
speed_walk float 行走速度 (默认: 1)
详细说明:控制生物的行走速度。这是生物在非战斗状态下的基础移动速度。对于载具类型的生物,这个字段会影响飞行速度。
取值范围:0.1 - 50.0 (建议范围,理论上可以更大)
标准速度值:
  • 1.0 - 标准行走速度 (默认值)
  • 0.5 - 缓慢移动 (如受伤的NPC)
  • 1.5 - 稍快移动 (如巡逻兵)
  • 2.0 - 快速移动 (如信使NPC)
  • 0.0 - 完全静止 (不推荐,使用MovementType=0代替)

特殊用途:
  • 载具:增加飞行速度
  • 剧情NPC:配合脚本实现特定移动效果
  • 宠物:影响跟随主人的速度

计算公式:实际速度 = 基础速度 × speed_walk × 2.5
注意:过高的速度值可能导致移动异常或客户端同步问题
speed_run float 跑步速度 (默认: 1.14286)
详细说明:控制生物的跑步速度。这是生物在战斗状态或追击目标时的移动速度。对于载具类型的生物,这个字段会影响地面移动速度。
取值范围:0.1 - 50.0 (建议范围,理论上可以更大)
标准速度值:
  • 1.14286 - 标准跑步速度 (默认值,8.0/7.0的结果)
  • 0.8 - 缓慢跑步 (如重装甲单位)
  • 1.5 - 快速跑步 (如轻装单位)
  • 2.0 - 高速移动 (如骑兵、野兽)
  • 3.0+ - 超高速 (如BOSS冲锋技能)

战斗影响:
  • 追击逃跑玩家的能力
  • 在战斗中的机动性
  • 脱离战斗后的移动速度
  • 巡逻和警戒时的移动

载具特殊用途:增加地面移动速度,影响载具在地面的行驶速度
平衡建议:不要设置过高,避免玩家无法逃脱或追击
注意:与玩家跑步速度(约7码/秒)对比来设置合理值
speed_swim float 游泳速度 (默认: 1)
详细说明:控制生物在水中的游泳速度。这个字段只在生物进入水中时生效,决定了生物在水中的移动能力。
取值范围:0.1 - 50.0 (建议范围)
标准速度值:
  • 1.0 - 标准游泳速度 (默认值)
  • 0.5 - 缓慢游泳 (如重装甲单位在水中)
  • 1.5 - 快速游泳 (如水生生物)
  • 2.0 - 高速游泳 (如鱼类、海洋生物)
  • 0.1 - 几乎无法游泳 (如某些陆地生物)

适用生物类型:
  • 水生生物:鱼类、海洋怪物等,建议设置较高值
  • 两栖生物:可在水陆活动的生物,设置中等值
  • 陆地生物:主要在陆地活动,可设置较低值
  • 特殊生物:如水元素,可设置很高的游泳速度

游戏机制:影响生物在水中追击玩家或逃脱的能力
注意:与玩家游泳速度对比,确保合理的游戏体验
speed_flight float 飞行速度 (默认: 1)
详细说明:控制生物的飞行速度。这个字段只对具有飞行能力的生物生效,如飞行坐骑、飞龙、鸟类等。需要配合相应的移动标志才能实现飞行。
取值范围:0.1 - 50.0 (建议范围)
标准速度值:
  • 1.0 - 标准飞行速度 (默认值)
  • 1.5 - 快速飞行 (如飞行坐骑)
  • 2.0 - 高速飞行 (如龙类)
  • 3.0 - 超高速飞行 (如史诗飞行坐骑)
  • 0.8 - 缓慢飞行 (如重型飞行器)

适用生物:
  • 飞行坐骑:狮鹫、飞龙、凤凰等
  • 飞行怪物:飞龙、鸟类、飞行恶魔
  • 飞行载具:飞艇、飞行器等
  • 魔法生物:元素、幽灵等悬浮生物

技术要求:
  • 需要设置适当的unit_flags启用飞行
  • 可能需要配合HoverHeight字段
  • 需要合适的AI支持飞行行为

注意:飞行速度通常比地面移动速度更快,需要平衡游戏体验
detection_range float 侦测范围 (默认: 20)
详细说明:控制生物侦测和发现玩家的距离范围。当玩家进入这个范围内时,生物会"看见"玩家并可能做出反应,如攻击、逃跑或其他行为。
取值范围:0.1 - 100.0 (建议范围)
标准侦测范围:
  • 20.0 - 标准侦测范围 (默认值)
  • 10.0 - 短距离侦测 (如近视生物、陷阱守卫)
  • 30.0 - 中距离侦测 (如警戒兵、巡逻队)
  • 50.0 - 长距离侦测 (如哨兵、瞭望塔)
  • 5.0 - 极短侦测 (如盲目生物)
  • 100.0 - 极远侦测 (如龙类BOSS)

影响因素:
  • 生物类型:掠食者通常有更远的侦测范围
  • 环境设定:开阔地带vs密闭空间
  • 游戏平衡:避免玩家意外拉到过多怪物
  • 潜行机制:影响潜行玩家的隐身效果

特殊用途:配合AI脚本实现复杂的侦测和警报机制
注意:过大的侦测范围可能导致性能问题和意外的战斗触发
scale float 缩放比例 (默认: 1)
详细说明:控制生物模型在游戏中显示的大小比例。如果设置为0,将使用DBC文件中的默认模型大小。这个字段可以让同一个模型显示为不同的大小。
取值范围:0.1 - 10.0 (建议范围,0表示使用默认大小)
标准缩放值:
  • 0 - 使用DBC默认大小
  • 1.0 - 标准大小 (100%)
  • 0.5 - 缩小一半 (50%)
  • 1.5 - 放大1.5倍 (150%)
  • 2.0 - 放大一倍 (200%)
  • 0.1 - 极小 (10%,用于特殊效果)
  • 5.0 - 巨大 (500%,用于BOSS)

应用场景:
  • BOSS设计:放大BOSS使其更具威慑力
  • 幼体生物:缩小表示年幼或弱小
  • 精英怪物:适度放大显示其特殊性
  • 装饰NPC:调整大小适应环境
  • 特殊效果:配合脚本实现变大变小效果

注意事项:
  • 过大的缩放可能导致碰撞检测问题
  • 过小的缩放可能难以点击选择
  • 缩放不影响生物的实际属性,只改变视觉效果
rank tinyint unsigned 等级类型 (0=普通, 1=精英, 2=稀有精英, 3=世界BOSS, 4=稀有)
详细说明:定义生物的等级类型,影响生物的重生时间、尸体腐烂时间,以及在某些情况下的视觉显示效果。这是一个重要的分类字段。
取值范围:0 - 4 (固定的5个等级类型)
等级类型详解:
  • 0 - 普通:默认重生时间5分钟,尸体腐烂60秒,总重生时间6分钟
  • 1 - 精英:默认重生时间5分钟,尸体腐烂5分钟,总重生时间10分钟
  • 2 - 稀有精英:默认重生时间5分钟,尸体腐烂5分钟,总重生时间10分钟
  • 3 - 世界BOSS:默认重生时间5分钟,尸体腐烂1小时,总重生时间1小时5分钟
  • 4 - 稀有:默认重生时间5分钟,尸体腐烂5分钟,总重生时间10分钟

视觉效果:
  • 精英和稀有生物通常有特殊的名称框颜色
  • BOSS可能显示骷髅图标或"??"等级
  • 需要配合type_flags=4来显示BOSS标识

重生机制:
  • 实际重生时间 = creature.spawntimesecs + 尸体腐烂时间
  • 可通过worldserver.conf的Corpse.Decay设置修改腐烂时间
  • 设置spawntimesecs=0可以减少重生时间到最小腐烂时间

注意:rank主要是视觉和重生时间控制,不直接影响生物属性
dmgschool tinyint 伤害学派 (0=物理, 1=神圣, 2=火焰, 3=自然, 4=冰霜, 5=暗影, 6=奥术)
详细说明:定义生物近战攻击的伤害学派类型。这决定了生物的普通攻击属于哪种魔法学派,影响伤害计算和抗性检查。
取值范围:0 - 6 (对应7种伤害学派)
伤害学派类型:
  • 0 - 物理 (SPELL_SCHOOL_NORMAL):最常见的伤害类型,受护甲影响
  • 1 - 神圣 (SPELL_SCHOOL_HOLY):神圣伤害,对亡灵额外有效
  • 2 - 火焰 (SPELL_SCHOOL_FIRE):火焰伤害,可能造成燃烧效果
  • 3 - 自然 (SPELL_SCHOOL_NATURE):自然伤害,如闪电、毒素
  • 4 - 冰霜 (SPELL_SCHOOL_FROST):冰霜伤害,可能造成减速效果
  • 5 - 暗影 (SPELL_SCHOOL_SHADOW):暗影伤害,邪恶力量
  • 6 - 奥术 (SPELL_SCHOOL_ARCANE):奥术伤害,纯粹的魔法能量

应用场景:
  • 元素生物:火元素使用火焰伤害,冰元素使用冰霜伤害
  • 亡灵生物:通常使用暗影伤害
  • 神圣生物:天使、圣灵等使用神圣伤害
  • 魔法生物:法师类生物可能使用奥术伤害
  • 普通生物:大多数使用物理伤害

游戏机制:
  • 影响玩家的抗性计算
  • 与玩家的护甲和魔法抗性交互
  • 可能触发特定的战斗效果

注意:只影响近战攻击,法术伤害由具体法术定义
BaseAttackTime int unsigned 基础攻击时间 (毫秒)
详细说明:决定生物在近战攻击之间必须等待的基础时间,以毫秒为单位。这个值直接影响生物的攻击频率和DPS输出。
取值范围:500 - 10000 (建议范围,毫秒)
标准攻击时间:
  • 2000 - 标准攻击速度 (2秒一次攻击)
  • 1500 - 快速攻击 (1.5秒,如盗贼类)
  • 3000 - 缓慢攻击 (3秒,如重武器单位)
  • 1000 - 极快攻击 (1秒,如小型敏捷生物)
  • 4000 - 极慢攻击 (4秒,如巨型生物)

影响因素:攻击时间越短,DPS越高,但单次伤害通常较低
注意:配合DamageModifier使用以平衡总体DPS输出
RangeAttackTime int unsigned 远程攻击时间 (毫秒)
详细说明:决定生物在远程攻击之间必须等待的基础时间,以毫秒为单位。只有具备远程攻击能力的生物才会使用这个值。
取值范围:1000 - 8000 (建议范围,毫秒)
标准远程攻击时间:
  • 2500 - 标准远程攻击速度
  • 2000 - 快速射击 (如弓箭手)
  • 3000 - 缓慢射击 (如火枪手)
  • 4000 - 重型远程武器 (如攻城器械)

应用:通常比近战攻击时间稍长,平衡远程攻击的优势
BaseVariance float 基础伤害浮动值 (默认: 1)
详细说明:用于自定义生物近战伤害输出的浮动系数。这个值与DamageModifier配合使用来精确控制伤害计算。
取值范围:0.1 - 5.0 (建议范围)
标准值:
  • 1.0 - 标准浮动 (默认值,推荐用于非自定义生物)
  • 0.5 - 减少伤害浮动
  • 1.5 - 增加伤害浮动

注意:非自定义生物应始终保持为1.0,避免破坏官方平衡
RangeVariance float 远程伤害浮动值 (默认: 1)
详细说明:用于自定义生物远程伤害输出的浮动系数。与BaseVariance类似,但专门用于远程攻击的伤害计算。
取值范围:0.1 - 5.0 (建议范围)
标准值:
  • 1.0 - 标准浮动 (默认值,推荐用于非自定义生物)

使用建议:与BaseVariance保持一致,除非有特殊的远程攻击平衡需求
注意:只影响远程攻击,近战攻击使用BaseVariance
unit_class tinyint unsigned 单位职业 (1=战士, 2=圣骑士, 4=盗贼, 8=法师)
详细说明:定义生物的职业类型,决定生命值和法力值的等级计算方式。这个字段影响生物从creature_classlevelstats表获取基础属性的方式。
取值范围:1, 2, 4, 8 (固定的4个职业类型)
职业类型详解:
  • 1 - 战士 (CLASS_WARRIOR):只显示生命值,生命值较高,无法力值
  • 2 - 圣骑士 (CLASS_PALADIN):显示生命值和法力值,生命值比法师多但法力值较少
  • 4 - 盗贼 (CLASS_ROGUE):只显示生命值,生命值等同于战士
  • 8 - 法师 (CLASS_MAGE):显示生命值和法力值,生命值比圣骑士少但法力值较多

属性影响:
  • 基础生命值和法力值计算
  • 是否显示法力条
  • 与HealthModifier和ManaModifier的交互
  • 与exp字段配合确定最终属性

选择建议:根据生物的角色定位选择合适的职业类型
注意:不设置此值会在DB_Errors.log中产生警告
unit_flags int unsigned 单位标志 (位掩码)
详细说明:控制生物的各种单位属性和行为的位掩码字段。可以组合多个标志来实现复杂的生物行为控制。
取值范围:0 - 4294967295 (int unsigned的范围)
常用标志:
  • 2 (0x00000002) - 不可攻击:生物无法被攻击
  • 8 (0x00000008) - 玩家控制:标记为玩家控制单位
  • 256 (0x00000100) - 对PC免疫:禁用与玩家角色的战斗/协助
  • 512 (0x00000200) - 对NPC免疫:禁用与非玩家角色的战斗/协助
  • 1024 (0x00000400) - 拾取动画:显示拾取动画
  • 8192 (0x00002000) - 沉默:无法施放法术
  • 131072 (0x00020000) - 和平主义者:生物不会攻击
  • 262144 (0x00040000) - 昏迷:生物处于昏迷状态
  • 33554432 (0x02000000) - 不可选择:无法被鼠标选择或用命令选择
  • 67108864 (0x04000000) - 可剥皮:生物死后可以剥皮
  • 2147483648 (0x80000000) - 免疫伤害:对所有伤害免疫

组合使用:可以将多个标志相加来组合效果
注意:某些标志可能与其他字段或AI行为冲突
unit_flags2 int unsigned 单位标志2 (位掩码)
详细说明:提供额外的单位标志控制,扩展unit_flags的功能。这些标志通常用于更高级或特殊的生物行为控制。
取值范围:0 - 4294967295 (int unsigned的范围)
常用标志:
  • 1 (0x00000001) - 假死:生物处于假死状态
  • 2 (0x00000002) - 隐藏身体:隐藏单位模型,只显示玩家装备
  • 4 (0x00000004) - 忽略声望:忽略声望关系
  • 32 (0x00000020) - 不淡入:单位模型立即出现,不使用淡入效果
  • 4096 (0x00001000) - 限制队伍交互:限制只能与队伍或团队交互
  • 8192 (0x00002000) - 阻止法术点击:阻止法术点击功能
  • 131072 (0x00020000) - 播放死亡动画:死亡时播放特殊死亡动画

特殊用途:主要用于高级功能和特殊效果
注意:这些标志通常用于特定的游戏机制,使用时需要了解其具体效果
dynamicflags int unsigned 动态标志 (位掩码)
详细说明:控制生物视觉外观和动态状态的标志。这些标志主要影响生物在客户端的显示效果和交互状态。
取值范围:0 - 255 (常用范围)
常用标志:
  • 0 (0x00) - 无特殊状态:默认状态
  • 1 (0x01) - 可拾取:生物死后可以拾取物品
  • 2 (0x02) - 追踪单位:生物位置在小地图上显示为小点
  • 4 (0x04) - 已标记:生物名称显示为灰色,表示已被其他玩家标记
  • 8 (0x08) - 被玩家标记:被特定玩家标记
  • 32 (0x20) - 死亡:使生物显示为死亡状态(不影响实际生命值)

视觉效果:
  • 影响生物名称颜色和显示状态
  • 控制小地图上的显示
  • 影响拾取和交互提示

注意:这些标志主要是视觉效果,不影响生物的实际功能
family tinyint 生物家族 (宠物类型)
详细说明:定义生物所属的家族,主要用于宠物系统。这个字段决定了生物是否可以被驯服以及属于哪种宠物类型。
取值范围:0 - 46 (对应不同的生物家族)
主要家族类型:
  • 1 - 狼:狼类宠物
  • 2 - 猫:猫科宠物
  • 3 - 蜘蛛:蜘蛛类宠物
  • 4 - 熊:熊类宠物
  • 5 - 野猪:野猪类宠物
  • 20 - 蝎子:蝎子类宠物
  • 25 - 鬣狗:鬣狗类宠物
  • 46 - 灵魂兽:特殊的灵魂兽宠物

宠物系统:
  • 决定猎人是否可以驯服该生物
  • 影响宠物的特殊能力和属性
  • 与type_flags的可驯服标志配合使用

注意:只有type=1(野兽)且设置了相应type_flags的生物才能被驯服
trainer_type tinyint 训练师类型 (0=职业, 1=坐骑, 2=专业, 3=宠物)
详细说明:如果NPC是训练师(npcflag包含训练师标志),这个字段控制训练师的类型。必须与相关字段配合使用才能正常工作。
取值范围:0 - 3 (4种训练师类型)
训练师类型:
  • 0 - 职业训练师 (TRAINER_TYPE_CLASS):训练职业技能,需要设置trainer_class
  • 1 - 坐骑训练师 (TRAINER_TYPE_MOUNTS):训练骑术技能,需要设置trainer_race
  • 2 - 专业训练师 (TRAINER_TYPE_TRADESKILLS):训练专业技能,需要设置trainer_spell
  • 3 - 宠物训练师 (TRAINER_TYPE_PETS):训练宠物技能,需要设置trainer_class=3

配套设置:必须同时设置npcflag训练师标志和对应的trainer_*字段
注意:还需要在npc_trainer表中添加具体的训练内容
trainer_spell mediumint unsigned 训练师法术ID
详细说明:当trainer_type=2(专业训练师)时,玩家必须已经学会这个法术ID才能与该训练师对话。这用于限制专业训练师的访问权限。
取值范围:0 - 16777215 (0表示无限制)
应用场景:
  • 高级专业训练师:要求玩家已学会基础专业技能
  • 专精训练师:要求特定的前置技能
  • 大师级训练师:要求达到一定的专业等级

常见法术ID:需要查询具体的专业技能法术ID
注意:只在trainer_type=2时生效,其他类型忽略此字段
trainer_class tinyint unsigned 训练师职业
详细说明:当trainer_type=0(职业训练师)或trainer_type=3(宠物训练师)时,玩家的职业必须与此值匹配才能使用该训练师。
取值范围:1 - 11 (对应不同职业)
职业对应:
  • 1 - 战士
  • 2 - 圣骑士
  • 3 - 猎人 (宠物训练师必须设置为3)
  • 4 - 盗贼
  • 5 - 牧师
  • 7 - 萨满
  • 8 - 法师
  • 9 - 术士
  • 11 - 德鲁伊

特殊用途:宠物训练师必须设置为3(猎人)
注意:只在trainer_type=0或3时生效
trainer_race tinyint unsigned 训练师种族
详细说明:当trainer_type=1(坐骑训练师)时,玩家的种族必须与此值匹配才能使用该训练师。这用于实现种族特定的坐骑训练。
取值范围:1 - 11 (对应不同种族)
种族对应:
  • 1 - 人类
  • 2 - 兽人
  • 3 - 矮人
  • 4 - 暗夜精灵
  • 5 - 亡灵
  • 6 - 牛头人
  • 7 - 侏儒
  • 8 - 巨魔
  • 10 - 血精灵
  • 11 - 德莱尼

应用:确保玩家只能从自己种族的训练师那里学习骑术
注意:只在trainer_type=1时生效
type tinyint unsigned 生物类型 (0=无, 1=野兽, 2=龙类, 3=恶魔, 4=元素, 5=巨人, 6=亡灵, 7=人型, 8=小动物, 9=机械, 10=未指定, 11=图腾, 12=非战斗宠物, 13=气体云)
详细说明:定义生物的基本类型分类,影响法术效果、特殊能力和游戏机制的交互。这是一个重要的分类字段。
取值范围:0 - 13 (14种生物类型)
生物类型详解:
  • 0 - 无:未分类或特殊生物
  • 1 - 野兽:动物类生物,可被猎人驯服
  • 2 - 龙类:龙族生物,通常强大且智慧
  • 3 - 恶魔:恶魔类生物,来自扭曲虚空
  • 4 - 元素:元素生物,如火元素、水元素
  • 5 - 巨人:巨型生物
  • 6 - 亡灵:不死生物,受特定法术影响
  • 7 - 人型:人形生物,包括各种智慧种族
  • 8 - 小动物:小型动物,通常无害
  • 9 - 机械:机械构造体
  • 10 - 未指定:未明确分类
  • 11 - 图腾:图腾类物体
  • 12 - 非战斗宠物:装饰性宠物
  • 13 - 气体云:气体形态生物

法术交互:某些法术只对特定类型的生物有效
注意:类型选择会影响多种游戏机制,需要谨慎设置
type_flags int unsigned 类型标志 (位掩码)
详细说明:控制生物特殊属性和能力的位掩码字段。这些标志决定了生物的特殊行为和玩家与其的交互方式。
取值范围:0 - 4294967295 (int unsigned的范围)
重要标志:
  • 1 (0x00000001) - 可驯服:生物可以被猎人驯服(需要type=1)
  • 2 (0x00000002) - 对鬼魂可见:死亡玩家可以看到该生物
  • 4 (0x00000004) - BOSS怪物:显示骷髅图标,免疫击退
  • 256 (0x00000100) - 可采草:死后可以用草药学采集
  • 512 (0x00000200) - 可采矿:死后可以用采矿技能采集
  • 32768 (0x00008000) - 可工程学拾取:工程师可以拾取特殊材料
  • 65536 (0x00010000) - 可驯服奇异宠物:需要特殊天赋才能驯服
  • 67108864 (0x04000000) - 视为团队单位:可被需要团队目标的法术影响

特殊功能:
  • 控制生物是否可以被特定专业技能处理
  • 影响某些法术的目标选择
  • 决定生物的视觉标识

注意:某些标志需要配合其他字段才能生效
lootid mediumint unsigned 掉落模板ID
详细说明:指定生物死亡后的掉落模板ID,链接到creature_loot_template表。当生物被击杀时,服务器会根据这个ID查找对应的掉落表来决定掉落什么物品。
取值范围:0 - 16777215 (0表示无掉落)
掉落机制:
  • ID必须在creature_loot_template表中存在
  • 支持概率掉落和条件掉落
  • 可以设置组掉落和互斥掉落
  • 支持任务物品和普通物品混合掉落

设计建议:
  • 普通怪物:设置基础材料和少量装备
  • 精英怪物:增加稀有物品和更多金币
  • BOSS:设置高级装备和特殊物品
  • 任务怪物:确保任务物品有合适的掉落率

注意:lootid通常与entry相同,但可以设置为不同值来共享掉落表
pickpocketloot mediumint unsigned 偷窃掉落模板ID
详细说明:指定生物的偷窃掉落模板ID,链接到pickpocketing_loot_template表。盗贼职业可以使用"偷窃"技能从活着的人型生物身上偷取物品。
取值范围:0 - 16777215 (0表示无法偷窃)
偷窃机制:
  • 只有盗贼职业可以使用偷窃技能
  • 目标必须是活着的人型生物(type=7)
  • 每个生物只能被偷窃一次
  • 偷窃不会使生物进入战斗状态
  • 需要在生物背后或侧面进行

常见偷窃物品:
  • 少量金币
  • 盗贼专用毒药材料
  • 开锁工具和钥匙
  • 食物和饮料
  • 特殊的任务物品

设计建议:为人型NPC设置合理的偷窃掉落,增加盗贼职业的游戏乐趣
注意:只对type=7(人型)的生物有效,其他类型生物无法被偷窃
skinloot mediumint unsigned 剥皮掉落模板ID
详细说明:指定生物的剥皮掉落模板ID,链接到skinning_loot_template表。拥有剥皮技能的玩家可以从死亡的可剥皮生物身上获取皮革、鳞片等材料。
取值范围:0 - 16777215 (0表示无法剥皮)
剥皮条件:
  • 玩家必须学会剥皮技能
  • 生物必须设置unit_flags包含可剥皮标志(67108864)
  • 生物必须已经死亡
  • 生物尸体必须未被其他玩家剥皮
  • 玩家剥皮技能等级必须足够

适用生物类型:
  • 野兽类:获得各种皮革(轻皮、中皮、厚皮等)
  • 龙类:获得龙鳞和特殊皮革
  • 恶魔类:获得恶魔皮革
  • 爬行动物:获得鳞片类材料

剥皮材料等级:根据生物等级决定获得的材料品质
注意:必须同时设置unit_flags的可剥皮标志才能生效
PetSpellDataId mediumint unsigned 宠物法术数据ID
详细说明:指定CreatureSpellData.dbc中的ID,定义宠物在客户端显示的法术技能。这个字段主要用于宠物系统,决定宠物的技能栏显示内容。
取值范围:0 - 16777215 (0表示无特殊法术数据)
应用场景:
  • 猎人宠物:显示宠物的特殊技能和能力
  • 术士宠物:显示恶魔的专属技能
  • 死亡骑士宠物:显示食尸鬼的技能
  • 临时宠物:显示召唤生物的技能

技能类型:
  • 主动攻击技能
  • 被动能力
  • 特殊效果技能
  • 宠物专属技能

数据来源:ID必须存在于CreatureSpellData.dbc文件中
注意:这个字段主要影响客户端显示,实际技能效果由AI和脚本控制
VehicleId mediumint unsigned 载具ID
详细说明:如果生物是载具或具有载具功能,这个字段指定载具的ID。载具系统允许玩家"乘坐"生物,并可能获得特殊的技能和控制方式。
取值范围:0 - 16777215 (0表示非载具)
载具功能:
  • 玩家显示方式:决定玩家在载具上的位置和姿态
  • 移动控制:控制载具的移动方式和速度
  • 技能栏:是否显示载具专用的动作栏
  • 视角控制:载具的摄像机视角设置

载具类型:
  • 飞行载具:飞龙、狮鹫、飞艇等
  • 地面载具:战车、攻城器械等
  • 水上载具:船只、潜艇等
  • 特殊载具:任务专用载具、传送载具等

配置要求:
  • 载具ID必须在Vehicle.dbc中定义
  • 需要配合适当的npcflag设置
  • 可能需要特殊的AI支持

注意:载具系统较为复杂,需要客户端和服务端的协调配置
mingold mediumint unsigned 最小金币掉落 (铜币)
详细说明:生物被击杀时掉落的最小金币数量,以铜币为单位。实际掉落的金币数量会在mingold和maxgold之间随机选择。
取值范围:0 - 16777215 (铜币数量)
金币换算:
  • 1金币 = 10000铜币
  • 1银币 = 100铜币
  • 例如:50000铜币 = 5金币

设计建议:
  • 1-10级怪物:1-50铜币
  • 11-30级怪物:50-500铜币
  • 31-60级怪物:500-2000铜币
  • 精英怪物:比同级普通怪物多2-5倍
  • BOSS:比同级精英多5-10倍

注意:必须 ≤ maxgold,设置为0表示不掉落金币
maxgold mediumint unsigned 最大金币掉落 (铜币)
详细说明:生物被击杀时掉落的最大金币数量,以铜币为单位。与mingold配合使用,实际掉落金币在这个范围内随机生成。
取值范围:0 - 16777215 (铜币数量)
掉落机制:
  • 如果mingold = maxgold,则掉落固定金币
  • 如果mingold < maxgold,则在范围内随机掉落
  • 掉落金币会受到服务器金币倍率设置影响
  • 组队时金币会按队伍规则分配

平衡考虑:
  • 金币掉落应与生物等级和难度匹配
  • 避免设置过高导致经济通胀
  • 考虑玩家的修理费用和消耗品成本
  • BOSS的金币掉落应该有吸引力

注意:必须 ≥ mingold,合理的金币掉落有助于游戏经济平衡
AIName char(64) AI名称
详细说明:指定生物使用的AI(人工智能)名称,决定生物的行为模式、战斗策略和交互方式。不同的AI提供不同的行为复杂度和功能。
字符限制:最大64个字符,区分大小写
常用AI类型:
  • NullCreatureAI - 空AI,生物完全静止,不做任何反应
  • AggressorAI - 攻击型AI,主动攻击进入范围的敌对目标,只使用近战
  • ReactorAI - 反应型AI,只有被攻击时才反击,只使用近战
  • PassiveAI - 被动AI,永远不会攻击,即使被攻击也不反击
  • CritterAI - 小动物AI,被攻击时会逃跑
  • GuardAI - 守卫AI,在特定区域内巡逻和守护
  • CombatAI - 战斗AI,会使用法术和特殊技能进行战斗
  • SmartAI - 智能AI,通过smart_scripts表定义复杂行为
  • PetAI - 宠物AI,用于玩家宠物的行为控制
  • TotemAI - 图腾AI,用于图腾类生物

选择建议:
  • 普通怪物:AggressorAI或CombatAI
  • NPC:SmartAI(配合脚本)或NullCreatureAI
  • BOSS:SmartAI(需要复杂脚本)
  • 装饰生物:CritterAI或PassiveAI

注意:如果同时设置了ScriptName,ScriptName会覆盖AIName
MovementType tinyint unsigned 移动类型 (0=静止, 1=随机, 2=路径)
详细说明:定义生物的默认移动模式,控制生物在非战斗状态下的移动行为。这个设置会影响生物的巡逻和待机行为。
取值范围:0 - 2 (3种移动类型)
移动类型详解:
  • 0 - 静止 (IDLE_MOTION_TYPE):生物保持在原地不动,不会主动移动
  • 1 - 随机移动 (RANDOM_MOTION_TYPE):在wander_distance半径内随机移动
  • 2 - 路径移动 (WAYPOINT_MOTION_TYPE):按照预设路径点循环移动

配置要求:
  • 类型0:无需额外配置
  • 类型1:需要在creature表中设置wander_distance > 0
  • 类型2:需要在waypoint_data表中定义路径点

应用场景:
  • 守卫NPC:类型0,保持固定位置
  • 野生动物:类型1,在区域内自由活动
  • 巡逻兵:类型2,按固定路线巡逻
  • 商人NPC:类型0,固定在商店位置

注意:战斗状态下移动行为由AI控制,此字段只影响非战斗状态
HoverHeight float 悬浮高度 (默认: 1)
详细说明:如果生物启用了MOVEMENTFLAG_DISABLE_GRAVITY移动标志,这个字段定义生物在地面上方悬浮的距离。主要用于飞行或悬浮类生物。
取值范围:0.1 - 100.0 (建议范围,单位:码)
悬浮机制:
  • 需要配合适当的unit_flags设置
  • 生物会始终保持在地面上方指定高度
  • 不受重力影响,可以在空中移动
  • 可以穿越地形障碍

应用场景:
  • 飞行生物:龙类、飞行恶魔等,设置较高值
  • 悬浮生物:元素、幽灵等,设置中等值
  • 漂浮物体:魔法水晶、符文石等
  • 特殊效果:任务相关的悬浮NPC

高度建议:
  • 1.0-3.0:轻微悬浮效果
  • 5.0-10.0:明显的飞行高度
  • 15.0+:高空飞行生物

注意:过高的悬浮高度可能导致玩家无法攻击到生物
HealthModifier float 生命值修正系数 (默认: 1)
详细说明:用于修改生物基础生命值的修正系数。最终生命值 = 基础生命值(来自creature_classlevelstats) × HealthModifier。这是调整生物难度的重要参数。
取值范围:0.1 - 1000.0 (建议范围)
修正系数说明:
  • 1.0 - 标准生命值 (默认值)
  • 0.5 - 生命值减半 (用于弱化生物)
  • 2.0 - 生命值翻倍 (用于强化生物)
  • 5.0 - 5倍生命值 (精英怪物)
  • 10.0+ - 超高生命值 (BOSS级别)

设计建议:
  • 普通怪物:0.8-1.2 (微调)
  • 精英怪物:2.0-5.0
  • 稀有怪物:3.0-8.0
  • 副本BOSS:10.0-50.0
  • 世界BOSS:100.0+

平衡考虑:
  • 与DamageModifier配合调整整体难度
  • 考虑玩家等级和装备水平
  • 团队副本需要更高的生命值

注意:过高的生命值可能导致战斗过于冗长,影响游戏体验
ManaModifier float 法力值修正系数 (默认: 1)
详细说明:用于修改生物基础法力值的修正系数。最终法力值 = 基础法力值(来自creature_classlevelstats) × ManaModifier。只对有法力值的职业(圣骑士、法师)生效。
取值范围:0.1 - 1000.0 (建议范围)
适用职业:
  • unit_class = 2 (圣骑士):显示生命值和法力值
  • unit_class = 8 (法师):显示生命值和法力值
  • unit_class = 1 (战士):无法力值,此字段无效
  • unit_class = 4 (盗贼):无法力值,此字段无效

修正系数说明:
  • 1.0 - 标准法力值 (默认值)
  • 0.5 - 法力值减半 (限制施法能力)
  • 2.0 - 法力值翻倍 (增强施法能力)
  • 5.0+ - 超高法力值 (法师型BOSS)

设计考虑:
  • 法力值影响生物的施法频率和持续能力
  • 法师型生物通常需要更高的法力值
  • BOSS级法师需要足够法力支撑长时间战斗
  • 配合AI脚本设计合理的法术使用策略

注意:对于无法力值的职业,此字段不产生任何效果
ArmorModifier float 护甲修正系数 (默认: 1)
详细说明:用于修改生物基础护甲值的修正系数。最终护甲值 = 基础护甲值(来自creature_classlevelstats) × ArmorModifier。护甲值直接影响生物受到的物理伤害减免。
取值范围:0.0 - 100.0 (建议范围)
护甲机制:
  • 护甲值越高,受到的物理伤害越少
  • 护甲只影响物理伤害,不影响法术伤害
  • 护甲减伤有上限,不会完全免疫伤害
  • 玩家的护甲穿透可以降低生物的有效护甲

修正系数说明:
  • 1.0 - 标准护甲值 (默认值)
  • 0.5 - 护甲减半 (脆弱的法师型生物)
  • 2.0 - 护甲翻倍 (重装甲生物)
  • 5.0+ - 超高护甲 (坦克型BOSS)
  • 0.0 - 无护甲 (完全不减免物理伤害)

设计建议:
  • 法师型生物:0.3-0.7 (低护甲,高法术抗性)
  • 战士型生物:1.5-3.0 (高护甲,低法术抗性)
  • 坦克型BOSS:3.0-10.0 (极高护甲)
  • 敏捷型生物:0.8-1.2 (中等护甲)

注意:护甲值过高可能导致物理职业难以造成有效伤害
DamageModifier float 伤害修正系数 (默认: 1)
详细说明:用于修改生物基础伤害的修正系数。最终伤害 = 基础伤害(来自creature_classlevelstats) × DamageModifier。这是调整生物攻击力的关键参数。
取值范围:0.1 - 100.0 (建议范围)
伤害计算:
  • 影响生物的近战攻击伤害
  • 影响生物的远程攻击伤害
  • 不直接影响法术伤害(法术伤害由具体法术定义)
  • 与BaseVariance和RangeVariance配合使用

修正系数说明:
  • 1.0 - 标准伤害 (默认值)
  • 0.5 - 伤害减半 (弱化生物)
  • 2.0 - 伤害翻倍 (强化生物)
  • 5.0 - 5倍伤害 (精英怪物)
  • 10.0+ - 超高伤害 (BOSS级别)

设计建议:
  • 普通怪物:0.8-1.2 (微调)
  • 精英怪物:1.5-3.0
  • 稀有怪物:2.0-4.0
  • 副本BOSS:3.0-8.0
  • 世界BOSS:5.0-15.0

平衡考虑:
  • 与HealthModifier配合调整整体难度
  • 考虑玩家的护甲和生命值
  • 避免一击必杀的情况
  • 坦克职业应该能够承受伤害

注意:过高的伤害可能导致玩家无法生存,影响游戏平衡
ExperienceModifier float 经验修正系数 (默认: 1)
详细说明:用于修改击杀生物获得的经验值修正系数。最终经验值 = 基础经验值 × ExperienceModifier × 服务器经验倍率。这个字段可以调整特定生物的经验奖励。
取值范围:0.0 - 100.0 (建议范围)
经验计算:
  • 基础经验值由生物等级和玩家等级差决定
  • 受到服务器全局经验倍率影响
  • 受到玩家组队状态影响
  • 受到休息经验加成影响

修正系数说明:
  • 1.0 - 标准经验值 (默认值)
  • 0.0 - 无经验奖励 (用于训练假人等)
  • 0.5 - 经验减半 (降低练级效率)
  • 2.0 - 经验翻倍 (精英怪物)
  • 5.0+ - 高经验奖励 (BOSS、稀有怪物)

设计建议:
  • 普通怪物:1.0 (标准经验)
  • 精英怪物:2.0-3.0 (高经验奖励)
  • 稀有怪物:3.0-5.0 (更高奖励)
  • 副本BOSS:5.0-10.0 (丰厚奖励)
  • 任务怪物:1.0-1.5 (适度奖励)
  • 训练假人:0.0 (无经验)

平衡考虑:
  • 经验奖励应与生物难度匹配
  • 避免创造过于高效的练级点
  • 考虑服务器整体练级节奏

注意:过高的经验修正可能破坏游戏平衡和练级体验
RacialLeader tinyint unsigned 种族领袖 (0=否, 1=是)
详细说明:标志字段,指示生物是否为种族领袖。种族领袖是各个种族的重要NPC,击杀种族领袖会获得特殊的荣誉值奖励。
取值范围:0 或 1 (布尔值)
取值说明:
  • 0 - 不是种族领袖 (默认值)
  • 1 - 是种族领袖

种族领袖奖励:
  • 击杀种族领袖可获得100点荣誉值
  • 在PvP服务器上是重要的荣誉来源
  • 通常伴随着服务器全局公告
  • 可能触发特殊的成就或事件

官方种族领袖:
  • 联盟:瓦里安·乌瑞恩(暴风城)、玛格尼·铜须(铁炉堡)、泰兰德·语风(达纳苏斯)、维伦(埃索达)
  • 部落:萨尔(奥格瑞玛)、希尔瓦娜斯·风行者(幽暗城)、凯恩·血蹄(雷霆崖)、洛尔塞玛·塞隆(银月城)

设计考虑:
  • 种族领袖通常等级很高且非常强大
  • 需要大量玩家协作才能击杀
  • 死亡后通常有较长的重生时间
  • 位于各自种族的主城中

注意:只有真正的种族领袖才应该设置此标志为1
movementId int unsigned 移动ID
详细说明:指定生物的移动ID,用于定义特殊的移动行为和动画。这个字段通常用于需要特殊移动模式的生物,如飞行、游泳或特殊的移动动画。
取值范围:0 - 4294967295 (0表示使用默认移动)
移动类型:
  • 0 - 默认移动 (标准地面移动)
  • 特殊ID - 自定义移动模式

应用场景:
  • 飞行生物:需要特殊的飞行移动模式
  • 水生生物:需要游泳移动模式
  • 特殊载具:需要自定义的移动行为
  • BOSS:可能需要特殊的移动动画
  • 事件NPC:剧情需要的特殊移动

技术细节:
  • 移动ID通常与客户端的移动数据文件关联
  • 可能影响移动速度和动画
  • 需要与其他移动相关字段配合使用
  • 某些移动模式可能需要特殊的地形支持

配置建议:
  • 大多数普通生物使用默认值0
  • 特殊生物根据需要设置对应ID
  • 测试确保移动行为符合预期

注意:错误的移动ID可能导致生物移动异常或客户端错误
RegenHealth tinyint unsigned 生命值回复 (0=否, 1=是)
详细说明:布尔值字段,控制生物是否应该自动回复生命值。当生物脱离战斗状态后,如果此字段为1,生物会逐渐回复生命值到满血状态。
取值范围:0 或 1 (布尔值)
取值说明:
  • 0 - 不回复生命值
  • 1 - 自动回复生命值 (默认值)

回复机制:
  • 只在脱离战斗状态后开始回复
  • 回复速度由服务器配置决定
  • 回复到最大生命值后停止
  • 进入战斗状态会停止回复

应用场景:
  • 普通怪物:设置为1,确保重置后满血
  • BOSS:通常设置为1,避免被消耗战术
  • 训练假人:设置为0,保持受伤状态
  • 特殊NPC:根据剧情需要设置
  • 事件生物:可能需要保持特定生命值

设计考虑:
  • 大多数生物应该设置为1
  • 只有特殊用途的生物才设置为0
  • 影响玩家的战斗策略和节奏
  • 与AI行为和重生机制配合

注意:设置为0的生物在受伤后不会自动回复,可能影响游戏体验
mechanic_immune_mask int unsigned 机制免疫掩码 (位掩码)
详细说明:使生物对特定法术机制免疫的位掩码字段。通过设置相应的位标志,可以让生物免疫特定类型的控制效果和负面状态。
取值范围:0 - 4294967295 (int unsigned的范围)
常用机制免疫:
  • 1 (0x00000001) - 魅惑免疫
  • 2 (0x00000002) - 缴械免疫
  • 4 (0x00000004) - 恐惧免疫
  • 8 (0x00000008) - 定身免疫
  • 16 (0x00000010) - 减速免疫
  • 32 (0x00000020) - 沉默免疫
  • 64 (0x00000040) - 睡眠免疫
  • 128 (0x00000080) - 诱捕免疫
  • 256 (0x00000100) - 昏迷免疫
  • 512 (0x00000200) - 冰冻免疫
  • 1024 (0x00000400) - 击退免疫
  • 2048 (0x00000800) - 变形免疫
  • 4096 (0x00001000) - 放逐免疫
  • 8192 (0x00002000) - 护盾免疫
  • 16384 (0x00004000) - 束缚免疫
  • 32768 (0x00008000) - 坐骑免疫
  • 65536 (0x00010000) - 感染免疫
  • 131072 (0x00020000) - 转向免疫
  • 262144 (0x00040000) - 恐怖免疫
  • 524288 (0x00080000) - 无敌免疫
  • 1048576 (0x00100000) - 打断免疫
  • 2097152 (0x00200000) - 迷惑免疫
  • 4194304 (0x00400000) - 狂怒免疫

组合使用:可以将多个机制免疫相加来组合效果
设计建议:
  • BOSS:通常免疫大部分控制效果
  • 精英怪物:免疫部分控制效果
  • 机械生物:免疫魅惑、恐惧、变形等
  • 亡灵生物:免疫魅惑、睡眠等

注意:过多的免疫可能让某些职业失去作用,需要平衡考虑
spell_school_immune_mask int unsigned 法术学派免疫掩码 (位掩码)
详细说明:使生物对特定法术学派免疫的位掩码字段。通过设置相应的位标志,可以让生物完全免疫特定学派的所有法术伤害和效果。
取值范围:0 - 127 (7个法术学派的组合)
法术学派免疫:
  • 1 (0x01) - 物理免疫 (SPELL_SCHOOL_NORMAL)
  • 2 (0x02) - 神圣免疫 (SPELL_SCHOOL_HOLY)
  • 4 (0x04) - 火焰免疫 (SPELL_SCHOOL_FIRE)
  • 8 (0x08) - 自然免疫 (SPELL_SCHOOL_NATURE)
  • 16 (0x10) - 冰霜免疫 (SPELL_SCHOOL_FROST)
  • 32 (0x20) - 暗影免疫 (SPELL_SCHOOL_SHADOW)
  • 64 (0x40) - 奥术免疫 (SPELL_SCHOOL_ARCANE)

免疫效果:
  • 完全免疫对应学派的所有伤害
  • 免疫对应学派的所有负面效果
  • 免疫对应学派的控制效果
  • 显示"免疫"文字提示

组合示例:
  • 6 (4+2) - 火焰+神圣免疫
  • 96 (64+32) - 奥术+暗影免疫
  • 126 (除物理外全免疫) - 只受物理伤害

设计建议:
  • 火元素:火焰免疫,冰霜弱点
  • 冰元素:冰霜免疫,火焰弱点
  • 亡灵生物:暗影免疫,神圣弱点
  • 神圣生物:神圣免疫,暗影弱点
  • 机械生物:物理抗性,奥术弱点

平衡考虑:
  • 避免免疫过多学派,确保所有职业都有作用
  • 考虑设置对应的弱点学派
  • BOSS可以有1-2个免疫学派

注意:物理免疫会让物理职业完全无法造成伤害,需要谨慎使用
flags_extra int unsigned 额外标志 (位掩码)
详细说明:控制生物特定属性和行为的额外标志位掩码字段。这些标志提供了超出标准unit_flags的额外功能控制。
取值范围:0 - 4294967295 (int unsigned的范围)
常用额外标志:
  • 1 (0x00000001) - 实例绑定:生物绑定到特定副本
  • 2 (0x00000002) - 平民:标记为平民,击杀可能影响声望
  • 4 (0x00000004) - 不格挡:生物无法格挡攻击
  • 8 (0x00000008) - 不招架:生物无法招架攻击
  • 16 (0x00000010) - 不闪避:生物无法闪避攻击
  • 32 (0x00000020) - 无碾压攻击:禁用碾压攻击机制
  • 64 (0x00000040) - 无经验值:击杀后不给予经验值
  • 128 (0x00000080) - 触发器:标记为触发器生物
  • 256 (0x00000100) - 嘲讽免疫:免疫嘲讽效果
  • 512 (0x00000200) - 世界事件:与世界事件相关的生物
  • 1024 (0x00000400) - 鬼魂可见:死亡玩家可以看到
  • 2048 (0x00000800) - 使用副手攻击:启用副手武器攻击
  • 4096 (0x00001000) - 不重置威胁:不重置仇恨列表
  • 8192 (0x00002000) - 无近战:禁用近战攻击
  • 16384 (0x00004000) - 不随机移动:禁用随机移动
  • 32768 (0x00008000) - 守卫:标记为守卫类型
  • 65536 (0x00010000) - 忽略假死:不受假死技能影响
  • 131072 (0x00020000) - 无暴击:攻击无法造成暴击
  • 262144 (0x00040000) - 无威胁重定向:威胁不会重定向
  • 524288 (0x00080000) - 困难模式:困难模式专用
  • 1048576 (0x00100000) - 瞬间出现:立即出现,无生成动画
  • 2097152 (0x00200000) - 强制启用:强制启用某些功能

组合使用:可以将多个标志相加来组合效果
设计建议:
  • 训练假人:64(无经验) + 4(不格挡) + 8(不招架) + 16(不闪避)
  • BOSS:256(嘲讽免疫) + 32(无碾压攻击)
  • 触发器NPC:128(触发器) + 64(无经验)
  • 事件生物:512(世界事件) + 1048576(瞬间出现)

注意:某些标志可能与其他系统冲突,使用前需要测试验证
ScriptName char(64) 脚本名称
详细说明:指定生物使用的C++脚本名称。如果同时设置了ScriptName和AIName字段,ScriptName字段会覆盖AIName字段。这用于需要复杂自定义行为的生物。
字符限制:最大64个字符,区分大小写
脚本优先级:
  • ScriptName > AIName > 默认AI
  • 如果ScriptName不为空,将忽略AIName
  • 如果脚本不存在,会回退到AIName

脚本类型:
  • BOSS脚本:复杂的战斗机制和阶段转换
  • 事件脚本:特殊的剧情和交互逻辑
  • NPC脚本:自定义的对话和功能
  • 载具脚本:载具的特殊控制逻辑
  • 宠物脚本:宠物的特殊行为

常见脚本示例:
  • boss_arthas - 阿尔萨斯BOSS脚本
  • npc_innkeeper - 旅店老板脚本
  • npc_flight_master - 飞行管理员脚本
  • vehicle_siege_engine - 攻城器械脚本
  • generic_creature - 通用生物脚本

开发要求:
  • 脚本必须在服务端代码中实现
  • 需要重新编译服务端才能生效
  • 脚本名称必须与代码中注册的名称完全匹配
  • 错误的脚本名称会导致生物使用默认AI

使用建议:
  • 复杂BOSS使用自定义脚本
  • 普通生物优先使用SmartAI
  • 特殊功能NPC使用专用脚本
  • 测试环境先验证脚本功能

注意:脚本开发需要C++编程知识,错误的脚本可能导致服务器崩溃
VerifiedBuild smallint 验证版本号
详细说明:用于确定生物模板是否已从WDB文件验证的字段。这个字段帮助开发者跟踪数据的来源和验证状态,确保数据的准确性和完整性。
取值范围:-32768 到 32767 (smallint的范围)
取值含义:
  • 0 - 尚未解析:数据尚未从客户端文件中解析
  • 正值 - 已验证:表示已用特定客户端版本解析,数值为build号
  • -1 - 占位符:临时占位符数据
  • 负值 - 已编辑:表示已解析但后来被手动编辑过

常见build版本:
  • 12340 - 魔兽世界3.3.5a客户端版本
  • 15595 - 魔兽世界4.3.4客户端版本
  • 其他正值 - 对应的客户端build号

数据管理:
  • 帮助识别数据的可靠性
  • 跟踪数据的更新历史
  • 区分官方数据和自定义数据
  • 便于数据库维护和更新

使用建议:
  • 官方数据:保持原有的正值build号
  • 自定义数据:设置为0或-1
  • 修改过的官方数据:设置为对应的负值
  • 新创建的数据:设置为0

数据质量:
  • 正值通常表示高质量的官方数据
  • 0值表示需要验证的数据
  • 负值表示可能需要重新检查的数据

注意:这个字段主要用于数据管理,不影响游戏功能,但有助于维护数据质量

相关表

使用示例

创建一个基本NPC

以下是创建一个基本NPC的SQL示例:

INSERT INTO creature_template (
    entry, name, subname, minlevel, maxlevel, faction, npcflag,
    scale, rank, AIName, MovementType, HealthModifier,
    ManaModifier, RegenHealth
) VALUES (
    100001, '测试NPC', '友好的商人', 60, 60, 35, 128,
    1.0, 0, 'SmartAI', 0, 1.0,
    1.0, 1
);

创建一个训练师NPC

以下是创建一个职业训练师的SQL示例:

INSERT INTO creature_template (
    entry, name, subname, minlevel, maxlevel, faction, npcflag,
    trainer_type, trainer_class, scale, rank, AIName,
    MovementType, HealthModifier, RegenHealth
) VALUES (
    100002, '战士训练师', '武器大师', 60, 60, 35, 16,
    0, 1, 1.0, 0, 'SmartAI',
    0, 1.0, 1
);

创建一个BOSS怪物

以下是创建一个BOSS怪物的SQL示例:

INSERT INTO creature_template (
    entry, name, subname, minlevel, maxlevel, faction, rank,
    type_flags, scale, AIName, MovementType, HealthModifier,
    DamageModifier, lootid, RegenHealth
) VALUES (
    100003, '恐怖领主', '黑暗之主', 70, 70, 14, 3,
    4, 1.2, 'SmartAI', 0, 10.0,
    3.0, 100003, 1
);