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

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

热度:
限时地图核心架构

限时地图脚本由进入检测、时间记录、倒计时显示、超时踢出四大模块组成。脚本文件存放于M2Server引擎Script文件夹,主要使用QFunction.txt与地图脚本文件配合实现。

进入时间检测脚本

玩家进入限时地图时记录进入时间戳,作为超时计算基准:

[@MAPENTER]
IF
CHECKMAPD6001
ACT
GETTIMEUNIXG_EnterTime
SETP_EnterTimeG_EnterTime
SAVEVARP_EnterTime
MOVP_TimeLimit3600
SendCenterMsg250252限时地图已开启剩余时间六十分钟130
BREAK

GETTIMEUNIX获取当前Unix时间戳,单位秒。P_EnterTime存储玩家进入时间,P_TimeLimit设置限时时长,3600秒等于一小时。

定时器倒计时实现

使用引擎定时器实现倒计时检测,每秒检查一次剩余时间:

[@TimerStart]
ACT
TIMER11000
BREAK

[@TimerEvent]
IF
CHECKMAPD6001
ACT
GETTIMEUNIXG_CurrentTime
CALCP_RemainTime=P_TimeLimit-(G_CurrentTime-P_EnterTime)
IFP_RemainTime

[@Enter60]
ACT
MAPMOVED6001300300
MOVP_TimeLimit3600
CALL@TimerStart
BREAK

[@CheckTime]
ACT
CALCP_RemainMin=P_RemainTime/60
SendMsg0当前剩余时间:%P_RemainMin分钟
BREAK

NPC提供多选项入口,玩家自主选择时长。查询功能随时查看剩余时间。

添加限时地图奖励发放:

[@TimeReward]
IF
P_RemainTime>=300
ACT
GIVE限时奖励箱1
SendCenterMsg250252剩余时间充足获得额外奖励130
BREAK

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