传奇完整历练副本脚本实录文本即可使用NPC传送进入条件检测自动清除与通关奖励配置教

来源: 作者: 点击:
历练副本的副本编号、进入条件、时长、清除机制、通关奖励都在Envir\QuestDiary\历练副文本录.txt里,先把空文件建好,Market_Def的NPC脚本指向这个文本读写,就能跑起来。副本状态建议分三段:首次记录存档、当前可进入次数、通关或完成记录;进副本前判断,出副本或通关后更新。所有副本命令以本机M2命令表为准,Hero/GOM/Blue的EnterCopy、CopyClear、CopyTime写法不同,不要混套。

一、实录文本结构

Envir\QuestDiary下建目录,例如\历练副本\,建三个空文本:

历练副本记录.txt 存“已开启副本/当前次数”
历练通关记录.txt 存“副本完成次数/通关时间”
历练清除标记.txt 存“自动清除状态”

Hero用CheckGroupCopy、EnterCopy、ClearCopy、CopyTime;GOM用Copy、CopyClear、EnterCopy、CopyTime;Blue用DBCOPY、ClearDBCopy、EnterCopy、CopyTime。先在本机M2命令列表搜Copy,确定前缀再改下面脚本。

二、Hero引擎副本入口NPC

Market_Def\历练使者.txt:

[@main]
历练副本\ \
开启并进入历练之地/@opencopy\ \
查询副本进度/@copyshow\ \
清除当前副本/@clearcopy\ \

[@opencopy]
IF

CHECKVAR HUMAN 历练副本记录 < 1
ACT

VAR Integer HUMAN 历练副本记录
LOADVAR HUMAN 历练副本记录 ..\QuestDiary\历练副本\历练副本记录.txt
CALCVAR HUMAN 历练副本记录 = 1
SAVEVAR HUMAN 历练副本记录 ..\QuestDiary\历练副本\历练副本记录.txt
CHANGEMODEEX 3 0
EnterCopy 1
CopyTime 30
SENDMSG 6 首次开启历练之地,记录已存档,副本时长30分钟
ELSEACT

VAR Integer HUMAN 历练副本记录
LOADVAR HUMAN 历练副本记录 ..\QuestDiary\历练副本\历练副本记录.txt
CHECKVAR HUMAN 历练副本记录 > 0
ACT

EnterCopy 1
CopyTime 30
SENDMSG 6 已进入历练之地,当前剩余时长30分钟
ELSEACT

SENDMSG 6 历练副本记录异常,请联系管理员

CHANGEMODEEX 3 0为无敌模式关闭,按本机命令名改。EnterCopy 1的1是副本组编号,多副本用2、3区分;CopyTime 30是30分钟,部分引擎按分钟,部分按秒,先小号测试再改时长。

三、GOM/GEE副本入口

[@opencopy_gom]
IF

CHECKVAR HUMAN 历练副本记录 < 1
ACT

VAR Integer HUMAN 历练副本记录
LOADVAR HUMAN 历练副本记录 ..\QuestDiary\历练副本\历练副本记录.txt
CALCVAR HUMAN 历练副本记录 = 1
SAVEVAR HUMAN 历练副本记录 ..\QuestDiary\历练副本\历练副本记录.txt
Copy 1
EnterCopy 1
CopyTime 30
SENDMSG 6 历练副本已创建并记录,进入编号1,时长30分钟
ELSEACT

VAR Integer HUMAN 历练副本记录
LOADVAR HUMAN 历练副本记录 ..\QuestDiary\历练副本\历练副本记录.txt
CHECKVAR HUMAN 历练副本记录 > 0
ACT

Copy 1
EnterCopy 1
CopyTime 30
SENDMSG 6 进入已有历练副本,时长30分钟
ELSEACT

SENDMSG 6 副本记录异常

Copy先创建副本实例,EnterCopy再进入;GOM部分版本EnterCopy自动建副,不需要Copy。副本编号、地图编号、出生点需在M2副本管理或MapInfo副本字段登记,NPC只负责创建和传送。

四、Blue引擎副本入口

[@opencopy_blue]
IF

CHECKVAR HUMAN 历练副本记录 < 1
ACT

VAR Integer HUMAN 历练副本记录
LOADVAR HUMAN 历练副本记录 ..\QuestDiary\历练副本\历练副本记录.txt
CALCVAR HUMAN 历练副本记录 = 1
SAVEVAR HUMAN 历练副本记录 ..\QuestDiary\历练副本\历练副本记录.txt
DBCOPY 1
EnterCopy 1
CopyTime 30
SENDMSG 6 蓝月类历练副本已开档并进入,30分钟
ELSEACT

VAR Integer HUMAN 历练副本记录
LOADVAR HUMAN 历练副本记录 ..\QuestDiary\历练副本\历练副本记录.txt
CHECKVAR HUMAN 历练副本记录 > 0
ACT

EnterCopy 1
CopyTime 30
SENDMSG 6 蓝月类历练副本再次进入,30分钟
ELSEACT

SENDMSG 6 副本开档记录异常

Blue副本可能走DBCOPY加EnterCopy,或只EnterCopy;副本地图在MapInfo写CopyMap=1或副本标记,按本机Blue文档核对。

五、进入条件限制

加等级、次数、门票、组队、职业、会员条件,写在EnterCopy之前。示例:

[@opencopy]
IF

CHECKLEVELEX > 49
CHECKVAR HUMAN 历练副本次数 > 0
CHECKITEM 历练门票 1
ACT

TAKE 历练门票 1
VAR Integer HUMAN 历练副本次数
LOADVAR HUMAN 历练副本次数 ..\QuestDiary\历练副本\历练次数.txt
CALCVAR HUMAN 历练副本次数 - 1
SAVEVAR HUMAN 历练副本次数 ..\QuestDiary\历练副本\历练次数.txt
EnterCopy 1
CopyTime 30
SENDMSG 6 消耗历练门票1张,剩余次数已扣减,进入历练之地
ELSEACT

SENDMSG 6 需50级以上、持有历练门票且次数大于0

每日次数单独存文件:

[@buycopy]
IF

CHECKGAMEGOLD > 50
ACT

GAMEGOLD - 50
VAR Integer HUMAN 历练副本次数
LOADVAR HUMAN 历练副本次数 ..\QuestDiary\历练副本\历练次数.txt
CALCVAR HUMAN 历练副本次数 + 1
SAVEVAR HUMAN 历练副本次数 ..\QuestDiary\历练副本\历练次数.txt
SENDMSG 6 购买历练副本次数1,消耗50元宝

跨天重置在Robot零点把历练副本次数.txt写0,或用日期变量:每天首次点进入检测CHECKVAR日期不等于<$DATE>就恢复次数。副本次数用文本存适合单服;合区时手工合并,或用库内HUMAN变量按合区工具迁移。

六、自动清除与超时退出

副本结束自动清怪、清物品、传回原地图,用ClearCopy和超时事件。QFunction-0或副本管理触发:

[@CopyTimeOut]
IF

ACT

ClearCopy
SENDMSG 6 历练副本时间到,已自动清除副本内怪物与残留

[@CopyUserOut]
IF

ACT

MAPMOVE 3 330 330
SENDMSG 6 历练副本已关闭,返回土城安全区

ClearCopy只清副本对象,不自动回城;超时后若玩家还在副本,需CopyUserOut或MAPMOVE。部分引擎在M2副本管理勾“时间到自动清理副本”“自动回城”,脚本段就只做记录。

英雄/合击副本清除要同时清英雄。示例:

[@CopyTimeOut]
IF

ACT

ClearCopy
CheckHeroOnline
ACT

SENDMSG 6 历练副本超时,主体与英雄均将被清理

英雄跟随主体出副本,部分引擎需对英雄对象执行ClearCopy;实测英雄残留就改用QFunction英雄副本超时标签。

七、通关与完成记录

副本击杀最终BOSS后,在QF或MonDie段记录通关并给奖。示例用HERO:

[@PlayKillMonCopy]
IF

CHECKMCNAME 历练守护神
InCopyMap
ACT

VAR Integer HUMAN 历练通关次数
LOADVAR HUMAN 历练通关次数 ..\QuestDiary\历练副本\历练通关记录.txt
CALCVAR HUMAN 历练通关次数 + 1
SAVEVAR HUMAN 历练通关次数 ..\QuestDiary\历练副本\历练通关记录.txt
CHANGEEXP + 5000000
GAMEGOLD + 50
GIVE 历练宝箱 1
SENDMSG 6 历练副本通关,累计完成已记录,奖励经验500万、元宝50、宝箱1

InCopyMap按本机命令改,GOM可能用CHECKCOPY、CheckInCopy;若副本内杀怪无法在QF识别,改BOSS死亡脚本或M2怪物死亡回调。

按通关次数发阶梯奖:

[@showreward]
IF

VAR Integer HUMAN 历练通关次数
LOADVAR HUMAN 历练通关次数 ..\QuestDiary\历练副本\历练通关记录.txt
CHECKVAR HUMAN 历练通关次数 > 9
ACT

GIVE 十连通关大奖 1
SENDMSG 6 累计通关达10次,额外发放十连大奖
ELSEACT

SENDMSG 6 当前累计通关次数不足10次

八、组队副本与单人副本切换

单人副本直接EnterCopy,组队副本要求队伍人数和队员全在附近:

[@opencopy_team]
IF

CHECKTEAMCOUNT > 2
CHECKTEAMCOUNT < 6
ACT

EnterCopy 1
CopyTime 40
SENDMSG 6 组队历练副本开启,3到5人进入,时长40分钟
ELSEACT

SENDMSG 6 组队历练需要3到5人同队

队员分别进同一副本实例,用CopyTeam或M2组队副本共享编号;不同引擎命令不同,Hero用CHECKTEAMCOUNT,GOM用CheckTeamCount。副本内死亡后再次进入要能回同一实例,否则队员会被分到新副本,进副本前统一用Copy编号变量记录。

九、副本状态查询NPC

[@copyshow]
IF

ACT

VAR Integer HUMAN 历练副本记录
LOADVAR HUMAN 历练副本记录 ..\QuestDiary\历练副本\历练副本记录.txt
VAR Integer HUMAN 历练副本次数
LOADVAR HUMAN 历练副本次数 ..\QuestDiary\历练副本\历练次数.txt
VAR Integer HUMAN 历练通关次数
LOADVAR HUMAN 历练通关次数 ..\QuestDiary\历练副本\历练通关记录.txt
SENDMSG 6 副本开档状态:<$HUMAN(历练副本记录)>
SENDMSG 6 当前剩余次数:<$HUMAN(历练副本次数)>
SENDMSG 6 累计通关次数:<$HUMAN(历练通关次数)>

<HUMAN(变量名)>宏按引擎支持度替换;不支持就先把变量MOV到S0再用<STR(S0)>播报。

十、多副本编号扩展

第二个副本记录用新文件,避免和第一个共用:

Envir\QuestDiary\历练副本\历练副本记录2.txt
Envir\QuestDiary\历练副本\历练通关记录2.txt

NPC按钮:

[@openhigh]
IF

CHECKVAR HUMAN 历练副本记录2 < 1
ACT

VAR Integer HUMAN 历练副本记录2
LOADVAR HUMAN 历练副本记录2 ..\QuestDiary\历练副本\历练副本记录2.txt
CALCVAR HUMAN 历练副本记录2 = 1
SAVEVAR HUMAN 历练副本记录2 ..\QuestDiary\历练副本\历练副本记录2.txt
EnterCopy 2
CopyTime 45
SENDMSG 6 高级历练之地已开档,进入副本2,45分钟
ELSEACT

VAR Integer HUMAN 历练副本记录2
LOADVAR HUMAN 历练副本记录2 ..\QuestDiary\历练副本\历练副本记录2.txt
CHECKVAR HUMAN 历练副本记录2 > 0
ACT

EnterCopy 2
CopyTime 45
SENDMSG 6 进入高级历练之地,45分钟
ELSEACT

SENDMSG 6 高级副本记录异常

副本地图在MapInfo按副本标记配,M2副本管理把副本1绑历练之地地图、副本2绑高级历练地图,EnterCopy编号和地图绑定不能错。

十一、实录文本权限与编码

三个文本用ANSI编码、不带BOM,目录手动建。M2服务对Envir有写权限,副本脚本在Market_Def,记录文本在QuestDiary,路径用相对写法..\QuestDiary\历练副本\xxx.txt。变量类型统一Integer,字符日期才用String;不要把次数变量和日期变量混存一个文件导致解析失败。

十二、常见不生效

EnterCopy后传错图:副本编号没在M2副本管理绑定地图,或MapInfo缺副本标记;先在M2建副本实例再写NPC。

副本不超时:CopyTime命令名或单位不对,部分引擎写CopyTime 30是30分钟,部分要CopyTime 1800秒;用SENDMSG在超时事件确认触发,再调整数值。

超时不清怪:只写了CopyTime没写ClearCopy,M2也未勾自动清理;QF补[@CopyTimeOut]段。

超时人不回城:ClearCopy不负责传送,MAPMOVE或CopyUserOut补回城坐标。

通关不记录:InCopyMap不识别、CHECKMCNAME写错怪名、QF段未挂载;先用SENDMSG测杀怪段触发,再加重变量累加。

次数串号:用GLOBAL全局变量存副本次数,多人同时进会互相扣;个人次数用HUMAN文本,通关次数也用HUMAN。

合区数据丢:文本记录未合并,或库内变量合区规则未勾;合区前备份QuestDiary并手工汇总角色记录。

组队各进各副:未用共享副本实例命令,队员重进时新建了副本;统一副本编号并用CopyTeam/组队副本开关。

英雄残留:超时只清主体副本,英雄没跟出;QFunction英雄超时段补清英雄副本对象。

按首次开档记录、次数门票限制、EnterCopy进副、CopyTime超时、ClearCopy清理、通关累加记录、奖励发放七步做,历练副本就能录文本跑起来。副本命令前缀按Hero、GOM、Blue分别选,时间单位、副本编号绑定、超时回城三段用两个小号实测一次再开放。