传奇双倍勋章设置核心的是:创建勋章物品、编写计时脚本、添加小退提示脚本、设置离线计时保存,全程围绕服务端核心文件和脚本修改,适配Hero、Blue、GOM等多数传奇服务端版本,步骤可直接对照操作,脚本可直接复制使用。
所有操作前,务必备份服务端Envir、Mir200文件夹及对应数据库文件,避免修改失误导致服务端无法启动,备份文件单独存放,便于后续恢复。所有修改完成后,必须重启服务端所有进程,仅重启客户端无效,脚本和配置才能生效。
一、第一步:创建双倍勋章物品(服务端数据库修改)
先在服务端物品数据库中创建双倍勋章,设置基础属性和外观,确保勋章可正常佩戴、触发双倍效果,具体操作如下:
1. 打开服务端数据库工具(常用DBC2000),找到服务端安装目录下的HeroDB(或对应数据库名称),双击打开StdItems.DB物品数据库,该数据库控制所有游戏物品的属性、外观和功能。
2. 查找数据库中“勋章”类物品(可按Stdmode参数筛选,勋章类Stdmode通常为19),复制任意一个勋章的完整数据行,粘贴到数据库末尾,避免修改原有物品数据。
3. 修改粘贴后的勋章数据,重点修改以下关键参数(其他参数可根据需求调整,无需改动无关参数):
Idx:物品序号,需与数据库中所有物品序号不重复,按顺序递增即可(例如数据库最后一个序号为1000,此处改为1001);
Name:物品名称,改为“双倍勋章”(最多7个汉字,不可多输);
Stdmode:保持19(勋章类物品固定参数,确保可佩戴在勋章位置);
Looks:外观代码,可自行选择(例如100-200之间的数字,对应不同勋章外观,可通过SGL查看器确认外观效果);
DuraMax:持久度,设置为1(避免玩家修理,不影响限时效果);
NeedLevel:佩戴等级,设置为1(所有玩家均可佩戴,可根据需求调整为对应等级);
Reserved:设置为0(允许正常佩戴、拾取,不设置交易、掉落限制,可根据需求调整);
Anicount:设置为1(用于触发后续计时脚本,不可改为0)。
4. 添加双倍属性:在数据库对应数据行的“Dc2”(物理攻击上限)或“Mc2”(魔法攻击上限)、“Sc2”(道术攻击上限)中添加双倍效果,例如将Dc2改为原有数值的2倍,确保佩戴后触发双倍伤害/属性效果。
5. 保存数据库:点击DBC2000工具栏中的“保存”按钮,关闭数据库,确保双倍勋章物品创建成功,后续脚本将绑定该物品。
二、第二步:编写双倍勋章计时脚本(核心步骤,佩戴开始计时)
计时脚本核心作用:玩家佩戴双倍勋章后,立即开始30分钟(1800秒)计时,计时结束后自动删除勋章,小退、大退不中断计时,需修改服务端机器人脚本和触发脚本,具体操作如下:
1. 定位脚本文件:打开服务端安装目录,找到Mir200\Envir\Robot_def文件夹,该文件夹内包含机器人配置和脚本文件,重点修改AutoRunRobot.txt(机器人配置)和RobotManage.txt(机器人脚本)两个文件,均用Notepad++打开编辑。
2. 配置机器人自动运行(AutoRunRobot.txt文件修改):在该文件末尾添加一行代码,用于开启定时检测计时脚本,代码如下(直接复制粘贴,无需修改):
#AutoRun NPC SEC 1 @DoubleMedalTimer
代码说明:SEC 1表示每秒运行一次@DoubleMedalTimer脚本,确保计时精准,不出现卡顿、漏计情况,这是计时不中断的核心配置。
3. 编写计时核心脚本(RobotManage.txt文件修改):在该文件末尾添加以下完整脚本,实现佩戴计时、计时结束删除勋章、离线计时保存功能,脚本可直接复制,仅需修改勋章名称(若修改了勋章名称,需对应替换):
(@DoubleMedalTimer)
#IF
CheckItem 双倍勋章 1
NOT CheckHumVar Timer_DoubleMedal
#ACT
SetHumVar Timer_DoubleMedal 1800
SENDMSG 6 【双倍勋章】佩戴成功,开始30分钟计时,小退大退不中断!
#ELSEIF
CheckItem 双倍勋章 1
CheckHumVar Timer_DoubleMedal > 0
#ACT
DecHumVar Timer_DoubleMedal 1
#ELSEIF
CheckItem 双倍勋章 1
CheckHumVar Timer_DoubleMedal = 0
#ACT
TakeItem 双倍勋章 1
SENDMSG 6 【双倍勋章】30分钟计时结束,勋章已自动消失!
ClearHumVar Timer_DoubleMedal
脚本说明:
1. 玩家佩戴双倍勋章后,若未开启计时(无Timer_DoubleMedal变量),则设置计时变量为1800秒(30分钟),并提示玩家计时开始;
2. 每秒检测一次,若勋章存在且计时未结束,计时变量减1,实现实时计时;
3. 计时变量变为0时,自动删除玩家身上的双倍勋章,清除计时变量,并提示玩家勋章消失;
4. 计时变量(Timer_DoubleMedal)绑定玩家角色,小退、大退不会丢失,再次上线后继续计时,无需额外配置离线保存。
三、第三步:编写小退提示剩余时间脚本(小退弹窗提示)
核心需求:玩家小退时,弹窗提示双倍勋章剩余计时时间,需修改服务端小退触发脚本,具体操作如下,脚本可直接复制使用:
1. 定位小退脚本文件:打开服务端Envir文件夹,找到QFunction-0.txt文件(部分版本为QFunction.txt),该文件控制玩家小退、大退、死亡等触发事件,用Notepad++打开。
2. 在文件末尾添加小退触发脚本,代码如下(直接复制,无需修改,勋章名称需与数据库中一致):
[@UserExit]
#IF
CheckItem 双倍勋章 1
CheckHumVar Timer_DoubleMedal > 0
#ACT
SetVar HOUR [Timer_DoubleMedal]/3600
SetVar MIN ([Timer_DoubleMedal]%3600)/60
SetVar SEC ([Timer_DoubleMedal]%3600)%60
SendMsg 7 【双倍勋章剩余时间】%HOUR%小时%MIN%分钟%SEC%秒,小退不中断计时!
ShowCenterMsg 【双倍勋章提示】剩余时间:%HOUR%小时%MIN%分钟%SEC%秒 2 0
#ELSEIF
CheckItem 双倍勋章 1
CheckHumVar Timer_DoubleMedal = 0
#ACT
TakeItem 双倍勋章 1
SendMsg 7 【双倍勋章】计时已结束,小退时自动删除勋章!
ClearHumVar Timer_DoubleMedal
脚本说明:
1. 玩家点击小退时,若佩戴双倍勋章且计时未结束,自动计算剩余时间(小时、分钟、秒),通过系统提示(SendMsg 7)和居中弹窗(ShowCenterMsg)双重提示,确保玩家清晰看到剩余时间;
2. 若小退时计时已结束,自动删除勋章,提示玩家计时结束,避免勋章残留;
3. 大退时无需额外编写脚本,因计时变量绑定玩家角色,大退重新上线后,脚本会自动检测变量,继续计时,且上线后会通过系统提示告知剩余时间。
四、第四步:设置双倍勋章获取方式(可选,按需配置)
可根据需求设置双倍勋章的获取渠道,确保玩家可正常获得,常用两种方式,任选一种即可,操作简单:
方式一:NPC售卖(适合快速测试)
1. 打开服务端Envir\NPC文件夹,找到任意一个NPC脚本(例如“盟重老兵.txt”),用Notepad++打开;
2. 在脚本末尾添加以下代码,实现NPC售卖双倍勋章:
[@卖双倍勋章]
#IF
CheckGold 100000
#ACT
GiveItem 双倍勋章 1
TakeGold 100000
SENDMSG 6 购买双倍勋章成功,佩戴后立即开始30分钟双倍效果!
#ELSE
SENDMSG 6 金币不足10万,无法购买双倍勋章!
3. 保存脚本,重启服务端后,玩家找到该NPC,输入“卖双倍勋章”即可购买。
方式二:怪物掉落(适合游戏内产出)
1. 打开服务端Envir\MonItems文件夹,找到任意怪物的爆率脚本(例如“魔龙教主.txt”),用Notepad++打开;
2. 在脚本末尾添加一行爆率代码:“双倍勋章 1 1”(格式:物品名称 爆率 数量),爆率可调整(例如0.5代表0.5%爆率);
3. 保存脚本,重启服务端后,击杀该怪物即可有概率掉落双倍勋章。
五、第五步:测试验证(确保所有功能正常)
所有修改完成后,重启服务端所有进程(包括服务端控制器、数据库进程),进入游戏逐一测试以下功能,确保全部符合需求:
1. 勋章获取测试:通过设置的NPC购买或击杀怪物,确认可正常获得双倍勋章,背包内可查看,可正常佩戴;
2. 计时功能测试:佩戴勋章后,查看系统提示,确认计时开始;等待1-2分钟,小退再上线,确认计时未中断,剩余时间正确;
3. 小退提示测试:佩戴勋章且计时未结束时,点击小退,确认弹出剩余时间提示(系统提示+居中弹窗),提示信息准确;
4. 计时结束测试:等待30分钟(可修改脚本中1800秒为10秒,快速测试),确认勋章自动消失,系统提示正常;
5. 大退测试:佩戴勋章后大退,重新上线,确认勋章仍在,计时继续,剩余时间正确,无丢失、重置情况。
六、常见问题解决(实操中易踩坑点)
1. 问题一:佩戴双倍勋章后不计时,排查方向:AutoRunRobot.txt文件中是否添加#AutoRun NPC SEC 1 @DoubleMedalTimer代码;RobotManage.txt文件中脚本是否复制完整,有无遗漏符号;勋章Anicount参数是否设为1;
2. 问题二:小退不提示剩余时间,排查方向:QFunction-0.txt文件中是否添加小退触发脚本;脚本中勋章名称是否与数据库一致;服务端是否重启,脚本未生效;
3. 问题三:小退、大退上线后计时重置,排查方向:确认脚本中使用的是HumVar(玩家变量),而非MapVar(地图变量);数据库中勋章Reserved参数是否设为0,未被设置为临时物品;
4. 问题四:计时结束后勋章不消失,排查方向:RobotManage.txt脚本中CheckHumVar Timer_DoubleMedal = 0的判断条件是否正确;TakeItem 双倍勋章 1代码是否遗漏;
5. 问题五:服务端无法启动,排查方向:数据库中勋章Idx序号是否重复;脚本中是否有遗漏的#IF、#ACT、#ELSEIF等关键词;脚本格式是否错乱(建议直接复制本文脚本);
6. 问题六:双倍效果不生效,排查方向:数据库中勋章的Dc2、Mc2、Sc2参数是否修改为双倍数值;勋章Stdmode参数是否为19,确保可正常佩戴触发属性。
补充要点:不同服务端版本,脚本文件名称可能略有差异(例如GOM版本小退脚本为QFunction-1.txt),若找不到对应文件,可在Envir文件夹中按文件名关键词搜索;修改脚本时,切勿随意改动关键词格式,标点符号需为英文状态;若需调整计时时长,仅需修改脚本中1800秒(30分钟)为对应秒数(例如600秒为10分钟),无需修改其他脚本内容。

