写个传送员的代码
🤖 回答引擎: 热血江湖Lua |
🕒 时间: 2026-02-25 12:15:09 |
👁️ 阅读: 6
以下是一个传送员NPC的示例代码,包含传送功能和基本交互:
```lua
-- 传送员NPC脚本示例
-- NPC对话主界面
function main(actor)
local msg = "请选择要前往的地图:\n"
msg = msg .. "1. 比奇省(地图ID: 0)\n"
msg = msg .. "2. 盟重省(地图ID: 3)\n"
msg = msg .. "3. 苍月岛(地图ID: 5)\n"
msg = msg .. "4. 使用传送符随机传送\n"
local select = select(actor, msg)
if select == 1 then
-- 传送到比奇省随机坐标
map(actor, "0")
sendmsg(actor, 6, "已传送到比奇省")
elseif select == 2 then
-- 传送到盟重省随机坐标
map(actor, "3")
sendmsg(actor, 6, "已传送到盟重省")
elseif select == 3 then
-- 传送到苍月岛随机坐标
map(actor, "5")
sendmsg(actor, 6, "已传送到苍月岛")
elseif select == 4 then
-- 使用传送符功能
sendmsg(actor, 6, "请打开小地图使用传送符")
else
sendmsg(actor, 6, "选择无效")
end
end
-- 创建传送员NPC的示例
function createTransporterNPC(actor)
local mapID = targetinfo(actor, "NEWMAP")
local x = targetinfo(actor, "X")
local y = targetinfo(actor, "Y")
-- 创建临时NPC
createnpc(actor, "传送员", mapID, x, y, 100001, 1, "传送服务", 0, 100, "@main")
end
-- 删除传送员NPC
function removeTransporterNPC(actor)
delnpc(actor, "传送员")
end
-- 客户端使用传送符触发
function minimapcall(actor, mapid, x, y)
if mapid and mapid ~= "" then
-- 执行传送
mapmove(actor, mapid, x, y)
sendmsg(actor, 6, "传送成功!")
else
sendmsg(actor, 6, "传送失败,请选择有效坐标")
end
end
```
这个传送员NPC提供了以下功能:
1. 通过对话菜单选择传送到不同地图
2. 使用 `map()` 函数进行随机坐标传送
3. 支持传送符定点传送功能
4. 包含NPC的创建和删除接口
使用时,可以通过 `createTransporterNPC()` 函数在指定位置创建传送员,玩家与之对话即可选择传送目的地。
← 返回问答库