本教程适配主流传奇引擎(GOM/GEE/HERO),实现“背包材料自动检测+满足条件即时合成+无需NPC交互”功能,以“3把屠龙合成1把开天”为核心示例,包含脚本代码、配置步骤、参数修改方法,新手可直接照搬使用。
一、脚本核心逻辑解析
脚本通过“定时器循环检测+背包材料判定+消耗材料+生成新装备”的闭环实现自动合成,核心逻辑如下:
1. 定时器触发:通过设置循环定时器(默认1秒/次),持续检测玩家背包内指定材料数量,确保捡取材料后能即时响应;
2. 材料判定:精准识别背包内合成所需的装备材料(如3把屠龙),排除穿戴中的装备,仅检测背包内物品;
3. 合成执行:材料数量达标后,自动扣除对应材料,生成目标装备(如开天)并放入背包;
4. 反馈提示:合成成功/失败时向玩家发送系统提示,明确告知操作结果,提升体验。
二、完整脚本代码(以3屠龙合1开天为例)
脚本需写入引擎对应的功能文件,不同引擎文件路径略有差异,完整代码如下(含注释说明):
;装备自动合成核心脚本 - 无需NPC交互
;脚本段落标识:避免与现有脚本重复,建议使用专属标识
(@AutoSynthesis)
;定时器循环触发,1000毫秒=1秒,可调整检测频率
#ACT
SetScTimer 1 1000
Return
;定时器执行逻辑:每1秒检测一次背包材料
(@OnTimer1)
#IF
;判定条件1:背包内存在3把屠龙(物品ID需对应自身版本,此处用默认ID示例)
CheckItem 屠龙 3
;判定条件2:背包存在空闲格子(避免合成后装备无法放入)
CheckBagSize 1
#ACT
;扣除3把屠龙(确保材料足够时才执行扣除)
TakeItem 屠龙 3
;添加1把开天到背包(开天ID需对应自身版本)
GiveItem 开天 1
;发送合成成功提示(6为系统提示颜色,可修改1-255)
SendMsg 6 恭喜!背包内3把屠龙已自动合成1把开天!
;可选:添加合成特效(1415为特效编号,可替换为自身引擎特效)
PlayEffect 1415 10 1 $USERX $USERY
#ELSE
;材料不足或背包满时的提示(仅告知,不执行操作)
#IF
CheckItem 屠龙 1
CheckItem 屠龙 < 3
#ACT
SendMsg 7 背包内屠龙数量不足3把,无法合成开天(当前:<$ITEMCOUNT(屠龙)>把)
#IF
CheckBagSize < 1
#ACT
SendMsg 7 背包空间不足,无法完成合成,请清理背包!
Return
;登录触发:玩家上线自动启动定时器,无需手动激活
(@Login)
#ACT
;调用自动合成初始化段落
#CALL @AutoSynthesis
SendMsg 6 装备自动合成系统已启动,3把屠龙可自动合成开天!
Return
三、分引擎配置步骤(新手必看)
不同传奇引擎的脚本文件路径不同,需按对应引擎步骤配置,确保脚本正常触发:
1. GOM/GEE引擎配置步骤
(1)文件定位:打开服务端目录下的 \Mirserver\Mir200\Envir\QuestDiary\ 文件夹,找到 QuestFunc.txt(简称QF文件);
(2)代码粘贴:将上述完整脚本代码复制粘贴到QF文件末尾,确保段落标识(如(@AutoSynthesis)、(@OnTimer1))不与现有段落重复,重复则修改标识后缀(如(@AutoSynthesis01));
(3)参数核对:确认脚本中“屠龙”“开天”的物品ID与自身版本一致(可通过DBC数据库编辑器查看Item.DB获取正确ID);
(4)重载生效:游戏内使用GM指令 @ReloadQF 重载脚本,或重启服务端,玩家重新登录后即可激活自动合成功能。
2. HERO引擎配置步骤
(1)文件定位:打开服务端目录下的 \Mirserver\Mir200\Envir\ 文件夹,找到 QManage.txt 文件;
(2)代码粘贴:将脚本中除(@Login)外的段落粘贴到QManage.txt末尾,再将(@Login)段落的代码粘贴到QManage.txt的“登录触发区”(通常在文件开头,寻找含(@Login)的段落,若无则直接添加);
(3)调整定时器:HERO引擎定时器语法略有差异,将脚本中“SetScTimer 1 1000”改为“StartTimer 1 1000”,“(@OnTimer1)”保持不变;
(4)重载生效:游戏内使用GM指令 @ReloadQM 重载脚本,重启服务端后完成配置。
四、关键参数修改方法(个性化适配)
可根据自身版本需求修改脚本参数,实现不同装备的合成规则,核心修改点如下:
1. 更换合成配方(以“2把裁决合成1把怒斩”为例)
找到脚本中材料判定与消耗、生成装备的核心代码段,修改对应物品名称/ID和数量:
;原3屠龙合1开天代码
#IF
CheckItem 屠龙 3
CheckBagSize 1
#ACT
TakeItem 屠龙 3
GiveItem 开天 1
;修改后2裁决合1怒斩代码
#IF
CheckItem 裁决之杖 2
CheckBagSize 1
#ACT
TakeItem 裁决之杖 2
GiveItem 怒斩 1
SendMsg 6 恭喜!2把裁决之杖已自动合成1把怒斩!
2. 调整检测频率
修改定时器触发间隔(单位:毫秒),数值越小检测越频繁,建议1000-3000毫秒(1-3秒):
原代码:SetScTimer 1 1000(1秒/次)
修改为:SetScTimer 1 2000(2秒/次),降低引擎负载;或SetScTimer 1 500(0.5秒/次),提升响应速度。
3. 增加多阶合成(如开天合成玄天)
在原有脚本基础上添加新的判定段落,实现多阶合成连锁反应,代码示例:
;新增2开天合成1玄天
(@OnTimer1)
;原有3屠龙合1开天代码(省略,保持不变)
;新增开天合玄天判定
#IF
CheckItem 开天 2
CheckBagSize 1
#ACT
TakeItem 开天 2
GiveItem 玄天 1
SendMsg 6 恭喜!2把开天已自动合成1把玄天!
PlayEffect 1416 10 1 $USERX $USERY
Return
4. 限制合成职业/等级(可选)
若需限制特定职业/等级才能合成,在#IF段添加对应判定条件,示例(仅战士可合成开天):
#IF
CheckJob Warr ;判定为战士职业
CheckItem 屠龙 3
CheckBagSize 1
#ACT
TakeItem 屠龙 3
GiveItem 开天 1
SendMsg 6 恭喜!战士专属合成成功,获得开天1把!
#ELSE
SendMsg 7 仅战士职业可进行此合成!
Return
五、常见问题排查
1. 脚本不触发,捡取材料后不合成
(1)检查脚本段落标识是否重复:打开对应功能文件(如QF.txt),搜索(@AutoSynthesis)、(@OnTimer1),若存在重复,修改标识后缀(如(@AutoSynthesis_War));
(2)确认定时器已启动:玩家重新登录,查看是否收到“装备自动合成系统已启动”提示,未收到则检查(@Login)段落是否正确添加;
(3)物品ID错误:通过DBC数据库编辑器打开Item.DB,核对“屠龙”“开天”的物品名称与ID是否与脚本一致,ID错误会导致材料检测失效。
2. 合成成功但装备不进背包
(1)检查背包空间:脚本中已添加CheckBagSize 1(需1格空闲),若仍异常,确认玩家背包是否存在锁定格子;
(2)目标装备ID错误:核对开天的物品ID,确保GiveItem指令后的ID正确,避免生成未知物品。
3. 材料扣除但未生成新装备
(1)引擎权限问题:确保脚本文件(如QF.txt)有读写权限,右键文件属性取消“只读”;
(2)重载不彻底:修改脚本后,使用对应GM指令重载(GOM/GEE用@ReloadQF,HERO用@ReloadQM),若无效则重启服务端。
六、多引擎通用注意事项
1. 物品ID统一性:不同传奇版本的装备ID可能不同,务必通过DBC数据库编辑器核对,确保脚本中物品名称/ID与版本一致;
2. 定时器负载控制:检测频率不宜过低(如<500毫秒),否则会增加引擎负载,导致服务器卡顿,建议1000-3000毫秒;
3. 备份原文件:修改功能文件(QF.txt/QManage.txt)前,先复制备份原文件,避免脚本错误导致服务器无法正常运行;
4. 测试验证:配置完成后,创建测试账号,获取对应材料(如3把屠龙)放入背包,确认是否能自动合成,同时测试背包满、材料不足时的提示是否正常。
综上,本脚本无需修改引擎核心配置,新手可按步骤直接配置使用。若需添加更多合成配方(如首饰、防具合成),只需复制核心代码段修改参数即可,适配各类传奇版本的自定义合成需求。

