单机传奇设置双倍经验药物,核心需实现服用后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
;检查是否已存在双倍经验效果,避免重复叠加
CheckHumFlag 100 ;100为自定义标识编号,可选用未占用数字
IfEqual %HumFlagRet% 1
SendMsg 6 你已处于双倍经验状态,无需重复服用! ;发送提示信息
Break
;设置双倍经验效果时长(30分钟=1800秒),绑定角色ID存储
SetHumFlag 100 1 ;标记角色处于双倍经验状态
SetHumData 100 %Time% ;存储服用时的时间戳(秒)
SetHumData 101 1800 ;存储效果时长(1800秒)
SendMsg 6 服用成功!获得30分钟双倍经验,死亡下线不消失!
Break
3. 编写经验倍率触发脚本
在Scripts文件夹找到经验触发脚本(GOM/GEE引擎为ExpCalc.txt,996引擎为Experience.txt),添加经验倍率判断逻辑,确保触发双倍效果:
[@ExpCalc]
#ACT
CheckHumFlag 100
IfEqual %HumFlagRet% 1
;计算剩余时长,判断效果是否失效
SetVar HTime %Time% - %HumData100%
IfGreater %HTime% %HumData101%
ClearHumFlag 100 ;清除双倍标识,效果失效
ClearHumData 100 ;清空存储的时间戳
ClearHumData 101 ;清空存储的时长
SendMsg 6 双倍经验时间已结束!
Break
;生效双倍经验,倍率设为2倍
SetExpRate 2 ;经验倍率调整为2倍
Break
4. 编写角色登录加载脚本
为实现下线后重新登录保留效果,需在角色登录脚本中添加加载逻辑,路径为Scripts\Login.txt,添加内容:
[@Login]
#ACT
CheckHumFlag 100
IfEqual %HumFlagRet% 1
SetVar HTime %Time% - %HumData100%
IfGreater %HTime% %HumData101%
ClearHumFlag 100
ClearHumData 100
ClearHumData 101
SendMsg 6 双倍经验时间已结束!
Else
SetVar RemainTime %HumData101% - %HTime%
SendMsg 6 检测到你仍有%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小时),无需调整其他逻辑。

