Hero引擎的特色怪物设置主要通过三个层面实现,Monster.DB数据库定义怪物基础属性,Envir\UserData\ExtraMon.txt文件控制防麻防火等特殊免疫属性,Monstr\Envir\MonUseItems文件夹下的人形怪配置文件管理外观装备和技能。三套配置各司其职,混用或者写错路径是脚本不生效的高频原因。
## Monster.DB怪物数据库核心字段
打开DBC2000数据库编辑器,进入HeroDB,找到Monster.DB表。每个怪物占一行记录,核心字段包括Name怪物名称、Race行动模式代码、RaceImg攻击模式代码、Appr怪物形象代码、Lvl怪物等级、CoolEye感知范围、Exp经验值、HP血量、MP魔法值、AC物理防御、MAC魔法防御、DC最小攻击力、DCMAX最大攻击力、MC最大魔法、SC最大道术、HIT命中率、Walk_SPD移动速度、Attack_SPD攻击速度、Size体型、Color颜色、ViewRange视野范围。
攻击速度字段Walk_SPD或Attack_SPD的取值决定攻击频率,数值越小攻击越快。500表示每秒攻击2次,250表示每秒攻击4次,HERO引擎攻击速度参数范围为1到255,设为1即引擎支持的最快速度。把普通怪物的攻击速度改成1,它会变成一台绞肉机,配合麻痹属性可以直接把玩家控到死。
Race字段决定怪物的行动逻辑。Race=0为普通近身攻击怪,Race=1为远程攻击怪,Race=11为可穿墙的飞行怪,Race=81以上的代码通常用于人形怪。写错Race值会导致怪物站在原地不动或者攻击无伤害。
## ExtraMon.txt特殊属性免疫配置
Hero引擎的防麻、防火、防毒、防诱惑等特色属性统一在 `Mir200\Envir\UserData\ExtraMon.txt` 文件中配置。文件格式为一行一个怪物,各字段用空格或制表符分隔:怪物名字 是否防麻 是否防火 禁止诱惑 防止绿毒 防止红毒。
实际写法示例:
```
白野猪 1 1 0 0 0
红野猪 0 1 1 0 0
牛魔教主 1 0 1 1 1
```
第一行白野猪的防麻和防火都填1,表示麻痹效果和火墙攻击对它完全无效。第二行红野猪防麻填0防火填1,表示可以麻痹但不能用火烧。第三行牛魔教主防麻、禁止诱惑、防绿毒、防红毒全部开启,是一个典型的BOSS级免疫配置。禁止诱惑参数填1时,法师的诱惑之光对该怪物不会产生任何影响。
需要特别留意的是,ExtraMon.txt中的防麻和防火是开关型字段,只有0和1两种状态,0为不防御,1为完全免疫,没有中间概率值。文件中不需要写表头,怪物名称必须与Monster.DB中的名称完全一致,包括空格和标点符号。
## MonSpAbilList.txt进阶属性扩展
Hero引擎在ExtraMon.txt基础上还支持 `Envir\MonSpAbilList.txt` 文件,提供比开关型免疫更精细的概率性防御和伤害反弹配置。格式为:怪物名 忽视防御(0~100) 增加伤害(0~255) 伤害反弹(0~100) 物伤减少(0~100) 魔伤减少(0~100) 麻痹-几率-时间(0~1 0~10 0~10) 防麻痹(0~1) 防全毒(0~1) 防火墙(0~1) 防诱惑(0~1) 破复活(0~1) 破护身(0~1)。
示例写法:
```
赤月恶魔 30 50 20 40 40 1 3 5 1 1 1 0 0
```
赤月恶魔忽视玩家30%防御,增加50点额外伤害,受到攻击时反弹20%伤害,物理和魔法伤害各减少40%。麻痹-几率-时间三个参数中第一个1代表开启麻痹效果,3代表3秒控制时间,5代表触发概率为5%。防麻痹、防全毒、防火墙、防诱惑均为1表示完全免疫。破复活和破护身填0表示不具备这两个穿透能力。
MonSpAbilList.txt中的防麻痹和防冰冻字段在新版HERO引擎中调整为0到100的百分比值,0表示不防御,100表示必防,不再是0和1的开关值。修改前先确认当前引擎版本,老版本中用0和1,新版用0到100。如果你在MonSpAbilList.txt中设置了属性但没有生效,检查M2引擎的装备参数中是否开启了元素属性,元素属性下的数值被调整为10/100时,MonSpAbilList.txt中的设定数值会自动同步为原来的十分之一。
## 人形怪配置文件详解
人形怪的配置独立于Monster.DB,存放在 `Mir200\Envir\MonUseItems\` 文件夹下。每个怪物单独一个txt文件,文件名必须与Monster.DB中的怪物名称完全一致。例如Monster.DB中怪物叫“战神勇士”,就在MonUseItems文件夹下新建“战神勇士.txt”。
配置文件的核心字段:
装备配置段用于设置人形怪身上显示的装备,所有装备名称必须是StdItems.DB中已有的物品:
```
DRESSNAME=法神披风
WEAPONNAME=骨玉权杖
RIGHTHANDNAME=荣誉勋章34号
NECKLACENAME=烈焰项链
HELMETNAME=魔龙盔
ARMRINGLNAME=烈焰护腕
ARMRINGRNAME=烈焰护腕
RINGLNAME=烈焰魔戒
RINGRNAME=烈焰魔戒
BELTNAME=烈焰腰带
BOOTSNAME=烈焰魔靴
CHARMNAME=红魔之星
```
装备名称写错或者物品DB中不存在该物品,人形怪会显示无装备状态。装备填写不完整时,空缺的栏位显示为空。
技能配置用Magic字段,多个技能用逗号或空格隔开:
```
Magic=烈火剑法 半月弯刀 刺杀剑术 攻杀剑术 基本剑术
```
人形怪必须有对应技能才能正常使用,技能名称需要与Magic.DB中的名称一致。
行为配置字段方面,DropItem控制是否掉落身上物品,0为掉落,1为不掉落。Territory设置活动范围,0时不限制范围,超过范围自动返回出生点。ButchUseItem决定是否允许挖取身上装备,1为允许,0为禁止。ButchRate设置挖取机率,0为百分百,数字越大机率越小。NoAttackMode确定攻击状态,0为主动攻击,1为不攻击。INITITEMS可以设置人形怪出生时背包中的物品。DieDropUseItemRate控制死亡掉装备几率,数字越小掉装备几率越高。
## 人形怪无限刀效果设置
HERO引擎没有直接名为无限刀的选项,实现原理是通过极限压缩攻击速度参数来达成连续攻击效果。打开Monster.DB找到目标人形怪,把Walk_SPD或Attack_SPD字段的值改为1。默认人形怪攻击速度多为15到30之间,改成1后攻击频率达到极致。
部分版本需要配合调整引擎全局参数。进入 `Mir200\!Setup.txt` 文件,查找“怪物攻击速度倍率”参数,将其设置为1.5到2倍,数值范围0.1到5。同时找到“怪物最大攻击次数限制”参数,改为0解除限制。
技能冷却方面,进入 `Mir200\Skill\` 文件夹打开Skill.txt,找到该人形怪携带的技能条目,把冷却时间参数改为0,删除技能间隔和释放延迟相关参数,避免技能冷却打断攻击循环。修改完成后在M2控制台点击“控制”菜单下的“重新加载”,选择“怪物数据库”让修改生效。
## 脚本触发怪物特效
Hero引擎通过QFunction-0.txt中的事件触发标签实现怪物攻击附带麻痹、冰冻、蛛网等特殊效果。核心标签包括@MagSelfFuncX对自身使用技能时触发、@MagTagFuncExX目标被技能命中时触发、@OnHit攻击命中后触发、@KillMonster击杀怪物时触发。
以刀刀冰冻效果为例,在QManage.txt中绑定攻击触发:
```
[@AttackHit]
#IF
ISMONSTER
#ACT
ADDBUFF 目标 冰冻 3 100
SENDMSG 5 目标已被冰冻,无法移动与攻击!
```
ISMONSTER限定仅对怪物生效,删除这行则对玩家也生效。ADDBUFF后面依次是目标对象、效果名称、持续时间秒数、效果强度。冰冻效果强度100为全额控制,降低数值可以改为减速效果。
概率触发版本:
```
[@AttackHit]
#IF
ISMONSTER
RANDOM 20
#ACT
ADDBUFF 目标 冰冻 2 100
SENDMSG 5 幸运触发冰冻,目标被控制2秒!
```
RANDOM 20表示20%概率触发,数值越小触发概率越低。
Buff效果需要在 `Envir\Buff.txt` 文件中定义,格式为效果名称=状态码 参数序列。冰冻效果的典型配置:
```
冰冻=1 0 0 0 1 1 0
```
第一个参数1代表冰冻状态,后续参数依次控制伤害、回血、蓝耗、禁止移动、禁止攻击、额外加成。禁止攻击参数为1时目标无法释放技能,改为0则保留技能释放但限制移动。
麻痹效果的参数类型与冰冻不同,使用ADDBUFF时效果名称改为“麻痹”,对应的Buff.txt中定义麻痹状态的禁止移动和禁止攻击参数均为1,持续时间一般设置为3到5秒。
## 怪物刷新与爆率配置
怪物刷新在 `Envir\MonGen.txt` 文件中配置,格式为:地图编号 刷新X坐标 刷新Y坐标 怪物名称 刷新数量 刷新范围 刷新间隔 是否集中刷新。示例:
```
D717 100 120 变异祖玛教主 1 100 21600 1
```
这行配置让变异祖玛教主在祖玛寺庙七层坐标(100,120)位置每21600秒(6小时)刷新1只,刷新范围为100。
怪物爆率在 `Envir\MonItems.txt` 文件中配置,格式为:怪物编号 物品编号1 数量1 概率1(‰) 物品编号2 数量2 概率2(‰) ... 是否必爆 掉落模式。概率以千分号为单位,1000为必爆,500为50%概率,1为0.1%概率。掉落模式0为默认掉落,1为仅掉落列表物品,2为禁止掉落。
```
2001 30 1 1000 31 1 500 32 1 300 1 10 0 0
```
这行配置表示怪物编号2001必掉物品30(屠龙),50%概率掉物品31(麻痹戒指),30%概率掉物品32(祝福油),10%概率掉金币。修改爆率文件后需要在M2控制台执行`@重读爆率`命令重新加载,HERO引擎修改MonItems.txt后也可以重启M2Server.exe重载所有怪物爆率文件。
爆率文件保存时必须使用ANSI编码,HERO引擎及旧版GOM引擎使用UTF-8编码会导致中文怪物名或物品名乱码,爆率规则直接失效。
## 怪物外观与自定义素材
怪物的Appr字段控制客户端显示的外观形象。Appr值的计算方式为:怪物APPR值 = (XX-1)× 10 + 怪物在当前文件中的位置代码。例如MON50.WIL文件中,目标怪物图片为361到720,该怪物在文件中的位置是第二位(位置代码从0开始),Appr值 = (50-1)× 10 + 1 = 491。
添加自定义怪物素材时,将拼接好的怪物动画长图导入Monsters.wil文件,图片格式优先使用BMP,每个怪物需要包含8个方向(上下左右及四个对角线方向),每个方向4到8帧,分别对应步行和攻击动画。
人形怪的外观装备通过MonUseItems文件夹下的配置文件控制,在“身上装备(UseItems)”行下面逐行列出要显示的装备名称,客户端渲染时会根据这些装备名称读取对应的外观素材。
## 常见问题排查
ExtraMon.txt中的属性不生效,先检查文件路径是否正确,必须是 `Mir200\Envir\UserData\ExtraMon.txt`。再检查怪物名称是否与Monster.DB中的记录完全一致,包含所有空格和标点。修改后重启M2Server或在控制台执行@ReloadMonItems重新加载。
MonSpAbilList.txt中的数值被自动缩小,检查M2引擎的装备参数中元素属性是否已开启,元素属性下的数值被设为10/100时,MonSpAbilList.txt中的设定值会自动变为原来的十分之一。把元素属性下的数值调整为100/100即可恢复正常比例。
人形怪不显示装备,检查MonUseItems文件夹是否存在于 `Mir200\Envir\` 目录下。文件名称与人形怪在Monster.DB中的名称必须完全一致,区分大小写。装备名称必须是StdItems.DB中已存在的物品,写错一个字符人形怪就显示为裸体。
怪物攻击速度改到1之后仍然没有无限刀效果,检查`!Setup.txt`中的“怪物最大攻击次数限制”是否已改为0,该参数默认值会限制怪物的攻击频率,不解除限制的话即使攻击速度参数调到最小,实际攻击频率仍然被引擎卡住。
刀刀冰冻脚本对所有怪物都生效但部分怪物免疫,在QFunction-0.txt的触发段落中增加免疫检测条件,用CHECKMONLEVEL或自定义变量判断目标怪物是否在免疫列表中,命中免疫怪物时跳过ADDBUFF执行。
传奇Hero引擎特色怪物设置完整教程 Monster.DB字段与ExtraMon特殊属性及人形怪配置详
来源:
作者:
点击:

