跳转至

副本系统命令

本页包含与副本(Instance)创建、传送和管理相关的操作命令。


副本创建命令

CreateInstance (创建副本)

创建一个新的副本实例。

语法格式:

CreateInstance 地图编号 持续时间 脚本触发 脚本参数 难度参数
创建副本实列 地图编号 持续时间 脚本触发 脚本参数 难度参数
CreateInstances 地图编号 持续时间 脚本触发 脚本参数 难度参数

参数说明:

参数 类型 必填 说明
地图编号 ushort 副本对应的地图ID
持续时间 ushort 副本存在时长(分钟)
脚本触发 ushort 已废弃,传0或1
脚本参数 ushort 已废弃,传0
难度参数 ushort 副本难度等级(0=标准, 1=进阶, 2=困难)

设计原则

推荐 CreateInstance 只负责创建副本,不传送玩家。传送由后续的 InstanceMoveGroupInstanceMove 命令负责。这样可以灵活控制传送时机,在传送前执行扣道具、检查条件等逻辑。

难度参数特殊值:

含义 传送行为
0 默认模式 由专属创建函数决定
1-29999 难度参数 由专属创建函数决定
>30000 自定义副本 只传送触发者,跳过专属函数

示例:

; 创建屠魔大厅副本(地图80),持续20分钟,标准难度
CreateInstance 80 20 0 0 0

; 创建魔虫窟副本(地图72),持续180分钟
CreateInstance 72 180 1 0 0

; 创建九层妖塔副本(地图227),持续180分钟
创建副本实列 227 180 0 0 0

; 创建自定义副本(只传送触发者,跳过专属函数)
CreateInstance 72 60 1 0 30001

副本传送命令

InstanceMove (单人副本传送)

将触发者传送到其拥有的副本实例中。

语法格式:

InstanceMove 地图编号 X坐标 Y坐标 区域类型
副本传送 地图编号 X坐标 Y坐标 区域类型
副本内传送 地图编号 X坐标 Y坐标 区域类型

命令别名

InstanceMove副本传送副本内传送 三个命令功能完全相同,只是名称不同。

参数说明:

参数 类型 说明
地图编号 int 副本对应的地图ID
X坐标 int 目标X坐标,0表示使用传送区域
Y坐标 int 目标Y坐标,0表示使用传送区域
区域类型 int 地图区域类型(见下表)

区域类型说明:

类型 说明
0 未知区域 使用指定坐标
1 复活区域 传送到复活点
2 红名区域 传送到红名区
3 传送区域 传送到默认传送点
4 随机区域 随机位置传送

示例:

; 传送到副本的传送区域
InstanceMove 72 0 0 3

; 传送到副本的指定坐标
InstanceMove 227 881 295 0

; 传送到九层妖塔二层
副本传送 227 733 443 0

GroupInstanceMove (组队副本传送)

将触发者所在队伍的所有在线成员传送到副本实例中。

语法格式:

GroupInstanceMove 地图编号 X坐标 Y坐标 区域类型
组队副本传送 地图编号 X坐标 Y坐标 区域类型

参数说明:

参数 类型 说明
地图编号 int 副本对应的地图ID
X坐标 int 目标X坐标,0表示使用传送区域
Y坐标 int 目标Y坐标,0表示使用传送区域
区域类型 int 地图区域类型(同上)

前置条件

  • 触发者必须有队伍
  • 触发者必须拥有该副本实例(通过 CreateInstance 创建)
  • 只传送在线队员,离线成员会被跳过

示例:

; 将队伍成员传送到屠魔大厅副本
GroupInstanceMove 80 0 0 3

; 将队伍成员传送到魔龙幻境副本
组队副本传送 36 0 0 3

副本节点命令

CheckInstanceNode (检测副本节点)

检测当前副本地图的节点值是否满足指定条件。

语法格式:

#IF
CheckInstanceNode 操作符 节点值

参数说明:

参数 类型 说明
操作符 string <, <=, >, >=, ==, !=
节点值 int 要比较的节点值

示例:

; 检测副本节点是否小于20(还在第一层)
#IF
CheckInstanceNode < 20
#ACT
InstanceMove 227 881 295 0
ChangeCurrentInstanceNode 20
ChangeTime 5
Break

ChangeInstanceNode (修改指定副本节点)

修改指定地图的个人副本节点值。

语法格式:

ChangeInstanceNode 地图编号 节点值

示例:

; 将地图80的副本节点设置为5
ChangeInstanceNode 80 5

ChangeCurrentInstanceNode (修改当前副本节点)

修改当前副本地图的节点值,并自动设置节点计时为当前时间+5秒。

语法格式:

ChangeCurrentInstanceNode 节点值

示例:

; 设置当前副本节点为20(进入第二层)
ChangeCurrentInstanceNode 20

ChangeTime / ChangeCurrentInstanceTime (修改副本计时)

修改当前副本的节点计时,控制下一阶段的触发时间。

语法格式:

ChangeTime 秒数
ChangeCurrentInstanceTime 秒数

示例:

; 设置5秒后触发下一阶段
ChangeTime 5

; 立即触发
ChangeTime 0

副本变量命令

SetInstanceVar (设置副本变量)

设置副本实例的数字变量。

语法格式:

SetInstanceVar 变量索引 变量值

示例:

; 设置副本变量[0]为1
SetInstanceVar 0 1

GetInstanceVar (获取副本变量)

获取副本实例的数字变量值到玩家变量。

语法格式:

GetInstanceVar 变量索引 目标变量

示例:

; 获取副本变量[0]到J100
GetInstanceVar 0 J100

队伍相关命令

GroupGoto (队伍跳转标签)

队伍成员跳转到指定标签执行。常用于扣除道具/金币。

语法格式:

GroupGoto @标签名

注意

GroupGoto 只跳转标签,不传送玩家。用于队伍成员统一执行扣道具等操作。

示例:

#IF
GroupCheckNearby
#ACT
CreateInstance 80 20 0 0 0
GroupInstanceMove 80 0 0 3
GroupGoto @扣除金币
Break

[@扣除金币]
#IF
#ACT
TakeGold 50000

完整示例

组队副本入口脚本

[@进入副本]
; 检测是否队长
#IF
not Groupleader
#ACT
Break
#SAY
勇士你不是队长,请等待队长操作!

; 检测队伍人数
#IF
CheckCalc <$GROUPNUM> > 3
#ACT
Break
#SAY
队伍人数超过3人!

; 检测队伍等级
#IF
CheckGroupVar $LEVEL < 25
#ACT
Break
#SAY
队伍有成员等级未达到25级!

; 检测队伍金币
#IF
CheckGroupVar $GOLD < 50000
#ACT
Break
#SAY
队伍有成员金币不到5万!

; 检测队友是否在附近
#IF
GroupCheckNearby
#ACT
CreateInstance 80 20 0 0 0
GroupInstanceMove 80 0 0 3
GroupGoto @扣除金币
Break
#ELSESAY
队伍成员不在附近

[@扣除金币]
#IF
#ACT
TakeGold 50000

单人副本入口脚本

[@单人副本]
#IF
LEVEL < 30
#ACT
Break
#SAY
等级不足30级,无法进入!

#IF
CheckCalc <$STR(J218)> >= 1
#ACT
Break
#SAY
今日已进入过该副本!

#IF
#ACT
CreateInstance 227 60 1 0 0
InstanceMove 227 0 0 3
MOV J218 1
Break
#SAY
传送成功!

九层妖塔传送阵脚本

[@MAIN]
#IF
#ACT
REMOVEBUFF 58001
REMOVEBUFF 58011

; 进入第一层(节点0-19)
#IF
CheckInstanceNode < 20
#ACT
InstanceMove 227 881 295 0
ChangeCurrentInstanceNode 20
ChangeTime 5
Break

; 进入第二层(节点20-29)
#IF
CheckInstanceNode < 30
#ACT
InstanceMove 227 733 443 0
ChangeCurrentInstanceNode 30
ChangeTime 5
Break

; 进入第三层(节点30-39)
#IF
CheckInstanceNode < 40
#ACT
InstanceMove 227 1148 268 0
ChangeCurrentInstanceNode 40
ChangeTime 5
Break

; 完成最后一层
#IF
CheckInstanceNode >= 90
#ACT
MOV J9 10
MOV J0 1
MOVE 147 0 0 1
Break

副本地图编号参考

地图编号 副本名称 类型 CreateInstance传送行为
17 魔渊派对 单人 ✅ 传送触发者
35 遗落长廊 组队 ✅ 传送所有队友
36 魔龙幻境 组队 ❌ 不传送(需用GroupInstanceMove)
72 魔虫窟 组队 ❌ 不传送(需用GroupInstanceMove)
73 蜘蛛长廊 组队 ❌ 不传送(需用GroupInstanceMove)
76 九层魔塔 组队 ❌ 不传送(需用GroupInstanceMove)
80 屠魔大厅 组队 ❌ 不传送(需用GroupInstanceMove)
84 学宫副本 组队 ✅ 传送所有队友
87/88 未知暗殿 组队 ❌ 不传送(需用GroupInstanceMove)
107 妖林幻境 组队 ✅ 传送所有队友
120 魔塔秘境 组队 ❌ 不传送(需用GroupInstanceMove)
121 魔主之地 单人 ✅ 传送触发者
227 九层妖塔 单人 ❌ 不传送(需用InstanceMove)

重要说明

  • ❌ 不传送CreateInstance 只创建副本,必须配合 InstanceMoveGroupInstanceMove 传送
  • ✅ 传送CreateInstance 创建副本后会自动传送玩家,无需额外传送命令

副本节点值设计规范

层级 节点范围 说明
第1层 10-19 初始层
第2层 20-29 普通难度
第3层 30-39 难度递增
第4层 40-49 中等难度
第5层 50-59 高难度
第6层 60-69 精英怪物层
第7层 70-79 Boss预备层
第8层 80-89 最终Boss层
第9层 90-99 完成标记层
关闭 255 副本关闭节点

命令别名对照表

命令 别名 功能
CreateInstance CreateInstances / 创建副本实列 创建副本
InstanceMove 副本传送 / 副本内传送 单人传送
GroupInstanceMove 组队副本传送 组队传送
ChangeCurrentInstanceNode CurrentInstanceNode 修改当前节点
ChangeTime ChangeCurrentInstanceTime / ChangeInstanceTime 修改计时

相关检测命令

  • CheckInstance 地图编号 - 检测玩家是否拥有指定副本
  • CheckInstanceNode 操作符 节点值 - 检测副本节点是否达到指定值
  • CheckInstanceVar 变量索引 比较符 值 - 检测副本变量值
  • GroupCheckNearby - 检测队友是否在附近
  • CheckGroupVar $变量 操作符 值 - 检测队伍变量

详见 副本检测命令