mirror of
https://github.com/mangosfour/server.git
synced 2025-12-13 13:37:05 +00:00
[11610] Select proper spell difficulty subtitution.
Fix mostly affect cases when absent 25-man difficulties spell version. Signed-off-by: VladimirMangos <vladimir@getmangos.com>
This commit is contained in:
parent
753b0cd969
commit
3a60c4ae3b
4 changed files with 10 additions and 8 deletions
|
|
@ -319,7 +319,7 @@ Spell::Spell( Unit* caster, SpellEntry const *info, bool triggered, ObjectGuid o
|
|||
|
||||
if (info->SpellDifficultyId && caster->GetTypeId() != TYPEID_PLAYER && caster->IsInWorld() && caster->GetMap()->IsDungeon())
|
||||
{
|
||||
if (SpellEntry const* spellEntry = GetSpellEntryByDifficulty(info->SpellDifficultyId, caster->GetMap()->GetDifficulty()))
|
||||
if (SpellEntry const* spellEntry = GetSpellEntryByDifficulty(info->SpellDifficultyId, caster->GetMap()->GetDifficulty(), caster->GetMap()->IsRaid()))
|
||||
m_spellInfo = spellEntry;
|
||||
else
|
||||
m_spellInfo = info;
|
||||
|
|
|
|||
|
|
@ -4496,16 +4496,18 @@ bool SpellArea::IsFitToRequirements(Player const* player, uint32 newZone, uint32
|
|||
return true;
|
||||
}
|
||||
|
||||
SpellEntry const* GetSpellEntryByDifficulty(uint32 id, Difficulty difficulty)
|
||||
SpellEntry const* GetSpellEntryByDifficulty(uint32 id, Difficulty difficulty, bool isRaid)
|
||||
{
|
||||
SpellDifficultyEntry const* spellDiff = sSpellDifficultyStore.LookupEntry(id);
|
||||
|
||||
if (!spellDiff)
|
||||
return NULL;
|
||||
|
||||
if (!spellDiff->spellId[difficulty])
|
||||
return NULL;
|
||||
for (Difficulty diff = difficulty; diff >= REGULAR_DIFFICULTY; diff = GetPrevDifficulty(diff, isRaid))
|
||||
{
|
||||
if (spellDiff->spellId[diff])
|
||||
return sSpellStore.LookupEntry(spellDiff->spellId[difficulty]);
|
||||
}
|
||||
|
||||
SpellEntry const* spellEntry = sSpellStore.LookupEntry(spellDiff->spellId[difficulty]);
|
||||
return spellEntry;
|
||||
return NULL;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -531,7 +531,7 @@ bool IsDiminishingReturnsGroupDurationLimited(DiminishingGroup group);
|
|||
DiminishingReturnsType GetDiminishingReturnsGroupType(DiminishingGroup group);
|
||||
int32 GetDiminishingReturnsLimitDuration(DiminishingGroup group, SpellEntry const* spellproto);
|
||||
|
||||
SpellEntry const* GetSpellEntryByDifficulty(uint32 id, Difficulty difficulty);
|
||||
SpellEntry const* GetSpellEntryByDifficulty(uint32 id, Difficulty difficulty, bool isRaid);
|
||||
|
||||
// Spell proc event related declarations (accessed using SpellMgr functions)
|
||||
enum ProcFlags
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
#ifndef __REVISION_NR_H__
|
||||
#define __REVISION_NR_H__
|
||||
#define REVISION_NR "11609"
|
||||
#define REVISION_NR "11610"
|
||||
#endif // __REVISION_NR_H__
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue