diff --git a/src/game/Spell.cpp b/src/game/Spell.cpp index f94b221..2b97e43 100644 --- a/src/game/Spell.cpp +++ b/src/game/Spell.cpp @@ -4210,7 +4210,7 @@ uint8 Spell::CanCast(bool strict) if(m_caster->GetTypeId()==TYPEID_PLAYER) { u int 32 v_map = GetVirtualMapForMapAndZone(m_caster->GetMapId(), m_caster->GetZoneId()); - if( !((Player*)m_caster)->isGameMaster() && v_map != 530 && !(v_map == 571 && ((Player*)m_caster)->HasSpell(54197))) + if( !((Player*)m_caster)->isGameMaster() && v_map != 530 && v_map != 580 && v_map != 571) return SPELL_FAILED_NOT_HERE; } Суть заключается в том, чтобы при проверке зоны 530(Азерот) можно было использовать спел 54197. Работоспособность патча я не проверял, возможно работает. Также, можно просто попробовать вставить в src/game/Spell.cpp строчку:
GetVirtualMapForMapAndZone(m_caster->GetMapId(),m_caster->GetZoneId()) != 530)
Вот выписки из spell.cpp, связанные с маунтом.
case SPELL_AURA_MOD_INCREASE_FLIGHT_SPEED: case SPELL_AURA_FLY: { // not allow cast fly spells at old maps by players (all spells is self target) if(m_caster->GetTypeId()==TYPEID_PLAYER) { i f( !((Player*)m_caster)->IsAllowUseFlyMountsHere() ) return SPELL_FAILED_NOT_HERE; }
case SPELL_AURA_MOUNTED: { if (m_caster->IsInWater()) return SPELL_FAILED_ONLY_ABOVEWATER; if (m_caster->GetTypeId()==TYPEID_PLAYER && ((Player*)m_caster)->GetTransport()) return SPELL_FAILED_NO_MOUNTS_ALLOWED; // Ignore map check if spell have AreaId. AreaId already checked and this prevent special mount spells if (m_caster->GetTypeId()==TYPEID_PLAYER && !sMapStore.LookupEntry(m_caster->GetMapId())->IsMountAllowed() && !m_IsTriggeredSpell && !m_spellInfo->AreaGroupId) return SPELL_FAILED_NO_MOUNTS_ALLOWED;
// zone check if(uint8 res= GetSpellAllowedInLocationError(m_spellInfo,m_caster->GetMapId(),m_caster->GetZoneId(),m_caster->GetAreaId())) r e tu rn res; // not let players cast spells at mount (and let do it to creatures) if( m_caster->IsMounted() && m_caster->GetTypeId()==TYPEID_PLAYER && !m_IsTriggeredSpell && !IsPassiveSpell(m_spellInfo->Id) && !(m_spellInfo->Attributes & SPELL_ATTR_CASTABLE_WHILE_MOUNTED) ) { if(m_caster->isInFlight()) return SPELL_FAILED_NOT_FLYING; else return SPELL_FAILED_NOT_MOUNTED; }
Что хочу добавить от себя: ждите катаклизма и будет флай по азероту!