传奇闯关地图脚本制作教程 人数时间限制及刷怪设置

来源: 作者: 点击:
核心需求实现:10层闯关地图,每层仅限1人停留(前玩家离开/进入下一层后,后续玩家可进入);每层停留限时30分钟,超时自动返回土城;玩家进入任意层时,系统自动刷出对应BOSS;打死BOSS后通过NPC进入下一层。以下是完整脚本代码、逐行解析及文件存放路径,新手可直接套用。

一、核心脚本变量规划(必看基础)

需提前规划10层地图的专属变量,用于记录每层人数、玩家进入时间,避免冲突,变量含义如下:

- 人数控制变量:G1-G10(G系列为全局变量,重启服务端重置),分别对应1-10层当前停留人数,初始值为0,玩家进入时设为1,离开/超时后设为0。

- 时间控制变量:T1-T10(T系列为时间变量),分别记录进入1-10层玩家的初始时间,用于计算停留时长。

- 地图ID说明:假设1-10层闯关地图ID为101-110(第一层101、第二层102...第十层110),土城安全区地图ID为3(需按自身服务端实际地图ID修改,查询路径:服务端根目录\MapInfo.txt)。

- NPC触发入口:每层设置“闯关引导NPC”(如第一层NPCID为1001,第二层1002...),用于玩家进入下一层的触发。

二、分模块脚本完整写法(含注释)

模块1:进入第一层脚本(核心入口,其他层逻辑通用)

// 土城进入闯关地图的触发NPC(假设NPCID为999,名称“闯关使者”)
[@EntryChuangGuan]
#IF
// 检测第一层(地图101)当前人数(G1变量)是否为0
EQUAL G1 0
#ACT
// 进入第一层前,将G1设为1(锁定当前层,禁止其他人进入)
MOV G1 1
// 记录玩家进入第一层的初始时间(赋值给T1变量,单位:秒)
MOV T1 <$TIME>
// 将玩家传送至第一层安全坐标(101地图,300,300坐标,需自行确认无障碍物)
MOVEMAP 101 300 300
// 玩家进入后自动刷第一层BOSS(怪物名称“闯关一层BOSS”,数量1,坐标320,320)
MONSTER 101 320 320 闯关一层BOSS 1
// 发送系统提示
SENDMSG 2 0 已进入闯关第一层,限时30分钟,打死BOSS后找NPC进入下一层!
BREAK
#ELSEACT
// 若第一层有人,提示玩家等待
SENDMSG 2 0 闯关第一层当前有玩家正在挑战,请稍后再试!
BREAK

模块2:第一层→第二层跳转脚本(含BOSS击杀检测)

// 第一层闯关引导NPC(ID1001)触发入口
[@GotoLayer2]
#IF
// 检测玩家是否在第一层地图(101)
MAP 101
// 检测第一层BOSS是否已被击杀(通过怪物名称判断,确保打死才允许进入下一层)
NOT MONSTEREXIST 101 闯关一层BOSS
// 检测第二层(地图102)当前人数(G2变量)是否为0
EQUAL G2 0
#ACT
// 玩家离开第一层,将G1重置为0(释放第一层,允许其他玩家进入)
MOV G1 0
// 锁定第二层,将G2设为1
MOV G2 1
// 记录玩家进入第二层的初始时间(赋值给T2变量)
MOV T2 <$TIME>
// 传送玩家至第二层安全坐标(102地图,300,300)
MOVEMAP 102 300 300
// 自动刷第二层BOSS(怪物名称“闯关二层BOSS”,数量1,坐标320,320)
MONSTER 102 320 320 闯关二层BOSS 1
// 发送系统提示
SENDMSG 2 0 成功进入闯关第二层,限时30分钟,加油!
BREAK
#ELSEACT
#IF
// 若BOSS未击杀,提示玩家先打怪
MONSTEREXIST 101 闯关一层BOSS
SENDMSG 2 0 请先击杀当前层BOSS,方可进入下一层!
BREAK
#ELSEACT
// 若第二层有人,提示玩家等待
SENDMSG 2 0 闯关第二层当前有玩家正在挑战,请稍后再试!
BREAK

模块3:30分钟时间限制脚本(全层通用,定时检测)

// 定时检测脚本(每10秒执行一次,确保时间判断精准)
[@RobotTimer]
#IF
// 检测是否有玩家在第一层(G1=1)
EQUAL G1 1
// 计算当前时间与进入时间的差值,是否超过30分钟(30*60=1800秒)
TIME > <$CALC(T1+1800)>
#ACT
// 找到第一层所有玩家,传送回土城安全区(3地图,330,330坐标)
MOVEMAPALL 101 3 330 330
// 释放第一层,将G1重置为0
MOV G1 0
// 发送超时提示
SENDMSG 2 0 闯关第一层停留时间已超30分钟,自动返回土城!
BREAK

// 第二层时间检测(逻辑与第一层完全一致,替换对应变量和地图ID即可)
#IF
EQUAL G2 1
TIME > <$CALC(T2+1800)>
#ACT
MOVEMAPALL 102 3 330 330
MOV G2 0
SENDMSG 2 0 闯关第二层停留时间已超30分钟,自动返回土城!
BREAK

// 3-10层时间检测脚本,直接复制上述第二层代码,替换:
// G2→G3-G10、T2→T3-T10、102→103-110、提示文字中的“第二层”→对应层数即可
// 此处省略3-10层重复代码,实际编写需完整复制补充

模块4:玩家主动退出/死亡返回脚本(避免层数锁定)

// 第一层主动退出(通过NPC触发,NPCID1001添加“返回土城”选项)
[@ExitLayer1]
#IF
MAP 101
#ACT
MOVEMAP 3 330 330
MOV G1 0
SENDMSG 2 0 已主动退出闯关地图,返回土城安全区!
BREAK

// 第一层玩家死亡返回(避免玩家死亡后层数一直锁定)
[@DeathInLayer1]
#IF
MAP 101
#ACT
MOV G1 0
// 死亡后默认返回土城,无需额外传送(若服务端有死亡复活设置,可添加MOVEMAP命令)
SENDMSG 2 0 你在闯关第一层死亡,已释放当前层挑战权限!
BREAK

// 2-10层主动退出/死亡返回脚本,复制上述代码,替换:
// G1→G2-G10、101→102-110、NPCID→对应层NPCID即可

三、关键补充:10层脚本快速复用技巧

无需逐行编写10层脚本,核心复用逻辑如下:1. 进入下一层脚本:复制“第一层→第二层”代码,替换G1→G当前层、G2→G下一层、T1→T当前层、T2→T下一层、地图ID101→当前层ID、102→下一层ID、BOSS名称→对应层BOSS名称;2. 时间检测脚本:复制第一层时间检测代码,替换G1→G对应层、T1→T对应层、地图ID101→对应层ID;3. 主动退出/死亡脚本:同理替换变量和地图ID即可,仅需修改“层数”“地图ID”“变量名”三个核心信息。

四、脚本文件存放路径与部署步骤(通用所有主流服务端)

1. 脚本文件存放位置

所有编写好的脚本代码,统一存放在服务端根目录的“QuestDiary”文件夹下,新建一个专属脚本文件(建议命名为“ChuangGuanMap.txt”,便于后续维护),将上述所有模块代码复制粘贴至该文件中,保存关闭。

2. 脚本导入与NPC配置(核心部署步骤)

- 第一步:导入脚本文件。打开“QuestDiary”文件夹下的“QFunction-0.txt”文件(该文件是脚本主入口,所有自定义脚本需在此导入),在文件末尾添加代码:#INCLUDE ..\QuestDiary\ChuangGuanMap.txt,保存关闭(“..\”表示当前目录上一级,即“QuestDiary”文件夹,确保路径正确)。

- 第二步:配置触发NPC。打开服务端“Envir”文件夹下的“NPC.txt”文件,添加触发NPC信息:① 土城闯关使者(ID999):在土城安全区坐标(如335,335)添加一行“3 335 335 闯关使者 999”(格式:地图ID 横坐标 纵坐标 NPC名称 NPCID);② 每层引导NPC:在对应层地图(101-110)添加NPC,如第一层(101地图)添加“101 300 300 闯关引导员 1001”,依次配置1001-1010(对应1-10层)的NPC信息。

- 第三步:NPC对话配置。打开“Envir”文件夹下的“Market_Def”文件夹,新建“999.txt”(土城闯关使者对话文件)和“1001-1010.txt”(每层引导员对话文件),示例:① 999.txt内容:[@main]#say 欢迎参与闯关挑战!<进入第一层/@EntryChuangGuan>;② 1001.txt内容:[@main]#say 当前为闯关第一层<进入第二层/@GotoLayer2><返回土城/@ExitLayer1>。

3. 刷怪参数补充说明

脚本中MONSTER 101 320 320 闯关一层BOSS 1命令解析:① 101:刷怪地图ID;② 320 320:刷怪坐标(需在对应层地图确认无障碍物,可游戏内输入“@坐标”查看);③ 闯关一层BOSS:怪物名称(需与服务端“MonData.txt”中的怪物名称完全一致);④ 1:刷怪数量(此处为1个BOSS)。若需设置BOSS刷新后不刷新其他小怪,保持该命令即可;若需添加小怪,可额外增加MONSTER命令刷小怪。

五、部署测试要点(避坑指南)

- 1. 地图ID核对:必须在“MapInfo.txt”中确认1-10层闯关地图的实际ID(101-110为示例,实际可能为其他数值),ID错误会导致传送失败。

- 2. 变量重置:首次测试前,需重启服务端(重置G1-G10、T1-T10变量初始值为0),避免变量残留导致检测异常。

- 3. 时间测试:无需等待30分钟,可临时将脚本中“1800秒”改为“60秒”(1分钟),测试超时返回功能是否正常,测试完成后改回1800秒。

- 4. 权限检查:确保服务端“QuestDiary”“Envir”文件夹有读写权限(右键文件夹→属性→安全→勾选“完全控制”),避免脚本文件无法读取或修改。

整体脚本适配GOM、GEE、BLUE等主流传奇服务端,按上述步骤编写部署后,即可实现“每层1人挑战、30分钟限时、进入自动刷怪”的核心需求。若服务端为特殊版本,仅需微调变量前缀(如部分服务端用VAR代替G)或命令格式(参考对应服务端的脚本命令手册)即可。