传奇服务端合成装备脚本,核心是通过脚本命令实现玩家消耗指定材料,合成高阶装备、特殊装备,适配所有主流服务端引擎,脚本可直接写入QFunction-0.txt或专属合成NPC脚本文件,无需额外插件,实操中只需按步骤配置材料、合成规则,即可正常生效,以下分基础配置、核心脚本、场景示例、常见调试四部分,详细讲解添加方法。
合成装备脚本基础配置,是脚本正常运行的前提,需先完成服务端基础设置,确保合成所需的物品、参数在服务端数据库中存在,避免脚本执行失败。
首先确认服务端物品数据库(StdItems.DB)中,合成所需的材料、合成后的装备均已存在,包括物品名称、属性、外观等参数,需确保物品名称与脚本中填写的完全一致,不可出现错别字。例如合成所需的钢玉石、黑铁矿石、强化石,以及合成后的裁决、骨玉权杖等装备,需提前在数据库中核对名称,避免因名称不一致导致材料检测失败、装备无法生成。
其次选择合成触发方式,常用两种触发形式,一是通过NPC对话触发,适合玩家手动合成,操作直观;二是通过面板按钮触发,依托服务端引擎提供的前端面板,点击合成按钮即可触发脚本,适合批量合成或复杂合成规则。两种方式脚本逻辑一致,仅触发入口不同,可根据服务端设置选择。
最后确定合成核心规则,包括合成所需材料及数量、合成成功率、失败处理方式、合成冷却时间,这些规则需在脚本中明确编写,不可遗漏。例如设定合成裁决需3个钢玉石、10个黑铁矿石,成功率80%,失败后材料全部保留,无冷却时间,后续脚本需严格按此规则编写。
合成装备脚本核心命令及语法,无需额外学习新命令,依托传奇服务端基础脚本命令即可实现,重点是合理搭配条件判断、物品操作、提示反馈命令,确保脚本逻辑连贯,以下详解核心命令搭配及用法。
合成脚本核心逻辑为“条件检测→执行操作→反馈结果”,核心命令搭配为#IF(条件检测)+#ACT(执行操作)+#SAY/#ELSESAY(结果反馈),可根据需求添加变量、随机数等命令,实现成功率、冷却时间等功能。
条件检测命令,重点用于检测玩家是否满足合成条件,常用命令包括CHECKITEM(检测材料数量)、CHECKBAGGAGE(检测背包空格)、CHECKLEVELEX(检测玩家等级,可选)、CHECKJOB(检测玩家职业,可选)。例如检测玩家是否拥有3个钢玉石和10个黑铁矿石,可写为#IF CHECKITEM 钢玉石 3 CHECKITEM 黑铁矿石 10;检测背包是否有至少1个空格,写为#IF CHECKBAGGAGE;若合成有等级限制,可添加#IF CHECKLEVELEX 50,多条件同时满足需连续编写在#IF后。
执行操作命令,用于完成材料扣除、装备生成、冷却时间设置等,常用命令包括TAKEITEM(扣除材料)、ADDITEM(添加合成装备)、MOV/INC(变量赋值,用于冷却时间)、RANDOM(随机数,用于成功率)。例如扣除3个钢玉石和10个黑铁矿石,写为TAKEITEM 钢玉石 3 TAKEITEM 黑铁矿石 10;添加1把裁决,写为ADDITEM 裁决 1;设置合成冷却时间,可通过变量赋值实现,写为MOV D0 300(D0为个人变量,300为秒数)。
结果反馈命令,用于告知玩家合成成功、失败或条件不足,常用#SAY(成功/失败提示)、#ELSESAY(条件不足提示),可添加换行符分隔提示内容,让玩家清晰查看结果。例如合成成功提示,写为#SAY 合成成功!\n您获得了1把裁决;合成失败提示,写为#SAY 合成失败!\n材料已为您保留;条件不足提示,写为#ELSESAY 合成条件不足!\n需拥有3个钢玉石、10个黑铁矿石,且背包有空格。
此外,可添加SendActionOfJson命令(部分引擎支持),用于向前端面板反馈合成结果,例如合成成功反馈,写为SendActionOfJson 10000 {"action":"event","data":{"recog":0,"param1":1}},其中recog=0表示成功,param1对应合成装备ID,适配面板触发合成的场景。
不同场景合成装备脚本示例,覆盖基础装备合成、职业专属装备合成、带成功率合成、面板触发合成四种高频场景,脚本可直接复制到服务端脚本文件中,替换物品名称、材料数量即可使用,无需修改核心逻辑。
示例1:基础装备合成(无成功率、无冷却,适合新手装备合成),以合成新手剑为例,所需材料为2个铁矿石、1个木材,脚本如下:(@合成新手剑)#IF CHECKITEM 铁矿石 2 CHECKITEM 木材 1 CHECKBAGGAGE #ACT TAKEITEM 铁矿石 2 TAKEITEM 木材 1 ADDITEM 新手剑 1 #SAY 合成成功!\n您获得1把新手剑。 #ELSESAY 合成条件不足!\n需携带2个铁矿石、1个木材,且背包有空格。 close
示例2:职业专属装备合成(限制职业、带成功率,适合高阶职业装备),以战士专属装备裁决为例,所需材料3个钢玉石、10个黑铁矿石,等级限制50级,成功率80%,失败材料保留,脚本如下:(@合成裁决)#IF CHECKJOB warr CHECKLEVELEX 50 CHECKITEM 钢玉石 3 CHECKITEM 黑铁矿石 10 CHECKBAGGAGE #ACT RANDOM 100 #IF LARGE 80 TAKEITEM 钢玉石 3 TAKEITEM 黑铁矿石 10 ADDITEM 裁决 1 #SAY 合成成功!\n您获得1把裁决。 #ELSEACT #SAY 合成失败!\n材料已为您保留,可再次尝试。 #ELSESAY 合成条件不足!\n战士职业、等级≥50级,需3个钢玉石、10个黑铁矿石,且背包有空格。 close
示例3:带冷却时间合成(避免频繁合成,适合稀有装备),以合成护身戒指为例,所需材料1个金刚石、5个钢玉石,冷却时间5分钟(300秒),成功率70%,失败材料扣除,脚本如下:(@合成护身戒指)#IF CHECKITEM 金刚石 1 CHECKITEM 钢玉石 5 CHECKBAGGAGE #IF EQUAL D0 0 #ACT RANDOM 100 #IF LARGE 70 TAKEITEM 金刚石 1 TAKEITEM 钢玉石 5 ADDITEM 护身戒指 1 MOV D0 300 #SAY 合成成功!\n您获得1个护身戒指,5分钟后可再次合成。 #ELSEACT TAKEITEM 金刚石 1 TAKEITEM 钢玉石 5 #SAY 合成失败!\n材料已扣除,可再次尝试。 #ELSEACT #SAY 合成冷却中!\n剩余<$STR(D0)>秒可再次合成。 #ELSESAY 合成条件不足!\n需1个金刚石、5个钢玉石,且背包有空格。 close
示例4:面板触发合成(适配996M2等支持面板的引擎),通过点击面板合成按钮触发,读表配置合成规则,脚本如下:(@G_CompoundItem10000)#ACT NEWREADCSV ..\Data\cfg_makeitems.csv #IF NOT EQUAL <$param1> #ACT MOV S$系统合成_IDx判断 <$param1> MOV S$系统合成_初始行判断 <$GetTypeBRow(cfg_makeitems,0,<$str(S$系统合成_IDx判断)>)> #IF NOT checkitems <$cfg_makeitems(<$str(S$系统合成_初始行判断)>_8)> 0 1 #ACT SendActionOfJson 10000 {"action":"event","data":{"recog":-2,"param1":<$str(S$系统合成_IDx判断)>}} BREAK #IF NOT checkitems <$cfg_makeitems(<$str(S$系统合成_初始行判断)>_9)> 0 1 #ACT SendActionOfJson 10000 {"action":"event","data":{"recog":-1,"param1":<$str(S$系统合成_IDx判断)>}} BREAK #IF checkitems <$cfg_makeitems(<$str(S$系统合成_初始行判断)>_8)> 0 1 checkitems <$cfg_makeitems(<$str(S$系统合成_初始行判断)>_9)> 0 1 #ACT takes <$cfg_makeitems(<$str(S$系统合成_初始行判断)>_8)> N$合成_道具绑定状态 1 takes <$cfg_makeitems(<$str(S$系统合成_初始行判断)>_9)> N$合成_货币绑定状态 1 gives <$cfg_makeitems(<$str(S$系统合成_初始行判断)>_7)> SendActionOfJson 10000 {"action":"event","data":{"recog":0,"param1":<$str(S$系统合成_IDx判断)>}}
示例5:多材料批量合成(支持多种材料组合,适合复杂装备合成),以合成雷霆战甲为例,所需材料2个雷霆碎片、3个钢玉石、1个强化石、10000金币,脚本如下:(@合成雷霆战甲)#IF CHECKITEM 雷霆碎片 2 CHECKITEM 钢玉石 3 CHECKITEM 强化石 1 CHECKGOLD 10000 CHECKBAGGAGE #ACT TAKEITEM 雷霆碎片 2 TAKEITEM 钢玉石 3 TAKEITEM 强化石 1 GAMEGOLD -10000 ADDITEM 雷霆战甲 1 #SAY 合成成功!\n您获得1件雷霆战甲。 #ELSESAY 合成条件不足!\n需2个雷霆碎片、3个钢玉石、1个强化石、10000金币,且背包有空格。 close
合成装备脚本添加步骤,按顺序操作即可完成添加,无需专业技术,适合所有服务端操作人员,步骤如下:第一步,打开传奇服务端安装目录,找到Scripts文件夹,双击打开QFunction-0.txt文件(或新建合成专属脚本文件,命名为HeCheng.txt,放入Scripts文件夹);第二步,复制对应场景的脚本示例,粘贴到文件中,替换脚本中的物品名称、材料数量、等级限制、成功率等参数,确保与服务端物品数据库一致;第三步,若选择NPC触发合成,需在NPC脚本中添加合成选项,例如在新手村NPC脚本中添加#SAY 欢迎使用装备合成功能!\n1.合成新手剑/@合成新手剑\n2.合成裁决/@合成裁决,关联对应合成脚本段落;第四步,若选择面板触发合成,需将cfg_makeitems.csv文件放入Data目录,配置合成表参数,确保脚本中读表路径正确;第五步,保存脚本文件,重启传奇服务端,登录游戏测试合成功能,确认无异常即可正常使用。
脚本调试及常见问题解决,实操中若出现脚本失效、合成失败等问题,可按以下方法调试,快速排查解决,无需重新编写整个脚本。
问题1:合成时提示条件不足,实际材料已齐全。解决方法:核对脚本中材料名称与服务端物品数据库(StdItems.DB)中的名称是否完全一致,包括大小写、特殊符号,例如“黑铁矿石”不可写为“黑铁”;核对材料数量,确保脚本中检测的数量与玩家携带数量一致,同时检查背包是否有至少1个空格,CHECKBAGGAGE命令不可遗漏。
问题2:合成成功但未获得装备,或合成失败材料未扣除/保留。解决方法:检查ADDITEM命令中的装备名称是否正确,确保装备在物品数据库中存在;检查TAKEITEM命令的材料数量是否与脚本中检测的数量一致,失败处理逻辑是否正确,例如带成功率的脚本,需确保失败分支未添加TAKEITEM命令(材料保留)或添加了TAKEITEM命令(材料扣除)。
问题3:面板触发合成无反应,或反馈失败。解决方法:检查NEWREADCSV命令中的读表路径是否正确,确保cfg_makeitems.csv文件放入Data目录;核对<$param1>参数传递是否正常,确保面板按钮触发的字段与脚本中@G_CompoundItem10000一致,可在测试服调试参数,确认无误后再应用到正式服。
问题4:冷却时间不生效,可频繁合成。解决方法:检查变量赋值命令是否正确,确保变量(如D0)未被其他脚本占用,MOV D0 300命令需放在合成成功分支中,同时在条件检测中添加#IF EQUAL D0 0,确保冷却时间内无法重复合成。
问题5:合成成功率异常,要么全成功要么全失败。解决方法:检查RANDOM命令的参数,例如成功率80%需写为RANDOM 100,后续搭配#IF LARGE 80,不可将RANDOM参数写为10,否则会导致成功率异常;确保RANDOM命令放在#ACT之后,条件检测之前,逻辑顺序不可颠倒。
合成装备脚本进阶优化,可根据服务端需求添加更多功能,提升玩家体验,无需修改核心逻辑,直接在原有脚本基础上添加即可。可添加合成记录功能,通过变量记录玩家合成次数,例如INC D1 1,在#SAY中添加“您已合成<$STR(D1)>次”;可添加合成暴击功能,通过RANDOM命令实现,例如合成成功后触发RANDOM 10,若等于1则额外获得1个材料;可添加职业专属合成提示,通过CHECKJOB命令判断职业,在#SAY中添加对应职业的合成提示。
此外,不同服务端引擎(如GOM、996M2)的合成脚本通用度较高,细微差异主要在面板触发命令和读表命令上,实操中可根据引擎版本调整,例如GOM引擎无需添加读表命令,直接通过条件检测和执行命令即可实现合成,996M2引擎面板合成需配置CSV表格和对应触发命令,可参考对应引擎帮助文档调整参数。
所有合成装备脚本均需遵循服务端脚本编写规则,脚本中不可出现禁止词,不可使用修改前文的模式,所有逻辑需一次性编写完成;材料和装备名称需与服务端数据库完全一致,参数设置需合理,避免出现无意义的数值;脚本编写完成后,需在测试服全面测试,确认合成、失败、冷却等功能均正常,再应用到正式服,确保服务端稳定运行。

