本文所述传奇服务端合成脚本,适配主流引擎,核心实现两类合成逻辑:双材料合成(成功得目标物、失败失所有材料)、三材料合成(成功得目标物、失败仅保留核心材料),以NPC为触发载体,通过条件判断管控合成流程。
合成脚本核心依赖NPC对话触发,以(@main)为入口,搭配#IF条件校验、#ACT执行操作、#SAY文本提示,同时通过随机数指令控制合成成功率,确保玩法合理性。脚本保存为TXT格式,存放至服务端指定路径即可生效。
核心基础指令说明:CheckItem检测物品持有量、Take扣除材料、Give发放合成物、Random设定随机成功率、#ELSE分支管控失败逻辑,所有指令需与游戏内物品名称、引擎语法精准适配。
案例一:乌木剑+黑铁矿合成铁剑(双材料合成),成功得铁剑,失败失去所有材料,脚本代码及解析如下:
(@main) ;NPC点击触发入口
#SAY
装备合成服务开启中!\
1. 乌木剑+黑铁矿 → 铁剑(成功率50%)\
成功得铁剑,失败失去所有材料。\
<开始合成(双材料)/@ComposeTwo> <查看三材料合成/@ComposeThree> <退出/@exit>
(@ComposeTwo) ;双材料合成代码段
#IF ;校验材料是否充足
CheckItem 乌木剑 1
CheckItem 黑铁矿 1
CheckBaggage ;检测背包是否有空闲位置放铁剑
#ACT
Take 乌木剑 1 ;扣除两种材料
Take 黑铁矿 1
Random 100 ;生成0-99随机数,控制成功率
#IF ;50%成功率(随机数≤49为成功)
RandomNum <= 49
#ACT
Give 铁剑 1 ;发放合成物
#SAY 合成成功!获得铁剑1把。
#ELSE ;合成失败逻辑
#SAY 合成失败!乌木剑与黑铁矿已损耗。
Close
#ELSESAY ;材料不足或背包满时提示
背包空间不足,或未集齐乌木剑与黑铁矿!\
<返回/@main>
上述脚本中,Random 100搭配RandomNum条件控制成功率,可按需调整数值(如RandomNum≤39即为40%成功率);CheckBaggage指令避免合成成功后铁剑无法发放。
案例二:乌木剑+黑铁矿+金矿合成铁剑(三材料合成),成功得铁剑,失败仅保留乌木剑,脚本代码及解析如下:
(@ComposeThree) ;三材料合成代码段
#SAY
三材料合成规则:\
乌木剑+黑铁矿+金矿 → 铁剑(成功率60%)\
成功得铁剑,失败仅返还乌木剑。\
<确认合成(三材料)/@DoComposeThree> <返回/@main>
(@DoComposeThree)
#IF ;校验三种材料及背包空间
CheckItem 乌木剑 1
CheckItem 黑铁矿 1
CheckItem 金矿 1
CheckBaggage
#ACT
Take 黑铁矿 1 ;先扣除非核心材料
Take 金矿 1
Random 100 ;60%成功率(随机数≤59)
#IF
RandomNum <= 59
#ACT
Take 乌木剑 1 ;扣除核心材料
Give 铁剑 1 ;发放合成物
#SAY 合成成功!获得铁剑1把。
#ELSE ;失败返还乌木剑
#SAY 合成失败!仅返还乌木剑,黑铁矿与金矿已损耗。
Close
#ELSESAY
背包空间不足,或未集齐三种合成材料!\
<返回/@main>
该脚本通过优先扣除非核心材料(黑铁矿、金矿),失败时不扣除乌木剑,实现“失败仅得乌木剑”的需求;成功率可通过调整RandomNum数值灵活修改,适配不同玩法设定。
脚本存放与生效说明:将编写好的脚本保存为TXT文件,命名为合成脚本.txt,存放至服务端路径D:\MirServer\Mir200\Envir\QuestDiary\合成NPC,重启服务端引擎,创建对应NPC并绑定脚本入口,即可正常使用。
通用注意事项:一是物品名称需与服务端数据库完全一致,避免因名称误差导致脚本失效;二是不同引擎随机数指令可能有差异,部分引擎用Rand替代Random,需针对性调整;三是可新增#CALL指令关联其他脚本,拓展合成冷却、每日合成次数限制等功能。
脚本排查要点:若合成无反应,先检查材料名称与检测指令是否匹配;若奖励发放异常,校验背包检测指令是否添加;若成功率异常,核对Random与RandomNum的数值逻辑,确保符合预期设定。

