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

传奇世界单机版限时地图进入与自动踢出脚本写法详解

热度:
在传奇世界单机服务端中实现限时地图功能,需完成三个核心环节:限制进入条件、记录进入时间、到时自动传送玩家离开。以下以“每日限进10分钟的练级地图”为例,提供完整脚本逻辑,适用于主流单机版本(如Hero、GOM兼容引擎)。

第一步:设置地图入口NPC

在主城放置NPC,控制玩家进入限时地图。脚本文件如EnvirMarket_defTimeMapNPC.txt:

[@main]
\
 \
 『』\
 『』\

[@EnterTimeMap]
IF
CHECKMAPTIME3000;检测是否已在限时地图停留超时(单位秒)
ACT
MESSAGEBOX您今日已用完限时地图时间!
BREAK

;检查是否已进入过(防止重复计时)
IF
HAVEVARHUMANInTimeMap
ACT
MESSAGEBOX您已在限时地图中。
BREAK

;允许进入,记录开始时间并传送
ACT
SET[InTimeMap]1
MAPMOVE991010;假设99为限时地图编号
STARTTIMER600;启动600秒倒计时(10分钟)
SENDMSG7已进入限时地图,停留时间:10分钟。

注:STARTTIMER为部分引擎支持的内置计时器指令;若不支持,需改用全局变量+心跳检测。

第二步:创建地图自动踢出机制

在QFunction-0.txt中添加定时检测逻辑。由于单机版通常无后台任务,需依赖玩家行为触发检查。采用[@UserTimer10](每10秒触发一次):

[@UserTimer10]
IF
EQUALMAP99;当前在限时地图
HAVEVARHUMANInTimeMap
ACT
INCHUMANTimerCount1;每10秒+1,累计次数
;60次×10秒=600秒=10分钟
IF
LARGEHUMANTimerCount60
ACT
MAPMOVE0300300;传送回主城
DELHUMANInTimeMap
DELHUMANTimerCount
SENDMSG7限时结束,已将您移出地图。

第三步:防止重复进入与时间重置

为实现“每日重置”,需记录最后进入日期。使用字符串变量存储日期:

[@EnterTimeMap]
ACT
MOVS0;获取当前日期时间,格式如202405081230
MOVS1[0:8];截取前8位为日期(20240508)

IF
HAVEVARHUMANLastTimeMapDate
ACT
IF
NOTEQUALS1
;日期不同,重置状态
DELHUMANInTimeMap
DELHUMANTimerCount
MOVHUMANLastTimeMapDateS1
;继续进入流程
ELSEACT
;同一天,检查是否已用完时间
IF
HAVEVARHUMANUsedTimeFull
ACT
MESSAGEBOX今日限时已用尽。
BREAK

;若未超时但已在地图中
IF
HAVEVARHUMANInTimeMap
ACT
MESSAGEBOX您已在限时地图内。
BREAK

;正常进入
ACT
SET[InTimeMap]1
MAPMOVE991010
STARTTIMER600
SENDMSG7进入限时地图,剩余时间10分钟。
BREAK

;首次进入当天
ACT
MOVHUMANLastTimeMapDateS1
SET[InTimeMap]1
MAPMOVE991010
STARTTIMER600
SENDMSG7首次进入限时地图,时长10分钟。

替代方案:无Timer支持时的纯变量计时

若引擎不支持STARTTIMER或[@UserTimer],可改用登录时计算剩余时间:

在玩家进入地图时记录服务器启动后的秒数():

[@EnterTimeMap]
ACT
MOVHUMANTimeMapStart
MAPMOVE991010

在[@Login]和[@Map99]中检测:

[@Map99]
IF
HAVEVARHUMANTimeMapStart
ACT
CALCS0-
IF
LARGES0600
ACT
MAPMOVE0300300
DELHUMANTimeMapStart
SENDMSG7限时已到,自动退出。

关键变量说明

HUMAN变量:绑定角色,重启不丢失(部分单机版支持);
MAP:当前地图编号;
:服务端运行总秒数,稳定可靠;
CALC:执行数学运算(减法判断超时)。

地图配置补充

确保地图99在MapInfo.txt中存在:
99限时地图100100

并在MapQuest_def99.txt中可选添加进入提示:
[@Map99]
ACT
SENDMSG6欢迎进入限时练级地图,10分钟后自动离开。

通过以上脚本组合,即可实现单机版传奇世界中限时地图的完整控制:限制进入、计时、到期自动踢出、每日重置,无需外部工具,纯脚本驱动。
[顶部]