传奇世界单机限时地图脚本编写与时间控制配置详解

来源: 作者: 点击:
限时地图核心架构

限时地图脚本由进入检测、时间记录、倒计时显示、超时踢出四大模块组成。脚本文件存放于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

剩余时间超过五分钟发放奖励,鼓励玩家快速通关。奖励内容可自定义配置。