pet_aura 宠物光环表
基于 AzerothCore 官方数据库 · Characters 库 · 存储宠物身上的Buff/Debuff效果
表概述
pet_aura 表存储宠物(猎人宠物、术士恶魔等)身上的光环效果(Buff/Debuff)。结构与 character_aura 类似,但专门服务于宠物。
核心概念:宠物身上的所有增益/减益效果数据都存储在此表。包括光环的施法者、持续时间、叠加层数、effect数值等。
表结构
| 字段名 | 数据类型 | 默认值 | 说明 |
|---|---|---|---|
| guid | INT UNSIGNED | 0 | 宠物GUID → character_pet.id |
| casterGuid | BIGINT UNSIGNED | 0 | 施法者完整GUID |
| spell | INT UNSIGNED | 0 | 光环技能ID → Spell.dbc |
| effectMask | TINYINT UNSIGNED | 0 | 生效的效果掩码 |
| recalculateMask | TINYINT UNSIGNED | 0 | 需要重新计算的效果掩码 |
| stackCount | TINYINT UNSIGNED | 1 | 叠加层数 |
| amount0/1/2 | INT | 0/NULL | 效果0/1/2的当前数值 |
| base_amount0/1/2 | INT | 0/NULL | 效果0/1/2的基础数值 |
| maxDuration | INT | 0 | 最大持续时间(毫秒) |
| remainTime | INT | 0 | 剩余时间(毫秒) |
| remainCharges | TINYINT UNSIGNED | 0 | 剩余充能次数 |
重要字段详解
effectMask / recalculateMask
详细说明:按位标记控制光环效果。按位运算
- effectMask:标记哪些技能效果正在生效(位0=效果0 位1=效果1 位2=效果2)
- recalculateMask:标记哪些效果需要重新计算(属性变化时)
- 例如 effectMask=7 表示三个效果全部生效
amount / base_amount
详细说明:每个技能最多3个效果(amount0-2)。
- base_amount:基础数值(不受加成影响)
- amount:当前实际数值(受法术强度/属性加成后)
- 例如一个Buff增加100力量(base_amount0=100),由于天赋加成变为115(amount0=115)
SQL示例:查看宠物光环 →
SELECT * FROM pet_aura WHERE guid=宠物GUID;SQL查询示例
-- 查看某宠物的所有光环列表
SELECT pa.spell, pa.stackCount, pa.remainTime / 1000 AS remain_seconds
FROM pet_aura pa
WHERE pa.guid = 宠物GUID
ORDER BY pa.remainTime DESC;-- 清除宠物的所有光环
DELETE FROM pet_aura WHERE guid = 宠物GUID;-- 查找有特定光环的所有宠物
SELECT DISTINCT guid
FROM pet_aura
WHERE spell = 光环技能ID;常见问题
Q: pet_aura 和 character_aura 有什么区别?
结构相同但作用对象不同。pet_aura 存储宠物(guid→character_pet.id)的光环,character_aura 存储角色(guid→characters.guid)的光环。
Q: 宠物消失后光环数据会不会残留?
正常情况下宠物解散/死亡时会清除光环。如果出现残留,可手动清理:DELETE FROM pet_aura WHERE guid NOT IN (SELECT id FROM character_pet);