查看“︁Lua接口/坐标与传送”︁的源代码
来自天龙知识库
←
Lua接口/坐标与传送
跳到导航
跳到搜索
因为以下原因,您没有权限编辑该页面:
您请求的操作仅限属于该用户组的用户执行:
用户
您可以查看和复制此页面的源代码。
__NOTOC__ <div class="lua-reference" style="max-width:1200px;margin:0 auto;line-height:1.8;color:#29343a;font-family:Arial,'Microsoft YaHei',sans-serif;letter-spacing:0;overflow-wrap:anywhere;"> [[首页|首页]] · [[Lua接口/服务端函数索引|服务端接口]] · [[Lua接口/服务端调用约定|调用约定]] 读取与设置角色坐标、切换场景、计算距离与设置复活点。坐标接口通常返回 X、Z 两个值。 == 读取坐标 == {| class="wikitable" style="width:100%;table-layout:fixed;border-collapse:collapse;font-size:13px;" ! scope="col" style="text-align:left;background:#edf3f2;padding:8px;" | 接口 ! scope="col" style="text-align:left;background:#edf3f2;padding:8px;" | 参数与返回 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | [[Lua接口/服务端/GetWorldPos|GetWorldPos]] | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">sceneId, selfId</code> → x、z 两个值;失败 -1、-1。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | [[Lua接口/服务端/LuaFnGetUnitPosition|LuaFnGetUnitPosition]] | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">sceneId, selfId</code> → X、Z 两个值;目标无效不返回值。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | [[Lua接口/服务端/GetHumanWorldX|GetHumanWorldX]] / [[Lua接口/服务端/GetHumanWorldZ|GetHumanWorldZ]] | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">sceneId, selfId</code> → 世界坐标 X / Z;失败 -1。 |} [[Lua接口/服务端/GetWorldPos|GetWorldPos]] 和 [[Lua接口/服务端/LuaFnGetUnitPosition|LuaFnGetUnitPosition]] 都返回**两个值**,必须用两个变量接收,只接一项会丢掉 Z。 == 设置坐标 == {| class="wikitable" style="width:100%;table-layout:fixed;border-collapse:collapse;font-size:13px;" ! scope="col" style="text-align:left;background:#edf3f2;padding:8px;" | 接口 ! scope="col" style="text-align:left;background:#edf3f2;padding:8px;" | 参数与返回 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | [[Lua接口/服务端/SetPos|SetPos]] | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">sceneId, selfId, x, z</code>;无返回值。同场景内的位置转移。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | [[Lua接口/服务端/SetRevPos|SetRevPos]] | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">sceneId, selfId, x, z</code>;无返回值。设置玩家重生点(再次登入当前世界的位置)。 |} [[Lua接口/服务端/SetPos|SetPos]] 只在当前场景内移动,不切换场景;[[Lua接口/服务端/SetRevPos|SetRevPos]] 设置的是**登录 / 复活时的重生点**,不是即时位置。 == 切换场景 == {| class="wikitable" style="width:100%;table-layout:fixed;border-collapse:collapse;font-size:13px;" ! scope="col" style="text-align:left;background:#edf3f2;padding:8px;" | 接口 ! scope="col" style="text-align:left;background:#edf3f2;padding:8px;" | 参数与返回 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | [[Lua接口/服务端/NewWorld|NewWorld]] | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">sceneId, selfId, targetSceneId, x, z</code>;无返回值。切换到目标场景。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | [[Lua接口/服务端/IsCanNewWorld|IsCanNewWorld]] | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">sceneId, selfId, targetSceneId, x, z</code> → 是否满足准入条件;部分分支无返回值。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | [[Lua接口/服务端/SetCanChangeScene|SetCanChangeScene]] | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">sceneId, selfId, canChange</code> → 1 / -1。控制玩家是否允许切换场景。 |} [[Lua接口/服务端/NewWorld|NewWorld]] 无返回值,切换前应先用 [[Lua接口/服务端/IsCanNewWorld|IsCanNewWorld]] 判断准入条件。[[Lua接口/服务端/SetCanChangeScene|SetCanChangeScene]] 控制是否**允许**切换场景(用于锁定场景),返回 1 或 -1。 == 距离判断 == {| class="wikitable" style="width:100%;table-layout:fixed;border-collapse:collapse;font-size:13px;" ! scope="col" style="text-align:left;background:#edf3f2;padding:8px;" | 接口 ! scope="col" style="text-align:left;background:#edf3f2;padding:8px;" | 参数与返回 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | [[Lua接口/服务端/IsInDist|IsInDist]] | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">sceneId, selfId, targetId, dist</code> → 是否在 dist 内(含边界);失败 -1。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | [[Lua接口/服务端/GetDist|GetDist]] | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">sceneId, selfId, targetId, arg4</code> → 两个对象的距离;失败 -1。 |} [[Lua接口/服务端/IsInDist|IsInDist]] 的 dist 是上限(包含边界),[[Lua接口/服务端/GetDist|GetDist]] 返回实际距离。 == ID 转换 == {| class="wikitable" style="width:100%;table-layout:fixed;border-collapse:collapse;font-size:13px;" ! scope="col" style="text-align:left;background:#edf3f2;padding:8px;" | 接口 ! scope="col" style="text-align:left;background:#edf3f2;padding:8px;" | 参数与返回 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | [[Lua接口/服务端/LuaFnObjId2Guid|LuaFnObjId2Guid]] | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">sceneId, selfId</code> → 该对象 ID 对应的 GUID;失败 -1。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | [[Lua接口/服务端/LuaFnGuid2ObjId|LuaFnGuid2ObjId]] | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">sceneId, guid</code> → 该 GUID 在当前场景的对象 ID;失败 -1。 |} GUID 是全局标识,对象 ID 只在当前场景有效。两者转换要求对象仍在对应场景中,详见 [[Lua接口/对象ID与GUID|对象 ID 与 GUID]]。 == 默认复活点 == {| class="wikitable" style="width:100%;table-layout:fixed;border-collapse:collapse;font-size:13px;" ! scope="col" style="text-align:left;background:#edf3f2;padding:8px;" | 接口 ! scope="col" style="text-align:left;background:#edf3f2;padding:8px;" | 参数与返回 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | [[Lua接口/服务端/SetPlayerDefaultReliveInfo|SetPlayerDefaultReliveInfo]] | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">sceneId, selfId, pszHP, pszMP, pszSP, defaultSceneID, defaultPosX, defaultPosZ</code>;无返回值。8 个参数。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | [[Lua接口/服务端/SetPlayerDefaultReliveInfoEx|SetPlayerDefaultReliveInfoEx]] | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">sceneId, selfId, pszHP, pszMP, pszSP, defaultSceneID, defaultPosX, defaultPosZ, scriptId</code>;无返回值。9 个参数。 |} 这两个接口参数很多,Ex 版本多一个 scriptId。传入的 HP / MP / SP 是**字符串**(psz 前缀)。 == 检查并切换场景 == <pre style="white-space:pre-wrap;overflow-wrap:anywhere;font-size:13px;line-height:1.7;padding:12px;background:#f5f7f8;border:1px solid #dbe3e6;">local ok = IsCanNewWorld(sceneId, selfId, targetSceneId, posX, posZ) if type(ok) == "number" and ok == 1 then NewWorld(sceneId, selfId, targetSceneId, posX, posZ) end</pre> [[Lua接口/服务端/NewWorld|NewWorld]] 无返回值,先用 [[Lua接口/服务端/IsCanNewWorld|IsCanNewWorld]] 判断准入。 == 读取并设置坐标 == <pre style="white-space:pre-wrap;overflow-wrap:anywhere;font-size:13px;line-height:1.7;padding:12px;background:#f5f7f8;border:1px solid #dbe3e6;">local x, z = GetWorldPos(sceneId, selfId) if type(x) == "number" and type(z) == "number" and x ~= -1 then SetPos(sceneId, selfId, x, z) end</pre> [[Lua接口/服务端/GetWorldPos|GetWorldPos]] 返回两个值,先用两个变量接收再传回 [[Lua接口/服务端/SetPos|SetPos]]。 == 相关主题 == * [[Lua接口/角色信息|角色信息]] * [[Lua接口/属性读取与修改|属性读取与修改]] * [[Lua接口/等级与经验|等级与经验]] * [[Lua接口/货币相关|货币相关]] * [[Lua接口/物品查询|物品查询]] * [[Lua接口/物品发放与扣除|物品发放与扣除]] * [[Lua接口/背包空间|背包空间]] * [[Lua接口/装备操作|装备操作]] * [[Lua接口/任务状态|任务状态]] * [[Lua接口/任务变量|任务变量]] * [[Lua接口/NPC对话|NPC 对话]] * [[Lua接口/对话选项|对话选项]] * [[Lua接口/技能相关|技能相关]] * [[Lua接口/心法相关|心法相关]] * [[Lua接口/状态效果|状态效果]] * [[Lua接口/生活技能|生活技能]] * [[Lua接口/珍兽查询|珍兽查询]] * [[Lua接口/珍兽操作|珍兽操作]] * [[Lua接口/场景查询|场景查询]] * [[Lua接口/坐标与传送|坐标与传送]] * [[Lua接口/副本相关|副本相关]] * [[Lua接口/活动相关|活动相关]] * [[Lua接口/时间与计时|时间与计时]] * [[Lua接口/怪物相关|怪物相关]] * [[Lua接口/队伍相关|队伍相关]] * [[Lua接口/帮会相关|帮会相关]] * [[Lua接口/消息与提示|消息与提示]] * [[Lua接口/聊天与公告|聊天与公告]] [[Lua接口/服务端调用约定|服务端调用约定]] · [[Lua接口/服务端调用示例|服务端调用示例]] · [[Lua接口/服务端函数索引|服务端函数索引]] [[Lua接口/函数不存在|函数不存在或提示 nil]] · [[Lua接口/参数类型与顺序|参数类型与顺序]] · [[Lua接口/返回值判断|返回值判断]] · [[Lua接口/对象ID与GUID|对象 ID 与 GUID]] <div style="margin-top:20px;padding-top:10px;border-top:1px solid #dbe3e6;color:#657078;font-size:12px;">本页函数签名与返回约定依据当前服务端注册表整理;sceneId、selfId 由实际回调提供,业务枚举、属性类型编号与运行效果需要实测。</div> </div>
返回
Lua接口/坐标与传送
。
导航菜单
页面操作
页面
讨论
阅读
查看源代码
历史
页面操作
页面
讨论
更多
工具
个人工具
创建账号
登录
导航
首页
最近更改
随机页面
MediaWiki帮助
特殊页面
搜索
工具
链入页面
相关更改
页面信息