当前位置 : 145z游戏站 | 传奇世界 | 技术教程 | 

传奇限时装备设置攻略 双倍勋章 30 分钟消失脚本制作技巧

热度:
一、设置前提:确认核心参数与文件位置
获取勋章物品 ID:打开服务器目录下 “Envir\Item.txt”,查找双倍勋章对应的物品 ID(如 “38001 双倍勋章”,ID 为 38001),记录备用。
确定脚本存放路径:核心脚本需放在 “Envir\QuestDiary” 文件夹,涉及登录触发、小退提示、定时消失三类脚本文件。
二、核心脚本制作:实现 30 分钟消失与提示功能
(一)登录触发脚本:记录佩戴时间(Login.txt)
[@Login]
#IF
CheckItem 38001 1 ;检测是否佩戴双倍勋章
#ACT
SetHumTimeVar HZTime ;创建角色专属变量HZTime,记录当前时间
SaveHumVar HZTime ;保存变量到数据库,避免大退丢失
#ELSE
DelHumVar HZTime ;未佩戴时删除变量,减少内存占用
#ENDIF

作用:玩家登录 / 佩戴勋章时,自动记录当前时间并存储,大退重启后仍能读取历史时间。
(二)小退提示脚本:显示剩余时间(Logout.txt)
[@Logout]
#IF
CheckHumVar HZTime ;检测是否存在勋章时间变量
#ACT
GetHumTimeVar HZTime ;读取存储的佩戴时间
CalTimeDiff HZTime 1800 ;计算当前时间与佩戴时间差,1800秒=30分钟
IfEqual %TimeDiff% < 0 ;判断是否超过30分钟
SendMsg 6 双倍勋章已过期,下次登录将自动移除 ;超过时提示
Else
Math %TimeDiff% / 60 ;将剩余秒数转为分钟
SendMsg 6 双倍勋章剩余%TimeDiff%分钟,小退后计时不中断 ;提示剩余时间
EndIf
#ENDIF

关键参数:1800 秒可按需修改(如改为 3600 秒即 1 小时),SendMsg 后的 “6” 代表提示文字颜色(6 为黄色,玩家易察觉)。
(三)定时消失脚本:30 分钟自动移除(MapQuest_def\0.txt)
[@MainLoop]
#IF
CheckItem 38001 1 ;检测角色是否佩戴勋章
CheckHumVar HZTime ;确认有时间变量
GetHumTimeVar HZTime
CalTimeDiff HZTime 1800
IfEqual %TimeDiff% < 0 ;时间差为负,说明超过30分钟
#ACT
TakeItem 38001 1 ;移除双倍勋章
DelHumVar HZTime ;删除时间变量
SendMsg 7 双倍勋章已到期,已自动回收 ;系统广播提示
#ENDIF

生效机制:脚本每 10 秒自动执行一次(服务器默认循环频率),实时检测时间差,达到 30 分钟立即移除勋章并清理变量。
三、效果测试与调试技巧
佩戴测试:创建测试账号,佩戴双倍勋章后,打开 “Envir\HumVar” 文件夹,查看对应角色文件是否生成 “HZTime” 变量及时间值。
小退验证:佩戴勋章后小退,观察是否弹出黄色剩余时间提示,重新登录后再次小退,确认时间计算是否连续(如首次小退剩 25 分钟,登录后小退仍显示 25 分钟左右)。
计时消失测试:用 “@SetHumTimeVar HZTime 1620000000”(示例时间戳,需改为当前时间减 29 分钟)手动设置变量,等待 1 分钟后,检查勋章是否自动消失,系统是否发送回收提示。
四、适配不同玩法的调整技巧
多角色共享计时:若需同一账号下所有角色共用 30 分钟,将 “SetHumTimeVar” 改为 “SetAccountVar”,变量存储到账号数据库,实现跨角色计时。
叠加时长设置:若玩家重复佩戴勋章,需在登录脚本添加 “Math HZTime + 1800”,实现 “佩戴一次增加 30 分钟”,避免重复佩戴覆盖时间。
地图限制生效:在定时消失脚本开头添加 “CheckMap 0”(0 为新手村地图 ID),仅让勋章在指定地图生效,离开后暂停计时(需搭配 “PauseHumVar HZTime” 暂停变量)。
五、常见问题解决
小退不提示:检查 “Logout.txt” 是否放在 “QuestDiary” 根目录,而非子文件夹;确认脚本中 “SendMsg” 参数未写错(如误写为 “SendMs”)。
大退后计时重置:核实 “SaveHumVar HZTime” 是否添加,未保存变量会导致大退后时间丢失。
勋章不消失:检查时间差计算是否正确(“CalTimeDiff 变量 时长” 顺序不能反),或服务器时间是否同步(时间异常会导致计时错误)。
[顶部]