Core/Players
* Add liquid special aura only if player is in it (not when above) * Use CastSpell instead of AddAura - checks all dbc conditions on spell
This commit is contained in:
@@ -864,6 +864,14 @@ uint32 const* GetTalentTabPages(uint8 cls)
|
||||
return sTalentTabPages[cls];
|
||||
}
|
||||
|
||||
uint32 GetLiquidFlags(uint32 liquidType)
|
||||
{
|
||||
if (LiquidTypeEntry const* liq = sLiquidTypeStore.LookupEntry(liquidType))
|
||||
return 1 << liq->Type;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
// script support functions
|
||||
DBCStorage <SoundEntriesEntry> const* GetSoundEntriesStore() { return &sSoundEntriesStore; }
|
||||
DBCStorage <SpellRangeEntry> const* GetSpellRangeStore() { return &sSpellRangeStore; }
|
||||
|
||||
@@ -60,6 +60,8 @@ MapDifficulty const* GetDownscaledMapDifficultyData(uint32 mapId, Difficulty &di
|
||||
|
||||
uint32 const* /*[MAX_TALENT_TABS]*/ GetTalentTabPages(uint8 cls);
|
||||
|
||||
uint32 GetLiquidFlags(uint32 liquidType);
|
||||
|
||||
PvPDifficultyEntry const* GetBattlegroundBracketByLevel(uint32 mapid, uint32 level);
|
||||
PvPDifficultyEntry const* GetBattlegroundBracketById(uint32 mapid, BattlegroundBracketId id);
|
||||
|
||||
|
||||
@@ -23075,7 +23075,12 @@ void Player::UpdateUnderwaterState(Map* m, float x, float y, float z)
|
||||
RemoveAurasDueToSpell(_lastLiquid->SpellId);
|
||||
|
||||
if (liquid && liquid->SpellId)
|
||||
AddAura(liquid->SpellId, this);
|
||||
{
|
||||
if (res & (LIQUID_MAP_UNDER_WATER | LIQUID_MAP_IN_WATER | LIQUID_MAP_WATER_WALK))
|
||||
CastSpell(this, liquid->SpellId, this);
|
||||
else
|
||||
RemoveAurasDueToSpell(liquid->SpellId);
|
||||
}
|
||||
|
||||
_lastLiquid = liquid;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user