waypoint_data表是AzerothCore中的路径点系统核心表格,用于定义生物的移动路径。通过设置一系列路径点,可以让NPC按照预定的路线进行巡逻、移动或执行特定的行为模式。
字段名 | 数据类型 | 默认值 | 说明 |
---|---|---|---|
id | INT UNSIGNED | 0 | 路径ID |
point | MEDIUMINT UNSIGNED | 0 | 路径点序号 |
position_x | FLOAT | 0 | X坐标 |
position_y | FLOAT | 0 | Y坐标 |
position_z | FLOAT | 0 | Z坐标 |
orientation | FLOAT | 0 | 朝向角度 |
delay | INT UNSIGNED | 0 | 停留时间(毫秒) |
move_type | INT | 0 | 移动类型 |
action | INT | 0 | 动作ID |
action_chance | SMALLINT | 100 | 动作触发概率 |
wpguid | INT | 0 | 路径点GUID |
路径的唯一标识符,同一个路径的所有路径点必须使用相同的ID。这个ID通常对应:
路径点在整个路径中的顺序编号,从1开始递增。生物会按照point的顺序依次移动到各个路径点。
路径点在游戏世界中的三维坐标位置。可以通过以下方式获取:
生物到达路径点后的朝向角度,以弧度为单位(0-2π):
生物到达路径点后的停留时间,以毫秒为单位:
值 | 移动类型 | 说明 |
---|---|---|
0 | WAYPOINT_MOVE_TYPE_WALK | 步行移动 |
1 | WAYPOINT_MOVE_TYPE_RUN | 跑步移动 |
2 | WAYPOINT_MOVE_TYPE_LAND | 着陆移动 |
3 | WAYPOINT_MOVE_TYPE_TAKEOFF | 起飞移动 |
生物到达路径点时执行的动作ID,对应waypoint_scripts表中的id字段。如果为0则不执行任何脚本。
动作执行的概率,范围0-100:
场景:守卫在城门附近来回巡逻
id | point | position_x | position_y | position_z | delay | move_type |
---|---|---|---|---|---|---|
12345 | 1 | -8913.23 | 554.633 | 93.0517 | 3000 | 0 |
12345 | 2 | -8923.45 | 564.123 | 93.0517 | 5000 | 0 |
12345 | 3 | -8933.67 | 574.456 | 93.0517 | 3000 | 0 |
场景:NPC在特定路径点执行动作(如说话、表情等)
id | point | position_x | position_y | position_z | delay | action | action_chance |
---|---|---|---|---|---|---|---|
67890 | 1 | -8913.23 | 554.633 | 93.0517 | 0 | 0 | 100 |
67890 | 2 | -8923.45 | 564.123 | 93.0517 | 10000 | 101 | 100 |
67890 | 3 | -8933.67 | 574.456 | 93.0517 | 5000 | 102 | 50 |
说明:在路径点2停留10秒并执行脚本101,在路径点3有50%概率执行脚本102
首先需要在creature表中设置生物的MovementType为2(路径点移动):
在waypoint_data表中插入路径点数据:
使用GM命令重载路径数据:
waypoint_data表经常与以下表格配合使用: