传奇服务端添加装备合成NPC脚本的完整流程与代码示例

来源: 作者: 点击:
一、创建NPC脚本文件

进入服务端目录Mir200\Envir\Market_Def,新建一个文本文件并重命名,例如“装备合成-3.txt”(-3代表NPC地图编号)。用记事本打开,写入以下基丛话框架:
[@main]
欢迎使用装备合成系统。\\
<合成圣战戒指/@合成圣战戒指>需要:圣战戒指3个+元宝5个\\
<关闭/@exit>


保存后,在Merchant.txt中按格式添加一行配置,如“装备合成3330320装备合成-30”,重启M2或重读NPC即可刷出。

二、基础合成脚本(无几率,必成)

在刚才的脚本文件中,添加以下段落实现基础合成逻辑:
[@合成圣战戒指]
#IF
CHECKITEM圣战戒指3;检测背包是否有3个圣战戒指
CHECKGAMEGOLD>4;检测元宝是否大于4个(即至少5个)
#ACT
TAKE圣战戒指3;收取3个材料戒指
GAMEGOLD-5;扣除5个元宝
GIVE圣战戒指(中)1;给予合成后的成品
SENDMSG6恭喜你,合成圣战戒指(中)成功!
BREAK
#ELSEACT
MESSAGEBOX合成失败:需要圣战戒指3个+元宝5个!
BREAK


此脚本逻辑为:检测材料充足则直接扣除并给予成品,不充足则弹窗提示。

三、加入成功率与失败惩罚

利用RANDOM命令可实现几率合成。以下示例为33%成功率,失败则材料消失:
[@合成雷霆战甲]
#IF
CHECKITEM天魔神甲3
CHECKGAMEGOLD>4
#ACT
TAKE天魔神甲3
GAMEGOLD-5
#IF
RANDOM3;随机数0-2,即1/3几率
#ACT
GIVE雷霆战甲(男)1
SENDMSG5恭喜你,装备升级成功!
BREAK
#ELSEACT;随机失败执行
SENDMSG5很遗憾,合成失败,材料已消失。
BREAK


若需失败后返还部分材料,可在#ELSEACT段加入GIVE命令返还一件材料。

四、多材料混合合成脚本

对于需要多种不同类型材料的合成,使用并列检测条件:
[@合成铁剑]
#IF
CHECKITEM乌木剑1
CHECKITEM黑铁矿石5
CHECKITEM金矿3
#ACT
TAKE乌木剑1
TAKE黑铁矿石5
TAKE金矿3
GIVE铁剑1
SENDMSG1玩家【%s】成功合成铁剑!
BREAK
#ELSEACT
MESSAGEBOX缺少合成所需物品!
BREAK


五、常见报错与调试

1.NPC不显示选项:检查脚本中@main段的换行符是否为\\,且地图坐标、脚本文件名是否与Merchant.txt配置一致。
2.合成无反应:确认物品数据库(StdItems.DB)中存在脚本中写的物品名称,且大小写、符号完全一致。
3.材料扣了不给装备:检查GIVE命令后的物品名是否正确,以及脚本最后是否有BREAK防止逻辑穿透。
[顶部]