📊 表结构
| 字段名 | 数据类型 | 默认值 | 说明 |
|---|---|---|---|
| leaderGUID | INT UNSIGNED | 0 | 队长GUID (主键1) |
| memberGUID | INT UNSIGNED | 0 | 队员GUID (主键2) |
| dist | FLOAT | 0 | 与队长的距离 |
| angle | FLOAT | 0 | 相对队长角度(弧度) |
| groupAI | INT UNSIGNED | 0 | 群体AI标志 |
| point_1 | SMALLINT UNSIGNED | 0 | 路径点1 |
| point_2 | SMALLINT UNSIGNED | 0 | 路径点2 |
🔑 核心字段详解
👑 leaderGUID - 队长GUID
详细说明:队形的领导者GUID,对应creature.guid。
取值范围:对应creature.guid
- 队长控制整个队形的移动
- 队长必须有自引用记录(memberGUID=leaderGUID)
- 队长通常有移动路径
👥 memberGUID - 队员GUID
详细说明:队形成员的GUID,可以是队长本身或其他生物。
取值范围:对应creature.guid
- 队长自引用:memberGUID=leaderGUID
- 队员跟随队长移动
- 一个队长可有多名队员
📏 dist - 距离
详细说明:队员与队长的距离(游戏码)。
取值范围:0.0 - 50.0+
- 2-5 - 紧密队形
- 5-10 - 标准队形
- 10-20 - 松散队形
- 队长自引用时dist=0
📐 angle - 角度
详细说明:队员相对于队长的角度,以弧度为单位。
取值范围:0.0 - 6.28 (0-2π)
- 0 - 正前方
- 1.57 (π/2) - 右侧
- 3.14 (π) - 正后方
- 4.71 (3π/2) - 左侧
🤖 groupAI - 群体AI标志
详细说明:控制队形的AI行为模式。
- 0 - 无特殊AI
- 1 - 跟随队长移动
- 2 - 战斗时协同作战
- 3 - 完全同步行为(跟随+协同)
📍 point_1/point_2 - 路径点
详细说明:定义队形在特定路径点的行为变化。
- 对应waypoint_data的point编号
- 0表示不使用路径点限制
- 可在特定路径点改变队形
💡 实际案例
双人巡逻 创建两人巡逻队
leaderGUID=12345, 队员跟在队长右后方
-- 队长自引用
INSERT INTO creature_formations VALUES(
12345, 12345, 0, 0, 3, 0, 0
);
-- 队员跟在右后方(angle=2.36)
INSERT INTO creature_formations VALUES(
12345, 12346, 3, 2.36, 3, 0, 0
);四人护卫 创建四人护卫队形
leaderGUID=10001, 左右后方各一名护卫
-- 队长
INSERT INTO creature_formations VALUES(10001, 10001, 0, 0, 3, 0, 0);
-- 左侧护卫(angle=4.71)
INSERT INTO creature_formations VALUES(10001, 10002, 3, 4.71, 3, 0, 0);
-- 右侧护卫(angle=1.57)
INSERT INTO creature_formations VALUES(10001, 10003, 3, 1.57, 3, 0, 0);
-- 后方护卫(angle=3.14)
INSERT INTO creature_formations VALUES(10001, 10004, 5, 3.14, 3, 0, 0);V字形 创建V字形冲锋队形
leaderGUID=20001, 左右翼各一名队员
-- 队长(前方尖兵)
INSERT INTO creature_formations VALUES(20001, 20001, 0, 0, 1, 0, 0);
-- 左翼(angle=3.93)
INSERT INTO creature_formations VALUES(20001, 20002, 4, 3.93, 1, 0, 0);
-- 右翼(angle=2.36)
INSERT INTO creature_formations VALUES(20001, 20003, 4, 2.36, 1, 0, 0);圆形 创建圆形保护队形
leaderGUID=30001, 四名队员围绕队长
-- 队长(中心)
INSERT INTO creature_formations VALUES(30001, 30001, 0, 0, 3, 0, 0);
-- 前方(angle=0)
INSERT INTO creature_formations VALUES(30001, 30002, 5, 0, 3, 0, 0);
-- 右方(angle=1.57)
INSERT INTO creature_formations VALUES(30001, 30003, 5, 1.57, 3, 0, 0);
-- 后方(angle=3.14)
INSERT INTO creature_formations VALUES(30001, 30004, 5, 3.14, 3, 0, 0);
-- 左方(angle=4.71)
INSERT INTO creature_formations VALUES(30001, 30005, 5, 4.71, 3, 0, 0);⚡ 快速参考
角度换算
| 0 | 正前方 |
| 1.57 | 右侧(π/2) |
| 3.14 | 正后方(π) |
| 4.71 | 左侧(3π/2) |
距离建议
| 2-5 | 紧密队形 |
| 5-10 | 标准队形 |
| 10-20 | 松散队形 |
groupAI标志
| 0 | 无特殊AI |
| 1 | 跟随移动 |
| 2 | 协同战斗 |
| 3 | 完全同步 |
队形要点
| 队长自引用 | 必须添加 |
| 队长路径 | waypoint_data |
| 队员跟随 | groupAI=3 |
🔗 相关表格
- creature - 生物实例表
- creature_template - 生物模板表
- waypoint_data - 移动路径数据
- creature_addon - 生物附加属性
❓ 常见问题
Q1: 队长自引用记录必须吗?
是的,队长必须有自引用记录(memberGUID=leaderGUID, dist=0, angle=0)。
Q2: 队形不工作怎么办?
检查队长是否有移动路径,groupAI设置是否正确,GUID是否有效。
Q3: 如何解散队形?
DELETE FROM creature_formations WHERE leaderGUID = 队长GUID。
Q4: 修改后需要重启吗?
不需要,使用命令 .reload creature_formations 重新加载。