生物模板表存储了游戏中所有生物类型的基本信息。这个表定义了NPC、怪物、宠物等生物的属性和行为。
字段名 | 类型 | 描述 |
---|---|---|
entry | mediumint unsigned | 生物模板ID (主键) |
详细说明:生物的唯一标识符,是表的主键。这个ID在游戏中用于引用特定类型的生物。每个生物模板都必须有一个唯一的entry值,游戏通过这个ID来识别和加载对应的生物数据。
取值范围:1 - 16777215 (mediumint unsigned的最大值) 注意事项:
|
||
difficulty_entry_1 | mediumint unsigned | 25人普通难度模板ID |
详细说明:用于定义25人普通难度下生物的模板ID。当玩家进入25人普通难度的副本时,游戏会使用这个字段指定的模板来生成生物,而不是使用基础的entry模板。
取值范围:0 - 16777215 (0表示不使用难度模板) 使用场景:
示例:辛德拉苟萨(entry=36853)在25人普通模式使用difficulty_entry_1=38265 |
||
difficulty_entry_2 | mediumint unsigned | 10人英雄难度模板ID |
详细说明:用于定义10人英雄难度下生物的模板ID。当玩家进入10人英雄难度的副本时,游戏会使用这个字段指定的模板来生成生物。英雄难度通常比普通难度更具挑战性。
取值范围:0 - 16777215 (0表示不使用难度模板) 难度对比:
示例:辛德拉苟萨(entry=36853)在10人英雄模式使用difficulty_entry_2=38266 |
||
difficulty_entry_3 | mediumint unsigned | 25人英雄难度模板ID |
详细说明:用于定义25人英雄难度下生物的模板ID。这是最高难度的团队副本模式,生物拥有最强的属性和最复杂的机制。
取值范围:0 - 16777215 (0表示不使用难度模板) 难度等级:
特点:最高的生命值、伤害和最复杂的战斗机制,提供最好的奖励 示例:辛德拉苟萨(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表示不使用第二个击杀奖励) 组合使用:
限制:最多只能设置两个击杀奖励目标,更多目标需要脚本支持 |
||
name | char(100) | 生物名称 |
详细说明:生物的主要名称,这是显示在生物头顶、目标框、聊天窗口等地方的主要标识文字。名称支持多语言,会根据客户端语言显示对应的文本。
字符限制:最大100个字符,支持UTF-8编码 显示位置:
命名建议:使用有意义的名称,避免特殊字符,考虑本地化需求 示例:"暴风城卫兵"、"部落战士"、"巫妖王阿尔萨斯" |
||
subname | char(100) | 生物子名称/称号 |
详细说明:生物的子名称或称号,显示在主名称下方的尖括号中,用于提供额外的身份信息、职业描述或特殊标识。这个字段是可选的。
字符限制:最大100个字符,可以为空(NULL) 显示格式:在游戏中显示为 <subname> 的形式 常见用途:
示例:name="约翰", subname="铁匠" → 显示为 约翰<铁匠> |
||
IconName | char(100) | 图标名称 (鼠标悬停显示的图标类型) |
详细说明:用于告诉玩家这个生物是什么类型的NPC,控制鼠标悬停在生物上时显示的光标图标。这个字段帮助玩家快速识别NPC的功能。
字符限制:最大100个字符,可以为空(NULL) 常用图标类型:
注意:名称区分大小写,必须使用准确的拼写 |
||
gossip_menu_id | mediumint unsigned | 对话菜单ID |
详细说明:这个生物的对话菜单ID,链接到gossip_menu表。当玩家右键点击NPC时,会显示对应的对话选项。这个字段通常从游戏数据嗅探中获得。
取值范围:0 - 16777215 (0表示没有对话菜单) 数据来源:
功能作用:
注意:如果NPC有npcflag但没有gossip_menu_id,可能无法正常交互 |
||
minlevel | tinyint unsigned | 最小等级 |
详细说明:生物的最小等级。如果minlevel和maxlevel相同,生物将始终是固定等级;如果不同,生物在生成时会在这个范围内随机选择一个等级。
取值范围:1 - 255 (tinyint unsigned的范围) 等级影响:
设计建议:
注意:等级必须 ≤ maxlevel,建议最小值为1 |
||
maxlevel | tinyint unsigned | 最大等级 |
详细说明:生物的最大等级。与minlevel配合使用,定义生物的等级范围。生物在生成时会在minlevel到maxlevel之间随机选择一个等级。
取值范围:1 - 255 (tinyint unsigned的范围) 等级范围设置:
版本限制:
平衡考虑:等级差距过大会影响玩家体验和经验获取 注意:必须 ≥ minlevel,建议不超过当前版本等级上限 |
||
exp | smallint | 扩展版本 (0=经典版, 1=燃烧远征, 2=巫妖王之怒) |
详细说明:指定生物使用哪个扩展版本的数据表来计算生命值。这个字段决定了生物从creature_classlevelstats表的哪一列获取基础属性数据。
取值范围:0 - 2 (对应不同的扩展版本) 版本对应:
影响属性:
选择建议:根据生物所在区域和等级范围选择对应的扩展版本 注意:必须与生物的等级范围和所在区域的扩展版本匹配 |
||
faction | smallint unsigned | 阵营ID |
详细说明:定义生物所属的阵营,决定了生物对玩家和其他生物的敌对性。阵营ID对应FactionTemplate.dbc文件中的记录,控制着复杂的敌友关系系统。
取值范围:0 - 65535 (smallint unsigned的范围) 重要功能:
常用阵营:
设计建议:根据生物的角色和所在区域选择合适的阵营 注意:阵营设置错误可能导致意外的敌对或协助行为 |
||
npcflag | int unsigned | NPC标志 (位掩码) |
详细说明:定义NPC的交互功能,是一个位掩码值,可以组合多个标志来赋予NPC不同的功能。这个字段决定了玩家能与NPC进行哪些类型的交互。
取值范围:0 - 4294967295 (int unsigned的范围) 常用标志值:
组合使用:可以将多个标志相加,如商人+修理=128+4096=4224 注意:设置npcflag后通常还需要配置对应的数据表(如npc_vendor、npc_trainer等) |
||
speed_walk | float | 行走速度 (默认: 1) |
详细说明:控制生物的行走速度。这是生物在非战斗状态下的基础移动速度。对于载具类型的生物,这个字段会影响飞行速度。
取值范围:0.1 - 50.0 (建议范围,理论上可以更大) 标准速度值:
特殊用途:
计算公式:实际速度 = 基础速度 × speed_walk × 2.5 注意:过高的速度值可能导致移动异常或客户端同步问题 |
||
speed_run | float | 跑步速度 (默认: 1.14286) |
详细说明:控制生物的跑步速度。这是生物在战斗状态或追击目标时的移动速度。对于载具类型的生物,这个字段会影响地面移动速度。
取值范围:0.1 - 50.0 (建议范围,理论上可以更大) 标准速度值:
战斗影响:
载具特殊用途:增加地面移动速度,影响载具在地面的行驶速度 平衡建议:不要设置过高,避免玩家无法逃脱或追击 注意:与玩家跑步速度(约7码/秒)对比来设置合理值 |
||
speed_swim | float | 游泳速度 (默认: 1) |
详细说明:控制生物在水中的游泳速度。这个字段只在生物进入水中时生效,决定了生物在水中的移动能力。
取值范围:0.1 - 50.0 (建议范围) 标准速度值:
适用生物类型:
游戏机制:影响生物在水中追击玩家或逃脱的能力 注意:与玩家游泳速度对比,确保合理的游戏体验 |
||
speed_flight | float | 飞行速度 (默认: 1) |
详细说明:控制生物的飞行速度。这个字段只对具有飞行能力的生物生效,如飞行坐骑、飞龙、鸟类等。需要配合相应的移动标志才能实现飞行。
取值范围:0.1 - 50.0 (建议范围) 标准速度值:
适用生物:
技术要求:
注意:飞行速度通常比地面移动速度更快,需要平衡游戏体验 |
||
detection_range | float | 侦测范围 (默认: 20) |
详细说明:控制生物侦测和发现玩家的距离范围。当玩家进入这个范围内时,生物会"看见"玩家并可能做出反应,如攻击、逃跑或其他行为。
取值范围:0.1 - 100.0 (建议范围) 标准侦测范围:
影响因素:
特殊用途:配合AI脚本实现复杂的侦测和警报机制 注意:过大的侦测范围可能导致性能问题和意外的战斗触发 |
||
scale | float | 缩放比例 (默认: 1) |
详细说明:控制生物模型在游戏中显示的大小比例。如果设置为0,将使用DBC文件中的默认模型大小。这个字段可以让同一个模型显示为不同的大小。
取值范围:0.1 - 10.0 (建议范围,0表示使用默认大小) 标准缩放值:
应用场景:
注意事项:
|
||
rank | tinyint unsigned | 等级类型 (0=普通, 1=精英, 2=稀有精英, 3=世界BOSS, 4=稀有) |
详细说明:定义生物的等级类型,影响生物的重生时间、尸体腐烂时间,以及在某些情况下的视觉显示效果。这是一个重要的分类字段。
取值范围:0 - 4 (固定的5个等级类型) 等级类型详解:
视觉效果:
重生机制:
注意:rank主要是视觉和重生时间控制,不直接影响生物属性 |
||
dmgschool | tinyint | 伤害学派 (0=物理, 1=神圣, 2=火焰, 3=自然, 4=冰霜, 5=暗影, 6=奥术) |
详细说明:定义生物近战攻击的伤害学派类型。这决定了生物的普通攻击属于哪种魔法学派,影响伤害计算和抗性检查。
取值范围:0 - 6 (对应7种伤害学派) 伤害学派类型:
应用场景:
游戏机制:
注意:只影响近战攻击,法术伤害由具体法术定义 |
||
BaseAttackTime | int unsigned | 基础攻击时间 (毫秒) |
详细说明:决定生物在近战攻击之间必须等待的基础时间,以毫秒为单位。这个值直接影响生物的攻击频率和DPS输出。
取值范围:500 - 10000 (建议范围,毫秒) 标准攻击时间:
影响因素:攻击时间越短,DPS越高,但单次伤害通常较低 注意:配合DamageModifier使用以平衡总体DPS输出 |
||
RangeAttackTime | int unsigned | 远程攻击时间 (毫秒) |
详细说明:决定生物在远程攻击之间必须等待的基础时间,以毫秒为单位。只有具备远程攻击能力的生物才会使用这个值。
取值范围:1000 - 8000 (建议范围,毫秒) 标准远程攻击时间:
应用:通常比近战攻击时间稍长,平衡远程攻击的优势 |
||
BaseVariance | float | 基础伤害浮动值 (默认: 1) |
详细说明:用于自定义生物近战伤害输出的浮动系数。这个值与DamageModifier配合使用来精确控制伤害计算。
取值范围:0.1 - 5.0 (建议范围) 标准值:
注意:非自定义生物应始终保持为1.0,避免破坏官方平衡 |
||
RangeVariance | float | 远程伤害浮动值 (默认: 1) |
详细说明:用于自定义生物远程伤害输出的浮动系数。与BaseVariance类似,但专门用于远程攻击的伤害计算。
取值范围:0.1 - 5.0 (建议范围) 标准值:
使用建议:与BaseVariance保持一致,除非有特殊的远程攻击平衡需求 注意:只影响远程攻击,近战攻击使用BaseVariance |
||
unit_class | tinyint unsigned | 单位职业 (1=战士, 2=圣骑士, 4=盗贼, 8=法师) |
详细说明:定义生物的职业类型,决定生命值和法力值的等级计算方式。这个字段影响生物从creature_classlevelstats表获取基础属性的方式。
取值范围:1, 2, 4, 8 (固定的4个职业类型) 职业类型详解:
属性影响:
选择建议:根据生物的角色定位选择合适的职业类型 注意:不设置此值会在DB_Errors.log中产生警告 |
||
unit_flags | int unsigned | 单位标志 (位掩码) |
详细说明:控制生物的各种单位属性和行为的位掩码字段。可以组合多个标志来实现复杂的生物行为控制。
取值范围:0 - 4294967295 (int unsigned的范围) 常用标志:
组合使用:可以将多个标志相加来组合效果 注意:某些标志可能与其他字段或AI行为冲突 |
||
unit_flags2 | int unsigned | 单位标志2 (位掩码) |
详细说明:提供额外的单位标志控制,扩展unit_flags的功能。这些标志通常用于更高级或特殊的生物行为控制。
取值范围:0 - 4294967295 (int unsigned的范围) 常用标志:
特殊用途:主要用于高级功能和特殊效果 注意:这些标志通常用于特定的游戏机制,使用时需要了解其具体效果 |
||
dynamicflags | int unsigned | 动态标志 (位掩码) |
详细说明:控制生物视觉外观和动态状态的标志。这些标志主要影响生物在客户端的显示效果和交互状态。
取值范围:0 - 255 (常用范围) 常用标志:
视觉效果:
注意:这些标志主要是视觉效果,不影响生物的实际功能 |
||
family | tinyint | 生物家族 (宠物类型) |
详细说明:定义生物所属的家族,主要用于宠物系统。这个字段决定了生物是否可以被驯服以及属于哪种宠物类型。
取值范围:0 - 46 (对应不同的生物家族) 主要家族类型:
宠物系统:
注意:只有type=1(野兽)且设置了相应type_flags的生物才能被驯服 |
||
trainer_type | tinyint | 训练师类型 (0=职业, 1=坐骑, 2=专业, 3=宠物) |
详细说明:如果NPC是训练师(npcflag包含训练师标志),这个字段控制训练师的类型。必须与相关字段配合使用才能正常工作。
取值范围:0 - 3 (4种训练师类型) 训练师类型:
配套设置:必须同时设置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 (对应不同职业) 职业对应:
特殊用途:宠物训练师必须设置为3(猎人) 注意:只在trainer_type=0或3时生效 |
||
trainer_race | tinyint unsigned | 训练师种族 |
详细说明:当trainer_type=1(坐骑训练师)时,玩家的种族必须与此值匹配才能使用该训练师。这用于实现种族特定的坐骑训练。
取值范围:1 - 11 (对应不同种族) 种族对应:
应用:确保玩家只能从自己种族的训练师那里学习骑术 注意:只在trainer_type=1时生效 |
||
type | tinyint unsigned | 生物类型 (0=无, 1=野兽, 2=龙类, 3=恶魔, 4=元素, 5=巨人, 6=亡灵, 7=人型, 8=小动物, 9=机械, 10=未指定, 11=图腾, 12=非战斗宠物, 13=气体云) |
详细说明:定义生物的基本类型分类,影响法术效果、特殊能力和游戏机制的交互。这是一个重要的分类字段。
取值范围:0 - 13 (14种生物类型) 生物类型详解:
法术交互:某些法术只对特定类型的生物有效 注意:类型选择会影响多种游戏机制,需要谨慎设置 |
||
type_flags | int unsigned | 类型标志 (位掩码) |
详细说明:控制生物特殊属性和能力的位掩码字段。这些标志决定了生物的特殊行为和玩家与其的交互方式。
取值范围:0 - 4294967295 (int unsigned的范围) 重要标志:
特殊功能:
注意:某些标志需要配合其他字段才能生效 |
||
lootid | mediumint unsigned | 掉落模板ID |
详细说明:指定生物死亡后的掉落模板ID,链接到creature_loot_template表。当生物被击杀时,服务器会根据这个ID查找对应的掉落表来决定掉落什么物品。
取值范围:0 - 16777215 (0表示无掉落) 掉落机制:
设计建议:
注意:lootid通常与entry相同,但可以设置为不同值来共享掉落表 |
||
pickpocketloot | mediumint unsigned | 偷窃掉落模板ID |
详细说明:指定生物的偷窃掉落模板ID,链接到pickpocketing_loot_template表。盗贼职业可以使用"偷窃"技能从活着的人型生物身上偷取物品。
取值范围:0 - 16777215 (0表示无法偷窃) 偷窃机制:
常见偷窃物品:
设计建议:为人型NPC设置合理的偷窃掉落,增加盗贼职业的游戏乐趣 注意:只对type=7(人型)的生物有效,其他类型生物无法被偷窃 |
||
skinloot | mediumint unsigned | 剥皮掉落模板ID |
详细说明:指定生物的剥皮掉落模板ID,链接到skinning_loot_template表。拥有剥皮技能的玩家可以从死亡的可剥皮生物身上获取皮革、鳞片等材料。
取值范围:0 - 16777215 (0表示无法剥皮) 剥皮条件:
适用生物类型:
剥皮材料等级:根据生物等级决定获得的材料品质 注意:必须同时设置unit_flags的可剥皮标志才能生效 |
||
PetSpellDataId | mediumint unsigned | 宠物法术数据ID |
详细说明:指定CreatureSpellData.dbc中的ID,定义宠物在客户端显示的法术技能。这个字段主要用于宠物系统,决定宠物的技能栏显示内容。
取值范围:0 - 16777215 (0表示无特殊法术数据) 应用场景:
技能类型:
数据来源:ID必须存在于CreatureSpellData.dbc文件中 注意:这个字段主要影响客户端显示,实际技能效果由AI和脚本控制 |
||
VehicleId | mediumint unsigned | 载具ID |
详细说明:如果生物是载具或具有载具功能,这个字段指定载具的ID。载具系统允许玩家"乘坐"生物,并可能获得特殊的技能和控制方式。
取值范围:0 - 16777215 (0表示非载具) 载具功能:
载具类型:
配置要求:
注意:载具系统较为复杂,需要客户端和服务端的协调配置 |
||
mingold | mediumint unsigned | 最小金币掉落 (铜币) |
详细说明:生物被击杀时掉落的最小金币数量,以铜币为单位。实际掉落的金币数量会在mingold和maxgold之间随机选择。
取值范围:0 - 16777215 (铜币数量) 金币换算:
设计建议:
注意:必须 ≤ maxgold,设置为0表示不掉落金币 |
||
maxgold | mediumint unsigned | 最大金币掉落 (铜币) |
详细说明:生物被击杀时掉落的最大金币数量,以铜币为单位。与mingold配合使用,实际掉落金币在这个范围内随机生成。
取值范围:0 - 16777215 (铜币数量) 掉落机制:
平衡考虑:
注意:必须 ≥ mingold,合理的金币掉落有助于游戏经济平衡 |
||
AIName | char(64) | AI名称 |
详细说明:指定生物使用的AI(人工智能)名称,决定生物的行为模式、战斗策略和交互方式。不同的AI提供不同的行为复杂度和功能。
字符限制:最大64个字符,区分大小写 常用AI类型:
选择建议:
注意:如果同时设置了ScriptName,ScriptName会覆盖AIName |
||
MovementType | tinyint unsigned | 移动类型 (0=静止, 1=随机, 2=路径) |
详细说明:定义生物的默认移动模式,控制生物在非战斗状态下的移动行为。这个设置会影响生物的巡逻和待机行为。
取值范围:0 - 2 (3种移动类型) 移动类型详解:
配置要求:
应用场景:
注意:战斗状态下移动行为由AI控制,此字段只影响非战斗状态 |
||
HoverHeight | float | 悬浮高度 (默认: 1) |
详细说明:如果生物启用了MOVEMENTFLAG_DISABLE_GRAVITY移动标志,这个字段定义生物在地面上方悬浮的距离。主要用于飞行或悬浮类生物。
取值范围:0.1 - 100.0 (建议范围,单位:码) 悬浮机制:
应用场景:
高度建议:
注意:过高的悬浮高度可能导致玩家无法攻击到生物 |
||
HealthModifier | float | 生命值修正系数 (默认: 1) |
详细说明:用于修改生物基础生命值的修正系数。最终生命值 = 基础生命值(来自creature_classlevelstats) × HealthModifier。这是调整生物难度的重要参数。
取值范围:0.1 - 1000.0 (建议范围) 修正系数说明:
设计建议:
平衡考虑:
注意:过高的生命值可能导致战斗过于冗长,影响游戏体验 |
||
ManaModifier | float | 法力值修正系数 (默认: 1) |
详细说明:用于修改生物基础法力值的修正系数。最终法力值 = 基础法力值(来自creature_classlevelstats) × ManaModifier。只对有法力值的职业(圣骑士、法师)生效。
取值范围:0.1 - 1000.0 (建议范围) 适用职业:
修正系数说明:
设计考虑:
注意:对于无法力值的职业,此字段不产生任何效果 |
||
ArmorModifier | float | 护甲修正系数 (默认: 1) |
详细说明:用于修改生物基础护甲值的修正系数。最终护甲值 = 基础护甲值(来自creature_classlevelstats) × ArmorModifier。护甲值直接影响生物受到的物理伤害减免。
取值范围:0.0 - 100.0 (建议范围) 护甲机制:
修正系数说明:
设计建议:
注意:护甲值过高可能导致物理职业难以造成有效伤害 |
||
DamageModifier | float | 伤害修正系数 (默认: 1) |
详细说明:用于修改生物基础伤害的修正系数。最终伤害 = 基础伤害(来自creature_classlevelstats) × DamageModifier。这是调整生物攻击力的关键参数。
取值范围:0.1 - 100.0 (建议范围) 伤害计算:
修正系数说明:
设计建议:
平衡考虑:
注意:过高的伤害可能导致玩家无法生存,影响游戏平衡 |
||
ExperienceModifier | float | 经验修正系数 (默认: 1) |
详细说明:用于修改击杀生物获得的经验值修正系数。最终经验值 = 基础经验值 × ExperienceModifier × 服务器经验倍率。这个字段可以调整特定生物的经验奖励。
取值范围:0.0 - 100.0 (建议范围) 经验计算:
修正系数说明:
设计建议:
平衡考虑:
注意:过高的经验修正可能破坏游戏平衡和练级体验 |
||
RacialLeader | tinyint unsigned | 种族领袖 (0=否, 1=是) |
详细说明:标志字段,指示生物是否为种族领袖。种族领袖是各个种族的重要NPC,击杀种族领袖会获得特殊的荣誉值奖励。
取值范围:0 或 1 (布尔值) 取值说明:
种族领袖奖励:
官方种族领袖:
设计考虑:
注意:只有真正的种族领袖才应该设置此标志为1 |
||
movementId | int unsigned | 移动ID |
详细说明:指定生物的移动ID,用于定义特殊的移动行为和动画。这个字段通常用于需要特殊移动模式的生物,如飞行、游泳或特殊的移动动画。
取值范围:0 - 4294967295 (0表示使用默认移动) 移动类型:
应用场景:
技术细节:
配置建议:
注意:错误的移动ID可能导致生物移动异常或客户端错误 |
||
RegenHealth | tinyint unsigned | 生命值回复 (0=否, 1=是) |
详细说明:布尔值字段,控制生物是否应该自动回复生命值。当生物脱离战斗状态后,如果此字段为1,生物会逐渐回复生命值到满血状态。
取值范围:0 或 1 (布尔值) 取值说明:
回复机制:
应用场景:
设计考虑:
注意:设置为0的生物在受伤后不会自动回复,可能影响游戏体验 |
||
mechanic_immune_mask | int unsigned | 机制免疫掩码 (位掩码) |
详细说明:使生物对特定法术机制免疫的位掩码字段。通过设置相应的位标志,可以让生物免疫特定类型的控制效果和负面状态。
取值范围:0 - 4294967295 (int unsigned的范围) 常用机制免疫:
组合使用:可以将多个机制免疫相加来组合效果 设计建议:
注意:过多的免疫可能让某些职业失去作用,需要平衡考虑 |
||
spell_school_immune_mask | int unsigned | 法术学派免疫掩码 (位掩码) |
详细说明:使生物对特定法术学派免疫的位掩码字段。通过设置相应的位标志,可以让生物完全免疫特定学派的所有法术伤害和效果。
取值范围:0 - 127 (7个法术学派的组合) 法术学派免疫:
免疫效果:
组合示例:
设计建议:
平衡考虑:
注意:物理免疫会让物理职业完全无法造成伤害,需要谨慎使用 |
||
flags_extra | int unsigned | 额外标志 (位掩码) |
详细说明:控制生物特定属性和行为的额外标志位掩码字段。这些标志提供了超出标准unit_flags的额外功能控制。
取值范围:0 - 4294967295 (int unsigned的范围) 常用额外标志:
组合使用:可以将多个标志相加来组合效果 设计建议:
注意:某些标志可能与其他系统冲突,使用前需要测试验证 |
||
ScriptName | char(64) | 脚本名称 |
详细说明:指定生物使用的C++脚本名称。如果同时设置了ScriptName和AIName字段,ScriptName字段会覆盖AIName字段。这用于需要复杂自定义行为的生物。
字符限制:最大64个字符,区分大小写 脚本优先级:
脚本类型:
常见脚本示例:
开发要求:
使用建议:
注意:脚本开发需要C++编程知识,错误的脚本可能导致服务器崩溃 |
||
VerifiedBuild | smallint | 验证版本号 |
详细说明:用于确定生物模板是否已从WDB文件验证的字段。这个字段帮助开发者跟踪数据的来源和验证状态,确保数据的准确性和完整性。
取值范围:-32768 到 32767 (smallint的范围) 取值含义:
常见build版本:
数据管理:
使用建议:
数据质量:
注意:这个字段主要用于数据管理,不影响游戏功能,但有助于维护数据质量 |
以下是创建一个基本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
);
以下是创建一个职业训练师的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怪物的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
);