根据浮生梦老师前端课程内容,获取玩家自动寻路坐标点主要使用 `SL:GetMetaValue` 函数来获取服务器下发的路径数据。
具体方法如下:
```lua
-- 获取寻路路径点数组
local pathPoints = SL:GetMetaValue("MAP_PATH_POINTS") or {}
-- 遍历获取每个坐标点
for i, point in ipairs(pathPoints) do
local mapX = point.x -- X坐标
local mapY = point.y -- Y坐标
SL:Print("寻路点"..i..":", mapX, mapY)
end
-- 也可以获取路径点数量
local pathSize = SL:GetMetaValue("MAP_PATH_SIZE")
if pathSize > 0 then
SL:Print("当前有"..pathSize.."个寻路点")
end
```
**关键点说明:**
1. `MAP_PATH_POINTS` 返回的是包含{x,y}坐标的table数组
2. 当玩家开始自动寻路时,系统会自动更新这个数据
3. 可以通过 `LUA_EVENT_MINIMAP_FIND_PATH` 事件监听寻路路径变化
**完整示例:**
```lua
-- 监听寻路路径变化事件
SL:RegisterEvent("LUA_EVENT_MINIMAP_FIND_PATH", function()
local points = SL:GetMetaValue("MAP_PATH_POINTS") or {}
for i, v in ipairs(points) do
SL:Print("路径点"..i..":", v.x, v.y)
end
end)
```
这样就能实时获取玩家当前的自动寻路坐标点了。记得在实际使用前检查路径点数组是否为空,避免空指针错误。