副本系统命令¶
本页包含与副本(Instance)创建、传送和管理相关的操作命令。
副本创建命令¶
CreateInstance (创建副本)¶
创建一个新的副本实例。
语法格式:
CreateInstance 地图编号 持续时间 脚本触发 脚本参数 难度参数
创建副本实列 地图编号 持续时间 脚本触发 脚本参数 难度参数
CreateInstances 地图编号 持续时间 脚本触发 脚本参数 难度参数
参数说明:
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| 地图编号 | ushort | ✅ | 副本对应的地图ID |
| 持续时间 | ushort | ✅ | 副本存在时长(分钟) |
| 脚本触发 | ushort | ❌ | 已废弃,传0或1 |
| 脚本参数 | ushort | ❌ | 已废弃,传0 |
| 难度参数 | ushort | ❌ | 副本难度等级(0=标准, 1=进阶, 2=困难) |
设计原则
推荐 CreateInstance 只负责创建副本,不传送玩家。传送由后续的 InstanceMove 或 GroupInstanceMove 命令负责。这样可以灵活控制传送时机,在传送前执行扣道具、检查条件等逻辑。
难度参数特殊值:
| 值 | 含义 | 传送行为 |
|---|---|---|
| 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、副本传送、副本内传送 三个命令功能完全相同,只是名称不同。
参数说明:
| 参数 | 类型 | 说明 |
|---|---|---|
| 地图编号 | 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 (组队副本传送)¶
将触发者所在队伍的所有在线成员传送到副本实例中。
语法格式:
参数说明:
| 参数 | 类型 | 说明 |
|---|---|---|
| 地图编号 | int | 副本对应的地图ID |
| X坐标 | int | 目标X坐标,0表示使用传送区域 |
| Y坐标 | int | 目标Y坐标,0表示使用传送区域 |
| 区域类型 | int | 地图区域类型(同上) |
前置条件
- 触发者必须有队伍
- 触发者必须拥有该副本实例(通过
CreateInstance创建) - 只传送在线队员,离线成员会被跳过
示例:
副本节点命令¶
CheckInstanceNode (检测副本节点)¶
检测当前副本地图的节点值是否满足指定条件。
语法格式:
参数说明:
| 参数 | 类型 | 说明 |
|---|---|---|
| 操作符 | string | <, <=, >, >=, ==, != |
| 节点值 | int | 要比较的节点值 |
示例:
; 检测副本节点是否小于20(还在第一层)
#IF
CheckInstanceNode < 20
#ACT
InstanceMove 227 881 295 0
ChangeCurrentInstanceNode 20
ChangeTime 5
Break
ChangeInstanceNode (修改指定副本节点)¶
修改指定地图的个人副本节点值。
语法格式:
示例:
ChangeCurrentInstanceNode (修改当前副本节点)¶
修改当前副本地图的节点值,并自动设置节点计时为当前时间+5秒。
语法格式:
示例:
ChangeTime / ChangeCurrentInstanceTime (修改副本计时)¶
修改当前副本的节点计时,控制下一阶段的触发时间。
语法格式:
示例:
副本变量命令¶
SetInstanceVar (设置副本变量)¶
设置副本实例的数字变量。
语法格式:
示例:
GetInstanceVar (获取副本变量)¶
获取副本实例的数字变量值到玩家变量。
语法格式:
示例:
队伍相关命令¶
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只创建副本,必须配合InstanceMove或GroupInstanceMove传送 - ✅ 传送:
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 $变量 操作符 值- 检测队伍变量
详见 副本检测命令