如何将玩家添加到该副本地图中?
🤖 回答引擎: 热血江湖Lua |
🕒 时间: 2026-05-12 15:48:52 |
👁️ 阅读: 12
要将玩家添加到副本地图中,需要使用 `addmirrormap` 接口创建一个镜像地图(即副本地图),然后使用 `mapmove` 接口将玩家传送过去。
**具体步骤如下:**
1. **创建副本地图**
使用 `addmirrormap` 函数,基于一个已有的地图(原地图ID)创建一个新的镜像地图。你需要指定新地图的ID、名称、持续时间、返回地图等信息。
```lua
local result = addmirrormap("oldMapId", "newMapId", "副本地图", 3600, "backMapId", 1, 202, 277)
```
* `oldMapId`: 原地图ID(来自MapInfo表)。
* `newMapId`: 你为副本地图指定的新ID。
* `newName`: 副本地图的名称。
* `time`: 副本地图的有效时间(秒)。
* `backMap`: 时间结束后,玩家被传送回的地图ID。
* `miniMapID`: 小地图编号(预留,暂时无效)。
* `posmX`, `posmY`: 返回地图时的坐标。
2. **传送玩家到副本地图**
创建成功后,使用 `mapmove` 函数将玩家传送到你刚创建的副本地图(`newMapId`)的指定坐标。
```lua
mapmove(actor, "newMapId", 208, 290, 2)
```
* `actor`: 玩家对象。
* `"newMapId"`: 上一步创建的副本地图ID。
* `208`, `290`: 目标坐标(X, Y)。
* `2`: 传送的随机范围。
**注意:**
* 如果目标地图存在当前地图所在的分线,`mapmove` 参数不拼接 `-1`(如 `"newMapId"`),则默认传到目标地图的当前分线。如果拼接 `-1`(如 `"newMapId-1"`),则传到目标地图的1线。
* 副本地图到期后,玩家会自动被传送到 `backMap` 指定的地图。你也可以通过监听 `g_mirrormapend` 触发函数来执行副本地图到期的自定义逻辑。
← 返回问答库