单机传奇设置双倍经验药物,核心需实现服用后30分钟双倍效果、死亡及下线不消失,操作围绕数据库添加药物、脚本编写触发效果两大核心,以下是适配主流引擎(GOM、GEE、996)的通用步骤。
一、前期准备与工具确认
先确认所用引擎类型,不同引擎脚本文件路径和命令略有差异,但核心逻辑一致。准备工具:数据库编辑工具(Navicat、无极数据库工具)、脚本编辑器(记事本、Notepad++)、服务端引擎(M2Server)。
关键前提:备份服务端Database文件夹、Scripts文件夹及引擎配置文件,避免操作失误导致服务端无法启动。
二、数据库添加双倍经验药物
先在物品数据库中创建药物,确保药物能正常刷出、拾取和使用,步骤如下:
1.打开物品数据库
进入服务端目录,找到Database文件夹,定位物品数据表(通常路径为Database\ItemDB.db或Database\Environment\Data.mdb),用数据库编辑工具打开,筛选“药物”类物品作为模板(如疗伤药、万年雪霜)。
2.复制并修改药物数据
选中模板药物数据行,复制后粘贴至表格末尾,确保新药物序号连续且不重复(序号冲突会导致药物无法显示)。依次修改核心字段:
物品名称:自定义名称(如“双倍经验丹”);物品类型:设为“药物”(对应编号通常为2,可参考模板字段值);使用等级:设为1(无等级限制,按需调整);叠加数量:设为99(按需调整);外观编号:沿用模板药物编号(或自定义素材编号,无需新素材可直接复用);使用效果:设为“脚本触发”(对应字段值通常为10,不同引擎略有差异,参考模板配置)。
其他字段(如重量、售价、持久)按需调整,修改完成后保存数据库,覆盖原文件。
三、编写脚本实现双倍经验效果
核心通过脚本设置服用后触发30分钟双倍经验,同时绑定角色ID记录效果时长,实现死亡、下线不消失,分引擎通用脚本编写步骤:
1.定位脚本文件
进入服务端Scripts文件夹,找到物品使用触发脚本(GOM/GEE引擎为UseItem.txt,996引擎为ItemUse.txt),用脚本编辑器打开,在文件末尾添加新脚本(避免修改原有脚本导致其他物品失效)。
2.编写服用触发脚本
脚本核心逻辑:服用药物后给角色添加双倍经验标识,记录生效时间,绑定角色ID存储数据,死亡、下线后重新登录自动读取时长。通用脚本示例如下(需替换“双倍经验丹”为自定义药物名称):
[@UseItem_双倍经验丹]
#ACT
;检查是否已存在双倍经验效果,避免重复叠加
CheckHumFlag100;100为自定义标识编号,可选用未占用数字
IfEqual%HumFlagRet%1
SendMsg6你已处于双倍经验状态,无需重复服用!;发送提示信息
Break
;设置双倍经验效果时长(30分钟=1800秒),绑定角色ID存储
SetHumFlag1001;标记角色处于双倍经验状态
SetHumData100%Time%;存储服用时的时间戳(秒)
SetHumData1011800;存储效果时长(1800秒)
SendMsg6服用成功!获得30分钟双倍经验,死亡下线不消失!
Break
3.编写经验倍率触发脚本
在Scripts文件夹找到经验触发脚本(GOM/GEE引擎为ExpCalc.txt,996引擎为Experience.txt),添加经验倍率判断逻辑,确保触发双倍效果:
[@ExpCalc]
#ACT
CheckHumFlag100
IfEqual%HumFlagRet%1
;计算剩余时长,判断效果是否失效
SetVarHTime%Time%-%HumData100%
IfGreater%HTime%%HumData101%
ClearHumFlag100;清除双倍标识,效果失效
ClearHumData100;清空存储的时间戳
ClearHumData101;清空存储的时长
SendMsg6双倍经验时间已结束!
Break
;生效双倍经验,倍率设为2倍
SetExpRate2;经验倍率调整为2倍
Break
4.编写角色登录加载脚本
为实现下线后重新登录保留效果,需在角色登录脚本中添加加载逻辑,路径为Scripts\Login.txt,添加内容:
[@Login]
#ACT
CheckHumFlag100
IfEqual%HumFlagRet%1
SetVarHTime%Time%-%HumData100%
IfGreater%HTime%%HumData101%
ClearHumFlag100
ClearHumData100
ClearHumData101
SendMsg6双倍经验时间已结束!
Else
SetVarRemainTime%HumData101%-%HTime%
SendMsg6检测到你仍有%RemainTime%秒双倍经验,已自动恢复!
EndIf
Break
四、脚本调试与效果测试
1.保存所有脚本文件,覆盖原文件,打开服务端引擎(M2Server),依次重载物品数据库、脚本文件(引擎界面找到“脚本管理”“列表信息”,分别选择重载)。
2.登录游戏,用管理员命令@make+药物名称(如@make双倍经验丹)刷出药物,服用后查看系统提示是否正常,击杀怪物测试经验是否翻倍。
3.测试特殊场景:服用药物后下线重新登录,检查效果是否恢复;故意死亡后复活,确认双倍经验仍生效;等待30分钟后,验证效果是否自动失效。
五、常见问题排查
1.药物无法使用:检查数据库“使用效果”字段是否设为脚本触发,脚本中物品名称与数据库名称是否完全一致(区分大小写)。
2.效果下线后消失:确认登录脚本中加载逻辑是否添加,HumData存储的标识编号与双倍脚本是否一致,避免编号冲突。
3.经验不翻倍:检查经验触发脚本中倍率设置是否为2,脚本是否正确重载,可在脚本中添加额外提示信息,排查逻辑是否执行。
4.引擎报错:核对脚本语法,确保命令格式正确(如分号注释、Break结尾),不同引擎命令有差异,可参考对应引擎说明文档调整命令。
六、引擎适配调整要点
1.GOM/GEE引擎:无需额外配置存储,HumFlag和HumData可直接绑定角色ID,脚本命令通用,仅需确认脚本文件名称正确。
2.996引擎:需在引擎“参数设置”中开启角色数据存储功能,将脚本中的SetHumData替换为SaveUserVar,ClearHumData替换为DelUserVar,其他逻辑不变。
3.时长调整:如需修改持续时间,仅需将脚本中1800秒改为对应数值(如600秒=10分钟,3600秒=1小时),无需调整其他逻辑。
一、前期准备与工具确认
先确认所用引擎类型,不同引擎脚本文件路径和命令略有差异,但核心逻辑一致。准备工具:数据库编辑工具(Navicat、无极数据库工具)、脚本编辑器(记事本、Notepad++)、服务端引擎(M2Server)。
关键前提:备份服务端Database文件夹、Scripts文件夹及引擎配置文件,避免操作失误导致服务端无法启动。
二、数据库添加双倍经验药物
先在物品数据库中创建药物,确保药物能正常刷出、拾取和使用,步骤如下:
1.打开物品数据库
进入服务端目录,找到Database文件夹,定位物品数据表(通常路径为Database\ItemDB.db或Database\Environment\Data.mdb),用数据库编辑工具打开,筛选“药物”类物品作为模板(如疗伤药、万年雪霜)。
2.复制并修改药物数据
选中模板药物数据行,复制后粘贴至表格末尾,确保新药物序号连续且不重复(序号冲突会导致药物无法显示)。依次修改核心字段:
物品名称:自定义名称(如“双倍经验丹”);物品类型:设为“药物”(对应编号通常为2,可参考模板字段值);使用等级:设为1(无等级限制,按需调整);叠加数量:设为99(按需调整);外观编号:沿用模板药物编号(或自定义素材编号,无需新素材可直接复用);使用效果:设为“脚本触发”(对应字段值通常为10,不同引擎略有差异,参考模板配置)。
其他字段(如重量、售价、持久)按需调整,修改完成后保存数据库,覆盖原文件。
三、编写脚本实现双倍经验效果
核心通过脚本设置服用后触发30分钟双倍经验,同时绑定角色ID记录效果时长,实现死亡、下线不消失,分引擎通用脚本编写步骤:
1.定位脚本文件
进入服务端Scripts文件夹,找到物品使用触发脚本(GOM/GEE引擎为UseItem.txt,996引擎为ItemUse.txt),用脚本编辑器打开,在文件末尾添加新脚本(避免修改原有脚本导致其他物品失效)。
2.编写服用触发脚本
脚本核心逻辑:服用药物后给角色添加双倍经验标识,记录生效时间,绑定角色ID存储数据,死亡、下线后重新登录自动读取时长。通用脚本示例如下(需替换“双倍经验丹”为自定义药物名称):
[@UseItem_双倍经验丹]
#ACT
;检查是否已存在双倍经验效果,避免重复叠加
CheckHumFlag100;100为自定义标识编号,可选用未占用数字
IfEqual%HumFlagRet%1
SendMsg6你已处于双倍经验状态,无需重复服用!;发送提示信息
Break
;设置双倍经验效果时长(30分钟=1800秒),绑定角色ID存储
SetHumFlag1001;标记角色处于双倍经验状态
SetHumData100%Time%;存储服用时的时间戳(秒)
SetHumData1011800;存储效果时长(1800秒)
SendMsg6服用成功!获得30分钟双倍经验,死亡下线不消失!
Break
3.编写经验倍率触发脚本
在Scripts文件夹找到经验触发脚本(GOM/GEE引擎为ExpCalc.txt,996引擎为Experience.txt),添加经验倍率判断逻辑,确保触发双倍效果:
[@ExpCalc]
#ACT
CheckHumFlag100
IfEqual%HumFlagRet%1
;计算剩余时长,判断效果是否失效
SetVarHTime%Time%-%HumData100%
IfGreater%HTime%%HumData101%
ClearHumFlag100;清除双倍标识,效果失效
ClearHumData100;清空存储的时间戳
ClearHumData101;清空存储的时长
SendMsg6双倍经验时间已结束!
Break
;生效双倍经验,倍率设为2倍
SetExpRate2;经验倍率调整为2倍
Break
4.编写角色登录加载脚本
为实现下线后重新登录保留效果,需在角色登录脚本中添加加载逻辑,路径为Scripts\Login.txt,添加内容:
[@Login]
#ACT
CheckHumFlag100
IfEqual%HumFlagRet%1
SetVarHTime%Time%-%HumData100%
IfGreater%HTime%%HumData101%
ClearHumFlag100
ClearHumData100
ClearHumData101
SendMsg6双倍经验时间已结束!
Else
SetVarRemainTime%HumData101%-%HTime%
SendMsg6检测到你仍有%RemainTime%秒双倍经验,已自动恢复!
EndIf
Break
四、脚本调试与效果测试
1.保存所有脚本文件,覆盖原文件,打开服务端引擎(M2Server),依次重载物品数据库、脚本文件(引擎界面找到“脚本管理”“列表信息”,分别选择重载)。
2.登录游戏,用管理员命令@make+药物名称(如@make双倍经验丹)刷出药物,服用后查看系统提示是否正常,击杀怪物测试经验是否翻倍。
3.测试特殊场景:服用药物后下线重新登录,检查效果是否恢复;故意死亡后复活,确认双倍经验仍生效;等待30分钟后,验证效果是否自动失效。
五、常见问题排查
1.药物无法使用:检查数据库“使用效果”字段是否设为脚本触发,脚本中物品名称与数据库名称是否完全一致(区分大小写)。
2.效果下线后消失:确认登录脚本中加载逻辑是否添加,HumData存储的标识编号与双倍脚本是否一致,避免编号冲突。
3.经验不翻倍:检查经验触发脚本中倍率设置是否为2,脚本是否正确重载,可在脚本中添加额外提示信息,排查逻辑是否执行。
4.引擎报错:核对脚本语法,确保命令格式正确(如分号注释、Break结尾),不同引擎命令有差异,可参考对应引擎说明文档调整命令。
六、引擎适配调整要点
1.GOM/GEE引擎:无需额外配置存储,HumFlag和HumData可直接绑定角色ID,脚本命令通用,仅需确认脚本文件名称正确。
2.996引擎:需在引擎“参数设置”中开启角色数据存储功能,将脚本中的SetHumData替换为SaveUserVar,ClearHumData替换为DelUserVar,其他逻辑不变。
3.时长调整:如需修改持续时间,仅需将脚本中1800秒改为对应数值(如600秒=10分钟,3600秒=1小时),无需调整其他逻辑。

