diff options
Diffstat (limited to 'src')
-rwxr-xr-x | src/server/game/Spells/SpellEffects.cpp | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/src/server/game/Spells/SpellEffects.cpp b/src/server/game/Spells/SpellEffects.cpp index d1bb898d228..1d30b69588d 100755 --- a/src/server/game/Spells/SpellEffects.cpp +++ b/src/server/game/Spells/SpellEffects.cpp @@ -4472,7 +4472,7 @@ void Spell::EffectScriptEffect(SpellEffIndex effIndex) unitTarget->GetPosition(x, y, z); uint32 areaFlag = unitTarget->GetBaseMap()->GetAreaFlag(x, y, z); AreaTableEntry const *pArea = sAreaStore.LookupEntry(areaFlag); - if (canFly && pArea->flags & AREA_FLAG_NO_FLY_ZONE) + if (canFly && (pArea && pArea->flags & AREA_FLAG_NO_FLY_ZONE) || !pArea) canFly = false; switch(unitTarget->ToPlayer()->GetBaseSkillValue(SKILL_RIDING)) @@ -4517,7 +4517,7 @@ void Spell::EffectScriptEffect(SpellEffIndex effIndex) unitTarget->GetPosition(x, y, z); uint32 areaFlag = unitTarget->GetBaseMap()->GetAreaFlag(x, y, z); AreaTableEntry const *pArea = sAreaStore.LookupEntry(areaFlag); - if (canFly && pArea->flags & AREA_FLAG_NO_FLY_ZONE) + if (canFly && (pArea && pArea->flags & AREA_FLAG_NO_FLY_ZONE) || !pArea) canFly = false; switch(unitTarget->ToPlayer()->GetBaseSkillValue(SKILL_RIDING)) @@ -4842,7 +4842,7 @@ void Spell::EffectScriptEffect(SpellEffIndex effIndex) unitTarget->GetPosition(x, y, z); uint32 areaFlag = unitTarget->GetBaseMap()->GetAreaFlag(x, y, z); AreaTableEntry const *pArea = sAreaStore.LookupEntry(areaFlag); - if (canFly && pArea->flags & AREA_FLAG_NO_FLY_ZONE) + if (canFly && (pArea && pArea->flags & AREA_FLAG_NO_FLY_ZONE) || !pArea) canFly = false; switch(unitTarget->ToPlayer()->GetBaseSkillValue(SKILL_RIDING)) @@ -4888,7 +4888,7 @@ void Spell::EffectScriptEffect(SpellEffIndex effIndex) unitTarget->GetPosition(x, y, z); uint32 areaFlag = unitTarget->GetBaseMap()->GetAreaFlag(x, y, z); AreaTableEntry const *pArea = sAreaStore.LookupEntry(areaFlag); - if (canFly && pArea->flags & AREA_FLAG_NO_FLY_ZONE) + if (canFly && (pArea && pArea->flags & AREA_FLAG_NO_FLY_ZONE) || !pArea) canFly = false; switch(unitTarget->ToPlayer()->GetBaseSkillValue(SKILL_RIDING)) @@ -4951,7 +4951,7 @@ void Spell::EffectScriptEffect(SpellEffIndex effIndex) unitTarget->GetPosition(x, y, z); uint32 areaFlag = unitTarget->GetBaseMap()->GetAreaFlag(x, y, z); AreaTableEntry const *pArea = sAreaStore.LookupEntry(areaFlag); - if (canFly && pArea->flags & AREA_FLAG_NO_FLY_ZONE) + if (canFly && (pArea && pArea->flags & AREA_FLAG_NO_FLY_ZONE) || !pArea) canFly = false; switch(unitTarget->ToPlayer()->GetBaseSkillValue(SKILL_RIDING)) |