Blue_m2原BLUEm2的药品解包分两套理解,一套是客户端成捆药自动拆包,用于内挂低血自动吃强效金创、强效魔法、万年雪霜等;一套是资源侧查看药品图标,用于补丁对接和背包显示排错。实际做版本主要改服务端物品库、Envir配置和客户端资源同步,不靠第三方破解器。
一、成捆药品自动解包原理
成捆药在背包里是一个打包物品,内挂触发低血低蓝后,客户端按规则把它拆成单瓶药再使用。Blue/Legendm2对人物和英雄分开判断。人物自动解包看打包物的Shape与拆出物的Anicount是否对应;英雄自动解药在物品库Anicount填1、2、3表示不同类型药包,保持固定不变即可。
举例,超级金创药在物品库Shape=100,打成捆后,拆出来的强效金创药Anicount也要等于100,内挂才会认作“超级金创药包拆出的药”并自动吃。若强效金创药Anicount=0或其他值,不会自动解包。英雄药若分三档,分别在打包物Anicount写1、2、3,对应回血、回蓝、特殊药,避免英雄内挂和人物内挂抢同一规则。
二、StdItems物品库字段填法
物品库按引擎用StdItems.DB或txt,药品行重点看这几个位置:名称、StdMode、Shape、Anicount、Dura/使用次数、保留触发、恢复数值字段。成捆药StdMode按打包/消耗品类设置,单药按普通药用类设置;Shape决定背包图标索引,成捆药Shape要与UnbindList里配置的解包代号对应。Anicount对人物解包药填“打包物Shape”,对英雄药填1/2/3。
参考示例:
189;超级金创药;31;100;20;1;0;0;313;0;0;0;0;0;0;0;0;0;0;0;0;3409;5;0
175;强效金创药;0;0;3;100;0;0;28;1;90;0;0;0;0;0;0;0;0;0;0;540;5;0
其中超级金创药Shape=100,强效金创药Anicount=100,内挂拆包后按100对应规则自动使用。不同Blue子版本字段列数可能不同,改之前先导出一行原库对照,不要直接套用别的引擎列序。
三、UnbindList.txt解包映射
解包规则文件放Mir200Envir,文件名UnbindList.txt。格式按“解包代号 拆出物品名”写,代号为数字,对应成捆药Shape和单药Anicount。示例:
;;解开打包文件
100 强效金创药
101 强效魔法药
102 金创药(小量)
103 魔法药(小量)
104 金创药(中量)
105 魔法药(中量)
106 地牢逃脱卷
107 随机传送卷
108 回城卷
111 超强金创药
112 超强魔法药
115 万年雪霜
123 元气还神丹
实际写多少条按本服药包走,成捆金创用100就写100对应单药名,成捆魔法用101就写101对应单药名。UnbindList缺条目、物品名和StdItems不一致,会出现背包有药包但不拆、拆了不吃、拆出问号图标。
四、内挂自动解药联动设置
M2内挂或客户端内挂配自动喝药时,规则选“金创药类”“魔法药类”“特殊药类”,每类填触发血线、蓝线、优先使用单药还是药包。药包优先时,内挂先判断背包有无成捆药,按UnbindList拆出单药;单药优先时,单药吃完再拆药包。万年雪霜、元气还神丹、护身类按特殊药单独列,不要和金创混用,否则低血时内挂可能先拆错包。
英雄内挂独立页面配置,Anicount1/2/3分别绑回血、回蓝、解状态。若英雄不自动解药,先看成捆英雄药Anicount是不是1/2/3,再看人物QFunction里是否误留了[@StdModeFunc1]、[@StdModeFunc2]、[@StdModeFunc3]自定义触发;Blue部分版本英雄自动解药和人物解药冲突时,会把药包触发截到脚本里,导致内挂不拆包。
五、客户端药品图标与Data资源
药品背包图标通常在客户端Data里的Items类WIL/WIX,地面掉落图标看DnItems类,装备栏StateItem类对药品一般只占位。不同整理版命名会有差异,有的用Items.wil、DnItems.wil,有的按Items1.wil、DnItems1.wil分包;Blue原版补丁若另分StdItems.wil,药品小图标也在其中。查看图标用WIL/WIX编辑器打开对应文件,按Shape索引定位。武器、衣服用Weapon.wix、Hum.wil按1200图距算外观,药品没有这种除距规则,直接按Shape或物品索引对号。
改药品图标只做本地补丁对接:从完整客户端提取原图标,确认成捆药Shape对应帧,单药Anicount不变;导出BMP改图后按原尺寸导回WIL,重建WIX索引。尺寸、调色板、帧数不一致会导致背包花图、问号、客户端报错。改完把Data相关WIL和WIX一起发,不要只发单个wil,索引文件不同步会错位。
六、药品名称与使用规则文件
客户端使用规则可放Envir下的ClientEatItemNameList或同类吃物列表,用于让客户端识别哪些东西算药、显示名称、配合内挂使用。服务端StdItems改了药名,客户端列表、UnbindList、内挂药名三者必须一致。比如服务端叫“强效金创药”,UnbindList写“强效金创药”,内挂选药也选“强效金创药”;任一处写成“强效金疮药”都会匹配不到。
恢复数值以服务端物品库为准,回血、回蓝、持续时间、冷却、是否战斗限用都在StdItems或M2物品系统设置。客户端只负责点药时发使用请求,不单独决定加多少血;改了服务端数值但没重启M2或没重载物品,客户端吃老药会按旧数值走。
七、常见排错
药包不放背包自动拆:看成捆药StdMode是否正确、Shape是否写UnbindList代号、单药Anicount是否等于该Shape;英雄药确认Anicount1/2/3且内挂英雄页开启。
拆包后不吃:内挂血线/蓝线设太高会导致不触发;单药在背包但UnbindList名字错,内挂拆出后不认;QFunction的StdModeFunc触发段若接管了药包,会绕过内挂自动吃。
拆出问号:客户端Data缺Items/DnItems资源,或Shape指向的WIL索引没有该图标;用完整客户端比对Data,补对应wil/wix,必要时按服务端Shape重排补丁。
英雄不拆药:英雄包裹满、英雄内挂未授权、Anicount不是1/2/3、人物内挂和英雄内挂用同一药包规则都会异常;分人物包和英雄包,英雄包单独Shape段,避免共用。
改完不生效:StdItems改完按引擎重载物品或重启M2,UnbindList改完重载NPC/功能脚本,Data改完让客户端清缓存或重装补丁;DBC类环境确认数据库路径指向MirserverMud2DB,路径错会读不到新物品。
八、资源安全与合规
只做已授权版本的资源对接和成捆药配置,不下载来路登陆器、破解包、所谓全解包工具;老论坛exe、dll、bat、vbs类附件常带木马,会读账号、改M2配置。改Data前备份整个Data目录,改StdItems前备份DB和txt,改UnbindList前备份Envir;每次只调一种药包,进游戏用新角色测低血自动吃、英雄自动吃、地面掉落图标、背包图标再推广。
药品解包不建议做成“进背包即全拆”,内挂自动解包按血线拆更省药;成捆比例、单药恢复量、药包上限都在物品库和M2物品系统平衡,客户端只同步图标与名称。涉及官方或他人美术资源做补丁时,仅用于自有授权版本,不把未授权资源打包分发,避免版权问题。
按Shape绑UnbindList、Anicount绑单药、英雄1/2/3分组、Data图标按Shape对齐这四步配,Blue_m2成捆药品自动解包可稳定运行;排错优先看物品库字段、UnbindList名称、内挂药类、QFunction触发段和客户端Items/DnItems资源,不必使用第三方拆包器。
Blue_m2传奇客户端成捆药品自动解包配置教程与物品库UnbindList参数排错
来源:
作者:
点击:

