修改怪物爆率文件是核心操作步骤。服务端目录下找到Mir200\Envir\MonItems文件夹,该文件夹存放所有怪物爆率配置文件。每个怪物对应一个文本文件,文件名与怪物名称一致。例如半兽人对应半兽人.txt,白野猪对应白野猪.txt。
打开目标怪物爆率文件查看内容格式。典型爆率文件包含多行配置,每行格式为“物品名称 爆率分母”。例如“金创药(小) 1/10”表示十分之一概率掉落小金创药。药水类物品包括金创药、魔法药、太阳水、疗伤药等系列。
删除药水掉落条目实现禁止爆出。在怪物爆率文件中定位所有药水相关行,直接删除整行内容。例如删除“金创药(小) 1/10”、“魔法药(中) 1/15”、“太阳水 1/20”等行。保存文件后该怪物不再掉落对应药水。
批量修改使用文本编辑器的替换功能。打开多个怪物爆率文件,使用查找替换工具批量删除药水条目。搜索关键词包括“金创药”、“魔法药”、“太阳水”、“疗伤药”、“万年雪霜”等。注意不同版本药水名称可能略有差异。
全局禁止药水掉落需修改爆率控制脚本。找到Mir200\Envir\Market_Def\QFunction-0.txt文件,该文件控制游戏功能脚本。添加以下脚本代码实现全局控制:
[@KillMon]
IF
ACT
CALL [\系统功能\爆率控制.txt] @禁止药水
在Mir200\Envir\QuestDiary文件夹创建“系统功能”子文件夹,新建“爆率控制.txt”文件。文件内容为:
[@禁止药水]
IF
CHECKITEMTYPE 药水类
ACT
Take 药水类 1
SENDMSG 6 系统已自动回收药水
此脚本在玩家击杀怪物后自动检测并回收药水类物品。
数据库层面修改彻底禁止药水掉落。打开DBC2000数据库管理工具,连接HeroDB数据库。找到Monster爆率表,该表控制所有怪物基础爆率。在物品掉落列表中移除药水类物品ID。药水物品ID通常为100-200范围内数值。
物品数据库确认药水类物品信息。打开StdItems.DB数据库文件,查询药水类物品的Idx编号。记录所有药水物品的Idx值,在怪物爆率配置中排除这些编号。常见药水Idx包括:小金创药101、中金创药102、大金创药103、小魔法药111、中魔法药112等。
爆率分母修改法调整掉落概率。不删除药水条目而是将爆率分母改为极大数值。例如将“金创药(小) 1/10”改为“金创药(小) 1/100000”,使实际掉落概率极低。这种方法保留配置完整性,便于后期恢复。
怪物模板文件修改基础设置。部分版本在Mir200\Envir\MonGen.txt文件定义怪物刷新与基础属性。该文件可能包含怪物爆率表引用信息,检查并确保不引用包含药水的爆率文件。
脚本触发控制掉落物品类型。在QManage.txt登录脚本中添加爆率控制触发。玩家登录时设置个人爆率变量,通过变量控制是否掉落药水。脚本示例:
[@Login]
IF
ACT
VAR Integer HUMAN 禁止药水 1
在爆率脚本中判断该变量,变量为1时不执行药水掉落。
爆率公式文件调整全局设置。部分引擎在Mir200\Envir\QuestDiary文件夹有爆率公式控制文件。修改公式计算规则,当掉落物品类型为药水时返回空值。需要一定脚本编写能力,参考引擎说明书中的爆率函数。
物品规则文件限制掉落。查找Mir200\Envir\ItemRule.txt文件,该文件定义物品掉落规则。添加规则禁止药水类物品从怪物掉落。规则格式通常为“物品类型 禁止来源”,具体语法因引擎版本而异。
怪物死亡触发脚本拦截掉落。在QFunction-0.txt的[@KillMon]段添加脚本,在怪物死亡时清除掉落列表中的药水物品。使用GIVE命令的相反功能或直接设置掉落列表变量。
爆率文件目录结构检查。某些版本将爆率文件分散在多个子目录,需全面检查所有MonItems相关文件夹。包括Mir200\Envir\MonItems、Mir200\Envir\QuestDiary\怪物爆率等路径。
引擎设置工具调整爆率参数。部分商业引擎提供可视化设置工具,在工具中找到“怪物爆率设置”选项。直接取消药水类物品的勾选或设置爆率为0。保存设置后重新加载引擎配置。
版本差异导致配置位置不同。Hero引擎爆率文件在Mir200\Envir\MonItems,Blue引擎可能在Mir200\Envir\Mon_Def,Gee引擎使用不同目录结构。根据实际使用引擎类型查找对应路径。
爆率文件编码格式注意。修改前确认文件编码为ANSI或UTF-8无BOM格式,错误编码可能导致游戏读取失败。使用Notepad++等专业编辑器进行修改,避免Windows记事本改变编码。
修改后重新加载爆率配置。在游戏服务器控制台输入“@重新加载怪物爆率”命令,或重启服务器使修改生效。部分引擎需要输入“@ReloadMonItems”命令。
测试修改效果。创建测试角色,击杀对应怪物验证是否掉落药水。使用GM命令刷出怪物快速测试,命令格式为“@刷怪 怪物名称 数量”。观察击杀后掉落物品,确认无药水出现。
备份原始文件至关重要。修改前复制整个MonItems文件夹到其他位置,错误修改可快速恢复。同时备份数据库文件,防止误操作导致数据损坏。
多版本药水名称统一处理。不同传奇版本药水名称不同,检查游戏内实际药水名称。通过数据库StdItems表查看确切物品名称,确保配置中使用正确名称。
爆率文件语法验证。每行格式必须为“物品名称 爆率”,中间空格分隔。爆率格式为“1/分母”,分母为整数。错误语法可能导致整行失效或服务器报错。
物品分组设置控制掉落。部分引擎支持物品分组,将药水分配到独立分组。在怪物爆率中不调用该分组,实现批量禁止。分组设置在Mir200\Envir\ItemGroup.txt文件。
时间触发控制动态爆率。通过脚本实现特定时间段禁止药水掉落。例如晚上8点到10点活动期间关闭药水掉落。使用时间判断脚本结合爆率控制。
玩家等级关联爆率控制。高等级玩家击杀怪物不掉落药水,低等级玩家正常掉落。在爆率脚本中添加等级判断条件,实现差异化设置。
地图区域控制掉落类型。特定地图内怪物不掉落药水,其他地图正常。在地图配置文件MapInfo.txt中添加触发脚本,或在地图专属爆率文件中设置。
行会特权控制掉落。加入特定行会的玩家击杀怪物不掉落药水。在行会脚本或爆率触发中判断玩家行会信息。
职业差异影响掉落。不同职业击杀怪物掉落不同物品,设置战士不掉落药水而道士正常。在爆率脚本中判断玩家职业类型。
怪物等级关联掉落设置。高等级怪物不掉落低级药水,只掉落高级药水或完全不掉落。在怪物爆率文件中按怪物等级分类设置。
爆率文件注释使用。修改时添加注释说明,格式为“;注释内容”或“//注释内容”。便于后期维护和理解修改意图。
批量处理脚本编写。如需修改大量怪物爆率文件,编写简单批处理脚本自动删除药水行。使用Python或PowerShell脚本批量处理文本文件。
物品类型识别方法。药水类物品在数据库中通常有特定Stdmode值,例如药品类Stdmode为0。在爆率控制脚本中判断物品Stdmode值实现分类控制。
爆率浮动范围设置。部分引擎支持爆率浮动,如“金创药(小) 1/10-1/20”。修改时注意保持正确格式,仅修改分母或整个爆率表达式。
多爆率文件引用处理。一个怪物可能引用多个爆率文件,需检查所有相关文件。在Monster数据库表中查看爆率文件引用路径。
引擎更新注意事项。升级游戏引擎版本可能重置爆率文件,修改前记录所有更改。升级后重新应用修改,或导出修改配置便于快速恢复。
通过上述方法可实现传奇怪物不掉落药水。根据具体需求和服务器版本选择合适方案,简单需求直接修改爆率文件,复杂需求使用脚本控制。修改后充分测试确保功能正常,不影响其他游戏系统。
传奇禁止怪物爆药水配置修改教程
来源:
作者:
点击:

