waypoint_data表

概述

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)

路径的唯一标识符,同一个路径的所有路径点必须使用相同的ID。这个ID通常对应:

point (路径点序号)

路径点在整个路径中的顺序编号,从1开始递增。生物会按照point的顺序依次移动到各个路径点。

position_x, position_y, position_z (坐标)

路径点在游戏世界中的三维坐标位置。可以通过以下方式获取:

orientation (朝向角度)

生物到达路径点后的朝向角度,以弧度为单位(0-2π):

delay (停留时间)

生物到达路径点后的停留时间,以毫秒为单位:

move_type (移动类型)

移动类型 说明
0 WAYPOINT_MOVE_TYPE_WALK 步行移动
1 WAYPOINT_MOVE_TYPE_RUN 跑步移动
2 WAYPOINT_MOVE_TYPE_LAND 着陆移动
3 WAYPOINT_MOVE_TYPE_TAKEOFF 起飞移动

action (动作ID)

生物到达路径点时执行的动作ID,对应waypoint_scripts表中的id字段。如果为0则不执行任何脚本。

action_chance (动作触发概率)

动作执行的概率,范围0-100:

使用示例

示例1:简单的巡逻路径

场景:守卫在城门附近来回巡逻

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

示例2:带脚本的复杂路径

场景: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

路径配置步骤

1. 设置生物移动类型

首先需要在creature表中设置生物的MovementType为2(路径点移动):

UPDATE creature SET MovementType = 2 WHERE guid = 12345;

2. 创建路径点数据

在waypoint_data表中插入路径点数据:

INSERT INTO waypoint_data (id, point, position_x, position_y, position_z, delay) VALUES
(12345, 1, -8913.23, 554.633, 93.0517, 3000),
(12345, 2, -8923.45, 564.123, 93.0517, 5000),
(12345, 3, -8933.67, 574.456, 93.0517, 3000);

3. 重载路径数据

使用GM命令重载路径数据:

.reload waypoint_data

注意事项

⚠️ 重要提醒

相关表格

waypoint_data表经常与以下表格配合使用: