传奇服务端合成装备脚本配置全流程

来源: 作者: 点击:
合成装备功能需通过NPC对话触发物品检测与替换逻辑,核心文件包括NPC主脚本、合成配方表及结果处理指令。所有操作在服务端Envir目录下完成,不依赖客户端修改。

第一步:创建合成NPC
在Mir200EnvirMerchant.txt末尾添加一行:
合成大师 320 320
在MapQuest_def目录新建文件夹“合成大师”,内部创建MAIN.txt:

[@main]
欢迎使用装备合成系统!




第二步:定义合成配方
在EnvirQuestDiary合成大师目录下新建WeaponList.txt,格式为:
屠龙+圣战=怒斩|100000
井中月+炼狱=魔血剑|50000
每行结构:材料1+材料2=成品|所需金币

第三步:编写武器合成逻辑(MAIN.txt追加)
[@ForgeWeapon]
IF
CHECKITEMCOUNT 屠龙 1
CHECKITEMCOUNT 圣战 1
ACT
GOTO @CheckGold_Weapon1
ELSESAY
缺少屠龙或圣战!


[@CheckGold_Weapon1]
IF
CHECKGOLD > 100000
ACT
TAKE 屠龙 1
TAKE 圣战 1
TAKE gold 100000
GIVE 怒斩 1
SENDMSG 6 合成成功!获得怒斩!
CLOSE
ELSESAY
金币不足10万!


第四步:批量处理多配方(推荐方法)
用字符串匹配替代逐条判断。在MAIN.txt中改写:
[@ForgeWeapon]
LOADFILE ..合成大师WeaponList.txt
MOV S10
INPUTMULTILINE 请选择合成配方:S10
GOTO @ProcessWeapon

[@ProcessWeapon]
; 假设玩家选择第一行"屠龙+圣战=怒斩|100000"
SEPARATESTR = S20 S21
SEPARATESTR S20 + S22 S23
SEPARATESTR S21 | S24 S25

IF
CHECKITEMCOUNT S22 1
CHECKITEMCOUNT S23 1
CHECKGOLD > S25
ACT
TAKE S22 1
TAKE S23 1
TAKE gold S25
GIVE S24 1
SENDMSG 6 合成成功!获得S24!
CLOSE
ELSESAY
材料或金币不足!


第五步:防错机制
合成前检查背包空位:
IF
CHECKBAGGAGE 1
高级装备绑定:
GIVEBINGO S24 1
记录日志:
WRITEFILE ..LogSynthesize.log 合成$S24

测试流程:
创建两个测试账号,分别放入配方材料;
与NPC对话选择合成项;
验证材料扣除、金币消耗、成品发放是否同步;
检查背包满时是否提示“包裹空间不足”。

常见问题:
物品名称含空格需用引号包裹(如“圣战*项链”);
合成失败不退材料需在脚本开头加确认步骤;
多材料合成扩展SEPARATESTR分割符数量。