传奇服务端合成脚本 双方案适配不同材料组合需求

来源: 作者: 点击:
一、合成脚本核心说明(适配主流引擎)

1. 适用引擎:兼容GOM、GEE、HERO等主流传奇服务端引擎,脚本格式通用,无需额外插件支持。

2. 核心规则:按两种材料组合设定合成逻辑,明确成功/失败结果,无隐藏判定,可直接复制使用。

3. 前置准备:确认服务端物品ID(乌木剑、黑铁矿、金矿、铁剑),需与脚本中ID一致(可在服务端Item.txt中查询);备份服务端Envir文件夹,避免脚本冲突。

注:以下脚本中物品ID为通用示例,需替换为自身服务端对应ID,示例ID:乌木剑131、黑铁矿41、金矿42、铁剑132。

二、两种合成方案脚本(完整可直接使用)

方案一:双材料合成脚本(乌木剑+黑铁矿=铁剑)

1. 脚本功能

需求:消耗乌木剑1把+黑铁矿1块,合成成功率可自定义;成功产出铁剑1把,失败则消耗所有材料,无返还。

2. 完整脚本代码

// 双材料合成(乌木剑+黑铁矿=铁剑)
function 双材料合成()
// 定义物品ID与数量
local 乌木剑ID = 131
local 黑铁矿ID = 41
local 铁剑ID = 132
local 合成成功率 = 50 // 百分比,可修改(1-100)

// 检查背包是否拥有足够材料
if not CheckItemCount(乌木剑ID, 1) then
SendMsgToPlayer(PlayerIndex, "合成失败:背包缺少乌木剑1把!")
return
end
if not CheckItemCount(黑铁矿ID, 1) then
SendMsgToPlayer(PlayerIndex, "合成失败:背包缺少黑铁矿1块!")
return
end

// 执行合成判定
local 随机数 = math.random(1, 100)
if 随机数 <= 合成成功率 then
// 合成成功:扣除材料,给予产物
DelItem(乌木剑ID, 1)
DelItem(黑铁矿ID, 1)
AddItem(铁剑ID, 1)
SendMsgToPlayer(PlayerIndex, "合成成功!获得铁剑1把!")
else
// 合成失败:扣除所有材料
DelItem(乌木剑ID, 1)
DelItem(黑铁矿ID, 1)
SendMsgToPlayer(PlayerIndex, "合成失败!所有材料已消耗!")
end
end

方案二:三材料合成脚本(乌木剑+黑铁矿+金矿=铁剑)

1. 脚本功能

需求:消耗乌木剑1把+黑铁矿1块+金矿1块,合成成功率可自定义;成功产出铁剑1把,失败仅返还乌木剑,消耗黑铁矿与金矿。

2. 完整脚本代码

// 三材料合成(乌木剑+黑铁矿+金矿=铁剑)
function 三材料合成()
// 定义物品ID与数量
local 乌木剑ID = 131
local 黑铁矿ID = 41
local 金矿ID = 42
local 铁剑ID = 132
local 合成成功率 = 60 // 百分比,可修改(1-100)

// 检查背包是否拥有足够材料
if not CheckItemCount(乌木剑ID, 1) then
SendMsgToPlayer(PlayerIndex, "合成失败:背包缺少乌木剑1把!")
return
end
if not CheckItemCount(黑铁矿ID, 1) then
SendMsgToPlayer(PlayerIndex, "合成失败:背包缺少黑铁矿1块!")
return
end
if not CheckItemCount(金矿ID, 1) then
SendMsgToPlayer(PlayerIndex, "合成失败:背包缺少金矿1块!")
return
end

// 执行合成判定
local 随机数 = math.random(1, 100)
if 随机数 <= 合成成功率 then
// 合成成功:扣除材料,给予产物
DelItem(乌木剑ID, 1)
DelItem(黑铁矿ID, 1)
DelItem(金矿ID, 1)
AddItem(铁剑ID, 1)
SendMsgToPlayer(PlayerIndex, "合成成功!获得铁剑1把!")
else
// 合成失败:扣除部分材料,返还乌木剑
DelItem(黑铁矿ID, 1)
DelItem(金矿ID, 1)
SendMsgToPlayer(PlayerIndex, "合成失败!返还乌木剑1把,黑铁矿与金矿已消耗!")
end
end

三、脚本安装与启用步骤(分引擎操作)

1. 通用安装流程(所有引擎通用)

1. 打开服务端根目录,定位到脚本文件夹:Envir\QuestDiary\(若无该文件夹,直接在Envir下新建“QuestDiary”文件夹)。

2. 新建文本文档,将对应合成方案的脚本代码复制粘贴进去,保存并命名为“合成脚本.txt”(删除.txt后缀,确保文件无后缀)。

3. 打开Envir\QuestDiary\QuestDiary.txt文件,在末尾添加一行:[@合成脚本]#include 合成脚本,保存关闭。

2. 引擎专属启用设置

(1)GOM/GEE引擎

1. 运行M2Server.exe,点击顶部菜单栏“脚本”→“脚本设置”,勾选“启用自定义脚本”,点击“确定”。

2. 点击“脚本”→“重载脚本”,提示“脚本重载成功”即可生效,无需重启服务端。

(2)HERO引擎

1. 运行M2Server.exe,点击顶部菜单栏“选项”→“功能设置”→“脚本设置”,勾选“加载QuestDiary脚本”。

2. 点击“控制”→“重启脚本引擎”,等待重启完成,脚本即可生效。

3. 合成触发方式(两种可选)

1. NPC触发(推荐):在服务端Envir\NpcDef文件夹中,选择任意NPC(如比奇城铁匠),在其对话脚本中添加:

“#IF 1 #ACT 双材料合成 #SAY 已为你执行乌木剑+黑铁矿合成!”(对应双材料合成,三材料同理替换为“三材料合成”)。

2. 命令触发:在脚本开头添加触发命令,示例:[@命令触发]#ACT 双材料合成,游戏内输入“@命令触发”即可执行合成。

四、脚本修改与自定义(按需调整)

1. 调整合成成功率

找到脚本中“合成成功率 = 50”(双材料)或“合成成功率 = 60”(三材料),修改数值即可(1为最低成功率,100为必成)。

示例:将三材料合成成功率改为70,即“local 合成成功率 = 70”。

2. 替换物品与数量

1. 替换物品:修改“local 物品ID = 数字”中的ID,替换为服务端对应物品ID(可在Envir\Item.txt中查询,格式为“ID 物品名 其他属性”)。

2. 调整数量:修改CheckItemCount、DelItem、AddItem后的数字,即可调整材料消耗数量与产物数量。

示例:消耗2块黑铁矿合成,即“CheckItemCount(黑铁矿ID, 2)”“DelItem(黑铁矿ID, 2)”。

3. 修改提示信息

修改SendMsgToPlayer后的文字内容,即可自定义合成成功/失败的提示语,示例:将“合成成功!获得铁剑1把!”改为“合成圆满成功,铁剑已放入背包!”。

五、常见故障排查(脚本无效/合成异常)

1. 脚本无法触发

原因:脚本文件后缀未删除、QuestDiary.txt中路径填写错误、未重载脚本。

解决:确认脚本文件无.txt后缀;核对QuestDiary.txt中“#include 合成脚本”与脚本文件名一致;重新重载脚本或重启脚本引擎。

2. 提示缺少材料(实际拥有)

原因:物品ID填写错误、材料数量与脚本要求不一致、背包材料被绑定(部分服务端绑定物品不可用于合成)。

解决:重新查询Item.txt确认物品ID;调整脚本中材料数量;使用非绑定材料进行合成。

3. 合成后无产物/材料未扣除

原因:产物ID填写错误、服务端物品产出限制、脚本语法错误(如缺少括号、标点符号)。

解决:核对产物ID;检查服务端是否限制物品产出;逐行核对脚本代码,补充缺失的括号、标点(脚本区分中英文标点,需使用英文标点)。

4. 引擎提示脚本错误

原因:脚本格式不兼容、存在中文空格、变量名重复。

解决:删除脚本中的中文空格,替换为英文空格;修改重复的变量名(如将“三材料合成”改为“三材料铁剑合成”);确保所有函数、语句闭合完整。

六、注意事项(避免脚本异常)

1. 编辑脚本时,务必使用记事本或专业文本编辑器(如Notepad++),保存为ANSI编码,避免格式错乱导致脚本失效。

2. 修改脚本后,需重新重载脚本,否则修改内容不生效;若重载后仍异常,重启服务端即可。

3. 两种合成脚本可同时安装,触发方式区分开即可(如不同NPC分别触发双材料、三材料合成)。

4. 若服务端有合成冷却、等级限制等需求,可在脚本中添加对应判定(如添加等级限制:if PlayerLevel < 10 then 提示等级不足,return end)。