传奇服务端合成脚本编写 含双材料与三材料规则

来源: 作者: 点击:

一、合成脚本核心逻辑与前置准备

本次合成脚本核心遵循两类规则:双材料合成(物品A+物品B)成功得物品C、失败失所有材料;三材料合成(物品A+物品B+物品D)成功得物品C、失败仅保留物品A。脚本依赖服务端Robot脚本体系,通过条件判定检测材料、随机判定合成结果,执行对应奖惩动作。

1. 核心文件与路径

脚本存储于服务端Robot_def文件夹,核心文件为RobotManage.txt(主脚本),需关联网关与物品数据库。路径固定为D:\Mirserver\Mir200\Envir\Robot_def,编写前关闭服务端,备份原始RobotManage.txt,防止语法错误导致服务端启动异常。

必备工具为记事本或脚本编辑器,无需额外插件。确认服务端引擎类型(GOM、GEE等),两类引擎核心命令一致,可直接通用,无需调整语法格式。

2. 物品参数确认

通过DBC2000打开物品数据库(路径D:\Mirserver\Mir200\Envir\Items.DB),核对合成涉及物品的英文名、编号与属性,确保脚本内物品名称与数据库完全一致。示例中物品对应关系:乌木剑(WoodSword)、黑铁矿(BlackIronOre)、金矿(GoldOre)、铁剑(IronSword)。

记录物品是否可叠加、是否绑定,叠加类材料需在脚本中指定数量(本次默认单份材料合成),非叠加物品直接检测存在性即可。

二、双材料合成脚本编写(乌木剑+黑铁矿)

1. 脚本触发方式设置

采用NPC触发模式,便于玩家操作,脚本需绑定指定NPC(如合成师)。在RobotManage.txt中添加触发标识,格式为[@合成铁剑1],作为玩家对话NPC后触发合成的入口,后续合成逻辑均嵌套在该标识下。

玩家触发方式:与合成师对话,选择对应合成选项,触发@合成铁剑1指令,脚本开始执行材料检测与合成判定。

2. 核心合成脚本代码

脚本按“材料检测-合成概率判定-成功/失败执行”逻辑编写,完整代码如下:

[@合成铁剑1]#IF CheckItem 乌木剑 1 CheckItem 黑铁矿 1 #ACT Random 5 (5为成功率,0-10随机,数值越大成功率越高) #IF Equal 0 (0代表成功,可调整成功对应数值范围) #ACT TakeItem 乌木剑 1 TakeItem 黑铁矿 1 GiveItem 铁剑 1 SendMsg 6 【合成成功】恭喜获得铁剑! #ELSEACT TakeItem 乌木剑 1 TakeItem 黑铁矿 1 SendMsg 6 【合成失败】材料已消耗,再接再厉! #ELSEACT SendMsg 6 【提示】缺少合成材料,需乌木剑x1+黑铁矿x1。

3. 关键参数说明

CheckItem 物品名 数量:检测玩家背包是否存在对应数量材料;Random 5:设定合成成功率为50%(0-4成功,5-9失败),可按需调整数值,如Random 3为70%成功率。

TakeItem 物品名 数量:移除玩家背包内对应材料;GiveItem 物品名 数量:给予合成产物。SendMsg 6 提示内容:向玩家发送黄色提示信息,同步反馈合成结果。

三、三材料合成脚本编写(乌木剑+黑铁矿+金矿)

1. 触发标识与材料检测

添加独立触发标识[@合成铁剑2],与双材料合成脚本区分,避免冲突。脚本首段强化三材料检测,确保玩家同时拥有乌木剑、黑铁矿、金矿各1份,否则提示材料不足。

2. 核心合成脚本代码

遵循“成功得铁剑、失败留乌木剑”规则,代码如下:

[@合成铁剑2]#IF CheckItem 乌木剑 1 CheckItem 黑铁矿 1 CheckItem 金矿 1 #ACT Random 6 (成功率60%,0-5成功,6-9失败) #IF Equal 0 #ACT TakeItem 乌木剑 1 TakeItem 黑铁矿 1 TakeItem 金矿 1 GiveItem 铁剑 1 SendMsg 6 【合成成功】恭喜获得铁剑! #ELSEACT TakeItem 黑铁矿 1 TakeItem 金矿 1 SendMsg 6 【合成失败】仅保留乌木剑,其他材料已消耗! #ELSEACT SendMsg 6 【提示】缺少合成材料,需乌木剑x1+黑铁矿x1+金矿x1。

3. 失败规则特殊处理

与双材料合成不同,三材料合成失败仅移除黑铁矿与金矿,保留乌木剑,脚本中需精准控制TakeItem指令,仅针对非保留材料执行移除操作,避免误删目标物品。

可优化失败反馈提示,明确告知玩家保留物品,提升操作体验,例如补充“【合成失败】黑铁矿与金矿已消耗,乌木剑已保留”。

四、脚本全局配置与触发优化

1. NPC对话脚本关联

打开服务端NPC脚本文件(路径D:\Mirserver\Mir200\Envir\NpcDef),找到合成师对应脚本,添加对话选项。示例代码:#SAY 铁剑合成(双材料):乌木剑+黑铁矿\r\n 铁剑合成(三材料):乌木剑+黑铁矿+金矿\r\n#ACT GOTO @合成铁剑1 (对应双材料) 或 GOTO @合成铁剑2 (对应三材料)。

对话内容用\r\n换行,确保显示清晰,玩家可直观选择合成方式,触发对应脚本逻辑。

2. 合成概率调整技巧

通过Random参数灵活调整成功率,双材料与三材料可设置差异化概率,例如三材料合成成功率(60%)高于双材料(50%),激励玩家使用三材料合成。调整格式:Random 数值,数值越小成功率越高,数值为10时成功率10%,数值为0时必成功。

3. 叠加材料合成适配

若需多份材料合成,修改CheckItem、TakeItem指令后的数量参数即可。示例:双材料合成需2份黑铁矿,脚本中调整为CheckItem 黑铁矿 2、TakeItem 黑铁矿 2,其他逻辑保持不变。

五、脚本测试与问题排查

1. 测试流程与验证要点

启动服务端与客户端,创建测试账号,获取对应合成材料,与合成师对话触发合成。分别测试双材料、三材料的成功与失败场景,验证材料消耗、产物获得是否符合规则,提示信息是否正常显示。

重点测试三材料合成失败场景,确认仅保留乌木剑,黑铁矿与金矿正常消耗,无材料误删或保留异常问题。

2. 常见故障解决

合成无响应:检查触发标识(@合成铁剑1/2)与NPC脚本中的GOTO指令是否一致,确保无拼写错误;核对物品名称与数据库是否匹配,避免中文别名或英文名误写。

材料消耗异常:检查TakeItem指令参数,三材料合成失败时需剔除乌木剑的TakeItem指令,仅移除另外两种材料;双材料合成需确保两种材料的TakeItem指令均添加。

合成结果混乱:调整Random参数对应的成功数值范围,明确成功与失败的判定边界,避免数值重叠导致结果不可控,例如Random 5时,成功对应0-4,失败对应5-9,逻辑清晰无歧义。

六、脚本扩展与通用化调整

1. 多合成配方扩展

按本次脚本逻辑批量添加新配方,只需复制双材料或三材料脚本框架,替换物品名称、合成概率即可。示例:木剑+铜矿合成青铜剑(双材料,失败失所有材料),木剑+铜矿+银矿合成青铜剑(三材料,失败留木剑)。

2. 权限与场景限制

添加等级限制,仅指定等级以上玩家可合成,脚本首段补充#IF CheckLevel 10(等级≥10级),低于等级则提示“等级不足,无法合成”。

添加区域限制,仅在特定地图(如合成屋)可触发合成,补充#IF Map 10(地图代号10为合成屋),非对应地图提示“仅可在合成屋进行合成操作”。

3. 合成冷却时间设置

添加冷却时间,避免高频合成,脚本中添加变量控制:#IF Map 0 Not CheckVar HUMAN HeChengCD 1 #ACT 合成逻辑 SetVar HUMAN HeChengCD 1 DelayGoto 30 @ClearCD(30秒冷却),@ClearCD标识下添加SetVar HUMAN HeChengCD 0,重置冷却状态。