限时地图核心架构
限时地图脚本由进入检测、时间记录、倒计时显示、超时踢出四大模块组成。脚本文件存放于M2Server引擎Script文件夹,主要使用QFunction.txt与地图脚本文件配合实现。
进入时间检测脚本
玩家进入限时地图时记录进入时间戳,作为超时计算基准:
[@MAPENTER]
IF
CHECKMAP D6001
ACT
GETTIMEUNIX G_EnterTime
SET P_EnterTime G_EnterTime
SAVEVAR P_EnterTime
MOV P_TimeLimit 3600
SendCenterMsg 250 252 限时地图已开启 剩余时间六十分钟 1 30
BREAK
GETTIMEUNIX获取当前Unix时间戳,单位秒。P_EnterTime存储玩家进入时间,P_TimeLimit设置限时时长,3600秒等于一小时。
定时器倒计时实现
使用引擎定时器实现倒计时检测,每秒检查一次剩余时间:
[@TimerStart]
ACT
TIMER 1 1000
BREAK
[@TimerEvent]
IF
CHECKMAP D6001
ACT
GETTIMEUNIX G_CurrentTime
CALC P_RemainTime = P_TimeLimit - (G_CurrentTime - P_EnterTime)
IF P_RemainTime
[@Enter60]
ACT
MAPMOVE D6001 300 300
MOV P_TimeLimit 3600
CALL @TimerStart
BREAK
[@CheckTime]
ACT
CALC P_RemainMin = P_RemainTime / 60
SendMsg 0 当前剩余时间:%P_RemainMin分钟
BREAK
NPC提供多选项入口,玩家自主选择时长。查询功能随时查看剩余时间。
添加限时地图奖励发放:
[@TimeReward]
IF
P_RemainTime >= 300
ACT
GIVE 限时奖励箱 1
SendCenterMsg 250 252 剩余时间充足 获得额外奖励 1 30
BREAK
剩余时间超过五分钟发放奖励,鼓励玩家快速通关。奖励内容可自定义配置。

