Appearance
副本地图传送
警告
💡值得注意的是:
使用此功能时,系统将为每次操作独立启动一个服务容器,该容器类似于一个私密的房间,对于未进入该房间的非传送玩家将不可见。
同时,由于该功能会消耗一定的服务资源,因此仅对认证创作者/年度创作者开放。
若你希望获得使用本API的权限,请前往QQ群:478041977,联系群主吉吉喵进行申请认证/年度。
普通创作者可以通过调用entity.player.link()方法实现传送至副图的功能,但请注意,这并非开启一个独立的房间,而是直接进行地图间的跳转。
方法
teleport()
地图组内传送能力,能够让玩家被传送到指定地图中。且单独开一个地图服务容器(房间),非传送玩家不可见。
如填写了serverId
参数,则将把该批玩家传送至指定的服务容器 反之,则新建服务容器并进入。
此能力受权限影响,无权限账户调用后会导致报错。
输入参数
参数 | 必填 | 默认值 | 类型 | 说明 |
---|---|---|---|---|
mapId | 是 | string | 目标地图id | |
players | 是 | GameEntity[] | 被传送的玩家entity数组 | |
serverId | string | 自定义生成的服务器id,如填写将进入指定服务器,不填写将随机生成 |
返回值
类型 | 说明 |
---|---|
Promise‹TeleportResult› | 异步返回传送结果 |
定义于 #L9922
信息
需注意:
- 传送进入的地图为独立服务器,因此同一张目标地图,分批次传送不同的人,所进入的是不同服务器。
- 只能在已发布地图中生效
- players的长度不能超过50个
- players中不能存在游客(没有UserID)
点击查看示例代码
javascript
while (true) {
try {
let players = world.querySelectorAll('player').slice(0, 50)
players = players.filter(e => e.player.userId !== '' && e.player.userId !== '0' && e.player.userId !== 0)
world.teleport('100001157', players)
break
} catch (e) {
world.say('传送失败:' + e.stack)
}
await sleep(1000)
}
world.say('传送成功 ')
接口
TeleportResult
传送结果
参数 | 类型 | 说明 |
---|---|---|
serverId | string | 生成的服务器id |
定义于 #L9335