## Monster.DB的两个核心字段
Monster.DB中定义怪物攻击行为的核心字段是Race和Racelmg。Race决定怪物的行为逻辑,包括是否主动攻击、攻击距离、移动方式以及死亡时的特殊处理。Racelmg决定攻击时播放的视觉表现,比如抛斧头、喷毒、电火花、射箭等效果。两个字段需要配合使用,单独修改一个而不调整另一个,会出现行为正常但攻击动画错位的情况。
## Race字段常用代码详解
Race字段的数值决定了怪物从出现到死亡的全套行为。以下几个代码在版本制作中使用频率最高。
81是最通用的主动攻击模式。怪物在玩家进入感知范围后自动靠近并发动近战物理攻击,稻草人、钉耙猫、多钩猫等初级怪物都用这个值。82在主动攻击的基础上增加了范围限制,攻击判定范围为2x2格,适合毒液类或短程远程怪物。92是瞬移攻击模式,怪物在玩家超出攻击范围时会瞬移到玩家身边继续攻击,常用于高机动性怪物。
51和52是一组特殊代码。51表示怪物不主动攻击,被玩家攻击后会掉血,但死亡时物品不会直接掉落在地面,需要用挖取方式获得,鸡、鹿等动物类怪物使用这个值。52与51基本一致,区别在于52模式的怪物在受到攻击后有概率逃跑,逃跑过程中无法被攻击命中。53则是主动攻击但物品不掉落,需要用挖取方式获取,适合设计为可采集的怪物。
95是地下钻出模式。怪物在玩家进入范围后从地下钻出来发动攻击,适合设计陷阱类怪物。101是石像激活模式,怪物初始以石像形态静止,玩家进入范围后激活并开始攻击。103是监狱类特殊行为代码,用于特定地图的守卫怪物。
## Racelmg攻击效果代码对照
Racelmg字段控制攻击动画的视觉呈现。代码0表示怪物完全静止,不移动也不攻击,形状不发生任何变化。代码1是裸男状态,怪物以人形近身物理方式攻击。代码9配合Race值120使用,对应足球怪的特殊表现。代码15是抛斧头效果,适合远程投掷类怪物。代码16是贴身喷毒,怪物在近身距离释放毒液。代码21是电火花效果,代码22是喷针效果,代码40是击电效果,代码45是射箭效果。代码52是高空喷毒,代码53是低空喷毒,两者在毒液覆盖范围和动画高度上有差异。
Race与Racelmg的搭配有约定俗成的组合。81通常搭配1或0,表现标准近战平砍。82通常搭配16或52、53,表现毒液类攻击。92瞬移攻击通常搭配1或15,瞬移后接不同攻击动画。如果给81的怪物设置Racelmg为45,怪物会做出射箭动作但实际攻击判定仍然是近身物理,视觉和逻辑不一致。
## 掉落触发机制与DropItem命令
怪物死亡后的物品掉落由死亡触发脚本控制,触发文件位于QuestDiary目录下的QFunction-0.txt或MonDie相关脚本中。触发脚本通过检测怪物名称或怪物ID来确定当前死亡的是哪一只怪物,然后执行对应的掉落命令。
DropItem是最基础的掉落命令。命令格式为:DropItem 物品ID 掉落概率 最小数量 最大数量。概率值范围为0到100,数值越高掉落几率越大。例如DropItem 1001 30 1 5表示怪物死亡后有30%概率掉落ID为1001的物品,数量在1到5个之间。同一只怪物可以写多条DropItem命令来实现多物品掉落,每条命令独立计算概率。
如果怪物不爆物品,首先检查脚本中是否存在DisableDropItem或类似的禁止掉落命令。这类命令会覆盖所有DropItem设置,在排查时需要搜索脚本文件中的“禁止掉落”关键词,确认没有被意外启用。
## 爆率文件格式与优先级
除了脚本中的DropItem命令,传统爆率文件也控制掉落结果。爆率文件位于Mir200\Envir\MonItems目录下,以怪物名称命名的txt文件。文件中的格式通常为X/Y 物品名称,X表示掉落次数,Y表示需要击杀的怪物数量。例如1/100 裁决之杖表示每击杀100只怪物,有一次掉落裁决之杖的机会。1/1表示必定掉落,1/2表示二分之一概率掉落。
爆率文件的编码必须为ANSI。用UTF8编码保存会导致配置不生效,引擎读取时无法正确解析物品名称。排查爆率问题时,在文本编辑器中查看右下角编码格式,如果不是ANSI,通过另存为选择ANSI编码重新保存。
脚本DropItem命令和爆率文件同时存在时,两者的掉落结果是叠加的。DropItem命令的优先级高于爆率文件,如果DropItem中已经定义了某件物品的掉落,爆率文件中再写同一件物品不会产生额外掉落,只会按照DropItem的概率执行。当怪物名称和爆率文件名称不一致时,爆率文件不会生效,DropItem命令不受影响。
传奇怪物DB攻击效果攻击方式和暴东西方式代码解析
来源:
作者:
点击:

