📖 waypoints 路径点表
生物巡逻路径的坐标点定义 · Creature waypoints
📋 表概述
waypoints 表定义生物巡逻路径上的每一个坐标点。每条路径由一个 entry 标识,包含按 pointid 排序的多个坐标点。生物将以这些点为目标依次移动,形成巡逻路径。
🎯 核心概念:此表是较早的路径系统实现,新内容建议使用
waypoint_data 表(支持更多功能如 action 和 object_guid)。此表主要用于兼容旧数据和简单位置巡逻。📊 表结构
| 字段名 | 数据类型 | 默认值 | 说明 |
|---|---|---|---|
| entry | INT UNSIGNED | 0 | 路径ID(联合主键,对应生物模板的 MovementType=2) |
| pointid | INT UNSIGNED | 0 | 路径点序号(联合主键,从1开始递增) |
| position_x | FLOAT | 0 | 路径点X坐标 |
| position_y | FLOAT | 0 | 路径点Y坐标 |
| position_z | FLOAT | 0 | 路径点Z坐标 |
| orientation | FLOAT | NULL | 到达后的朝向角度(弧度,0-2π) |
| delay | INT UNSIGNED | 0 | 到达后停留时间(毫秒) |
| point_comment | TEXT | NULL | 路径点注释 |
🔍 重要字段详解
🎯 entry - 路径ID
详细说明:entry 值对应
creature_template.entry 中设置了 MovementType=2(路径点移动)的生物。⏱️ delay - 停留时间
详细说明:生物到达路径点后停留的毫秒数。0=不停留
- 0 - 直接前往下一个点
- 3000 - 停留3秒后继续
- 60000 - 停留1分钟
💡 实战案例
创建护卫巡逻路径(4个点)
entry=100001 的生物在两个岗哨之间来回巡逻
-- 岗哨A → 岗哨B: 4个路径点的巡逻路线
INSERT INTO waypoints (entry, pointid, position_x, position_y, position_z, delay)
VALUES
(100001, 1, -8840.5, 630.2, 94.1, 5000),
(100001, 2, -8820.0, 640.5, 94.1, 0),
(100001, 3, -8800.0, 650.0, 94.1, 5000),
(100001, 4, -8780.0, 640.0, 94.1, 0);查询某生物的巡逻路径
SELECT pointid, position_x, position_y, position_z, delay, point_comment
FROM waypoints
WHERE entry = 100001
ORDER BY pointid;❓ 常见问题
Q: waypoints 和 waypoint_data 有什么区别?
waypoints 是旧版系统,只支持简单坐标行走。新版 waypoint_data 功能更强大,支持到达后执行动作(如说话、施法)、延迟、朝向设置等。建议新内容使用 waypoint_data。
Q: 生物不动了怎么办?
检查:1) creature_template 的 MovementType 是否设为 2;2) waypoints 表中是否有该 entry 的路径点数据;3) 路径点坐标是否在地图可到达区域;4) pointid 序号是否正确(从1开始连续)。