查看: 9|回复: 0

传奇脚本定时器用法与常见问题

[复制链接]
发表于 2 小时前 | 显示全部楼层 |阅读模式
定时器是脚本里最容易写错、也最难查的一类功能。表现往往是活动不按时间开、倒计时不对、同一个奖励发两次。这篇把定时器的几种用法和常见坑整理一遍,都是实际踩过的。

一、先分清三种时间触发

第一种是按固定时间点触发,比如每晚八点开活动;第二种是按间隔触发,比如每十分钟刷新一次 BOSS;第三种是按玩家个人计时,比如技能冷却、任务倒计时。三种实现方式完全不同,混用是出错的根源。先明确你要的是哪一种。

二、固定时间点用全局判断

固定时间点一般由全服定时触发,判断当前时间是否等于目标时间。注意判断要精确到分钟,不要精确到秒,否则会因为执行时机偏差而错过。触发后立刻设置一个已执行的标记,避免同一分钟内重复触发。

三、间隔触发要防重叠

间隔触发的逻辑是上次执行时间加间隔,和当前时间比较。常见错误是没有写“正在执行”的标记,导致上一轮还没结束、下一轮又开始,同一个 BOSS 刷出两只。加一个状态标记,执行完再清除,能避免绝大部分问题。

四、个人计时不要用全局变量

给玩家做冷却、倒计时,必须用个人变量。用全局变量会导致所有玩家共用一个计时,一个人触发,所有人都进入冷却。这个问题在测试时很难发现,因为单账号测试永远正常。

五、服务器时间与真实时间

脚本里的时间判断用的是服务器时间。服务器时间不对,所有定时功能都会错位。开区前确认服务器时区和时间同步,最好开启自动校时。跨时区玩家看到的提示时间也要说明清楚,避免误会。

六、跨天判断的坑

按天重置的功能,判断逻辑要写清楚是零点重置还是按自然日。用日期字符串比较时,格式必须统一,否则跨月、跨年会出错。简单的做法是记录一个整型的天序号,比较大小即可,不涉及字符串。

七、定时器与在线状态

定时触发时玩家可能不在线。给在线玩家发奖励的逻辑要判断在线状态,否则会出现奖励丢失或者补发异常。需要离线补发的功能,要单独写一套记录和补发逻辑,不能只靠在线触发。

八、调试与验证

测试定时功能时,把触发时间临时改成两分钟后,观察是否只触发一次、奖励是否正确。验证完记得改回去,很多人测试完忘了改,开区后活动时间全乱。

九、日志要留

每次定时触发都写一条日志,记录触发时间、涉及人数、发放内容。出问题时能快速确认是没触发、触发两次,还是发了但没到账。三种情况的处理方式完全不同。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册登录

本版积分规则

网站分类|小黑屋|爱上gm论坛

GMT+8, 2026-11-9 13:13 , Processed in 0.061242 second(s), 28 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.