在单机传奇中添加 “吃后获 30 分钟双倍经验、死亡 / 下线不消失” 的药物,核心需通过 “物品创建 + 脚本绑定 + 状态存档” 三步实现,以下是针对主流 M2 引擎(如 heroM2、GEE)的详细操作,新手可直接套用。
一、准备工具:确认核心文件与工具
服务端引擎工具:打开服务端目录下的 “M2Server.exe”(核心引擎),自带 “物品编辑器”“脚本编辑器”,无需额外下载;
文本编辑器:推荐 “Notepad++”,用于修改脚本文件(避免记事本乱码);
服务端路径记录:记住服务端 “Data” 文件夹路径(如 D:\LegendServer\Data),后续脚本需放在此目录下的 “QuestDiary” 或 “Envir\QuestDiary” 文件夹(不同引擎路径略有差异,以实际显示为准)。
二、第一步:创建双倍经验药物(用 M2 引擎物品编辑器)
打开物品编辑器:
启动 “M2Server.exe”,点击顶部菜单栏 “查看”→“物品列表”,弹出 “物品编辑器” 窗口;
新建药物物品:
点击窗口左下角 “新增”,在 “物品基本信息” 中设置:
物品名称:自定义(如 “双倍经验丹”);
物品 ID:选择未占用的 ID(建议选 10000 以后,避免与默认物品冲突,如 10050);
物品类型:设为 “消耗品 - 药物”(确保可右键使用);
使用效果:勾选 “使用后执行脚本”(关键,用于触发双倍经验);
其他属性:可设 “重量 1”“持久 1”“售价 0”(单机无需考虑经济系统),图标选 “药物类图标”(如编号 258,视觉上区分普通药物)。
保存物品:
点击 “保存” 按钮,关闭物品编辑器(此时药物已添加到游戏物品库,但暂未绑定双倍效果)。
三、第二步:绑定双倍经验脚本(实现 30 分钟效果)
找到脚本存放路径:
进入服务端 “Data\QuestDiary” 文件夹(若没有 “QuestDiary”,则在 “Envir\QuestDiary” 中),新建一个 TXT 文件,重命名为 “DoubleExpItem.txt”(脚本文件名自定义,后缀为.txt);
编写双倍经验触发脚本:
用 Notepad++ 打开 “DoubleExpItem.txt”,复制以下脚本并修改关键参数(括号内为说明,需删除括号再用):
;双倍经验药物脚本:使用后获30分钟双倍经验
@UseItemFunc10050 ;10050为第一步设置的药物ID,需与物品ID一致
{
;1. 检查是否已有双倍效果,避免重复叠加
if CheckBuff(1001) = 1 ;1001为自定义双倍Buff编号(可随便选1000-9999未用编号)
{
SendMsg 7 "你已拥有双倍经验效果,无需重复使用!" ;游戏内弹出提示
return 1 ;结束脚本,不消耗药物
}
;2. 给予30分钟双倍经验Buff(30分钟=1800秒)
AddBuff 1001,1800,2 ;参数含义:Buff编号1001,持续1800秒,倍数2(即双倍)
;3. 游戏内提示效果生效
SendMsg 7 "使用成功!获得30分钟双倍经验,死亡/下线不消失!"
;4. 消耗药物(确保使用后物品减少1个)
TakeItem 10050,1 ;物品ID10050,数量1
return 1
}
关联脚本到物品:
回到 “M2Server.exe”,打开 “物品编辑器”→找到 “双倍经验丹”→在 “使用脚本” 栏输入 “@UseItemFunc10050”(与脚本内开头的命令一致)→点击 “保存”。
四、第三步:设置 “死亡 / 下线不消失”(关键步骤)
1. 解决 “死亡后效果消失” 问题
打开 M2 引擎→点击顶部 “选项”→“功能设置”→“状态设置”;
在 “Buff 死亡处理” 栏,找到编号 1001 的双倍 Buff(第一步自定义的编号),将 “死亡清除” 改为 “否”→点击 “保存设置”(此时死亡后 Buff 不被清除)。
2. 解决 “下线后效果消失” 问题
进入服务端 “Data” 文件夹,找到 “PlayerSaveParam.txt”(角色存档参数文件);
用 Notepad++ 打开,在文件末尾添加一行:“DoubleExpBuff=CheckBuff (1001),SaveBuff (1001)”→保存文件;
作用:玩家下线时,系统自动将 “1001 号 Buff 状态”(包括剩余时间)存入角色存档;上线时自动读取并恢复 Buff,实现下线不消失。
五、第四步:添加药物到游戏(方便测试获取)
通过 NPC 给予药物(单机快速获取):
打开 M2 引擎→“查看”→“NPC 列表”→找到任意新手村 NPC(如 “新手向导”,NPCID 通常为 3001);
编辑 NPC 对话脚本:
右键 “新手向导”→“编辑脚本”,在对话末尾添加:
else if StdMode = 2 ;玩家点击“获取双倍丹”选项
{
GiveItem 10050,1 ;给予物品ID10050(双倍经验丹),数量1
SendMsg 7 "新手福利:获得1颗双倍经验丹!"
return 1
}
同时在 NPC 对话选项中添加 “获取双倍丹”(确保玩家能看到该选项);
保存 NPC 脚本:关闭窗口,重启 M2 引擎(脚本需重启生效)。
六、测试验证:确保效果符合需求
进入游戏测试:
启动服务端和客户端,创建角色后找到 “新手向导”,点击 “获取双倍丹”,背包中会出现 “双倍经验丹”;
验证核心效果:
右键使用药物:系统提示 “获得 30 分钟双倍经验”,打怪查看经验值(如原本 100 经验,现在显示 200);
测试死亡:找怪物让角色死亡,复活后打怪,经验仍为双倍(确认死亡不消失);
测试下线:退出游戏,重新登录,打怪经验仍为双倍(确认下线不消失);
调整时间(可选):
若想修改持续时间,只需在脚本 “AddBuff 1001,1800,2” 中,将 “1800” 改为对应秒数(如 600=10 分钟,3600=60 分钟),保存后重启 M2 即可。
七、常见问题排查
使用药物无效果:
检查 “物品 ID” 与脚本内 “@UseItemFunc10050” 的 ID 是否一致;确认 “QuestDiary” 文件夹路径是否正确,脚本是否放在该目录下;
下线后效果消失:
检查 “PlayerSaveParam.txt” 中是否添加 “DoubleExpBuff=CheckBuff (1001),SaveBuff (1001)”,且 Buff 编号与脚本一致;
死亡后效果消失:
回到 M2 引擎 “状态设置”,确认 1001 号 Buff 的 “死亡清除” 已设为 “否”,并重启 M2 生效。

