在本地架设的传奇世界服务端中,限时地图通过QFunction-0.txt、MapQuest_def地图编号.txt及NPC脚本协同控制。核心逻辑为:玩家触发进入条件 → 系统记录进入时间 → 定时检测超时 → 强制传送离开。
首先,在EnvirMapQuest_def目录下创建对应地图编号的文本文件,例如“D401.txt”(假设限时地图编号为D401)。文件内定义基础属性:
[@MapEnter]
IF
CHECKLEVELEX > 30
ACT
MOVR D401 10 10
SENDMSG 7 您已进入限时地图,停留时间30分钟。
CALCVAR HUMAN 超时计时器 = 1800
StartTimer 超时检测 1000
break
ELSEACT
SENDMSG 7 等级不足,无法进入。
其次,在QFunction-0.txt中添加定时器回调函数:
[@超时检测]
IF
EQUAL 超时计时器 > 0
ACT
CALCVAR HUMAN 超时计时器 -= 1
StartTimer 超时检测 1000
; 每秒减1,1800即30分钟
break
IF
EQUAL 超时计时器 <= 0
HAVEGOLD
ACT
MAPMOVE 3 330 330
SENDMSG 7 停留时间已到,已被传送至安全区。
CLEARVAR 超时计时器
若需多人共享同一倒计时(如组队副本),改用全局变量。在D401地图脚本中:
[@MapEnter]
IF
CHECK [G100] == 0
ACT
SET [G100] 1800
StartGlobalTimer 副本倒计时 1000
MOVR D401 10 10
break
ELSEACT
MOVR D401 15 15
并在QManage.txt中定义全局定时器:
[@副本倒计时]
IF
EQUAL [G100] > 0
ACT
CALC [G100] -= 1
StartGlobalTimer 副本倒计时 1000
break
IF
EQUAL [G100] <= 0
ACT
KILLMONEXPRANGE D401
MAPMOVEALL D401 3 330 330
SENDMAPMSG D401 7 副本时间结束,全员传送离开。
CLEARVARG [G100]
怪物刷新控制通过MonGen.txt实现。在限时地图内仅允许特定时间段刷怪,可添加条件判断:
D401 10 10 12 12 1000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ......
实际应用中需配合NPC入口控制。在村庄放置NPC脚本:
[@main]
欢迎进入限时试炼场!
<进入/@进入检测>
<查询剩余时间/@查时>
[@进入检测]
IF
CHECKMAP D401
ACT
SENDMSG 7 您已在限时地图内。
break
IF
CHECKLEVELEX < 35
ACT
SENDMSG 7 需35级方可进入。
break
ACT
MOVR D401 10 10
CALCVAR HUMAN 超时计时器 = 1800
StartTimer 超时检测 1000
[@查时]
IF
HAVEVAR 超时计时器
ACT
SENDMSG 7 剩余时间:%超时计时器%秒。
所有脚本修改后需重启服务端使MapQuest_def生效,QFunction与NPC脚本热加载无需重启。
传奇世界单机限时地图脚本完整编写教程 全套参数配置实操
来源:
作者:
点击:

