• Страница 1 из 1
  • 1
Архив - только для чтения
Модератор форума: andycrowz  
Летающие(флай) маунты в Азероте.
Kreat{ER}
Маршал
Вопрос уже многократно подымался, но реального результата не было. Все, кто хоть чуть-чуть шарит в ядре, давайте поставим в этой "загадке" точку.

Начну:
Когда-то, бывшим модератор Атом, писал патч, чтобы флай маунты были доступны в Азероте:

Code
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)   
                     {   
                         uint32 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 строчку:
Code
GetVirtualMapForMapAndZone(m_caster->GetMapId(),m_caster->GetZoneId()) != 530)

Вот выписки из spell.cpp, связанные с маунтом.
Code
     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)   
                    {   
                        if( !((Player*)m_caster)->IsAllowUseFlyMountsHere() )   
                            return SPELL_FAILED_NOT_HERE;   
                    }

Code
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;

Code
// zone check   
        if(uint8 res= GetSpellAllowedInLocationError(m_spellInfo,m_caster->GetMapId(),m_caster->GetZoneId(),m_caster->GetAreaId()))   
            return 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;   
        }
Сообщение # 1 написано 27.02.2010 в 01:00
NonHuman
Скаут
муть dry
Сообщение # 2 написано 27.05.2010 в 17:54
StuffLive
Steam user
это в консоль базы мангос?
Сообщение # 3 написано 29.05.2010 в 18:58
Ka[SP]eR
S.T.A.L.K.E.R Fun
t-rex666, Это патч на ядро!
Сообщение # 4 написано 20.07.2010 в 04:53
lesha30
Сержант
помойму флай маунтов можно замутить в азероте через мангос.конф
Сообщение # 5 написано 06.08.2010 в 14:49
Kreat{ER}
Маршал
lesha30, если в ядре есть этот патч, то можно, так как mangos.conf, realmd.conf и scriptdev2.conf отображают начинку ядра.
Сообщение # 6 написано 06.08.2010 в 16:45
ph3n
Developer
Данная тема была перемещена из раздела Патчи в ядро MaNGOS.
Причина перемещения: устарело

Переместил: ph3n.
Сообщение # 7 написано 14.10.2012 в 13:33
  • Страница 1 из 1
  • 1
Поиск: