Updated - 100% Works with all Ascent/NCDB revisions - even 2400+
I've decided to make a single guide/thread for this, since it is in such high demand. All the rumored bugs are easy to work around, and is quite worth the cool feature this add to your gaming server!
The best idea.. if you plan to add this to your server. Is to do what we did, and make them rare items. Most the rumored bugs that come with flying mounts in Azeroth are, flying to high, and ending up in a different town or area. Flying over major mobs to get to larger loot mobs/bosses (useless on highrate servers, since all good loot is in outlands). Using them in instances... which can be worked around by making the item cast a normal mount spell. Lagging the server is not true, this mostly clientside, which does not work the server much harder at all, but could cause low end computer players to lag. Em, other than that, they are pretty cool.
Also, for latest Ascent revisions, there was a couple changes to make it work right. Here's another guide, just for that.
Please Leave Comments and a Thank You!You will have to modify the following files: Player.cpp, SpellAuras.cpp & Unit.cpp
In Player.cpp you will need to search and replace 3 items
First search for:
!=530
and replace it with
>580
then search for:
!= 530
(yes, just add a space) and replace it with
> 580
All 3 will look something like
Code:if(flying_aura && MapID > 580)
In SpellAuras.cpp you will need to search for
Aura::SpellAuraEnableFlight(bool apply)
Replace the "else" with "if(!apply)" which should look like this:
Now for the last. In Unit.cpp:Code:void Aura::SpellAuraEnableFlight(bool apply) { if(m_target->IsPlayer()) { static_cast<Player*>(m_target)->FlyCheat = apply; static_cast<Player*>(m_target)->flying_aura = m_spellProto->Id; } if(apply) { m_target->EnableFlight(true); m_target->m_flyspeedModifier += mod->m_amount; m_target->UpdateSpeed(true); } if (!apply) //replaced else with: if(!apply) to allow flying mounts in the old lands { m_target->DisableFlight(true); m_target->m_flyspeedModifier -= mod->m_amount; m_target->UpdateSpeed(true); } }
Find and replace:
if(m_mapId != 530)
with
if(m_mapId > 580)
Now Compile, and once it is finished, create an item that will cast the mount you desire on equip. The current items will not work with this change (they still work in the Outlands as normal) so you will have to create some new items for it to work.Code:if(m_mapId != 530) //Change this to > 580 { for(uint32 i = 0; i < -1; ++i) { Can't use flying auras in non-outlands. if(aur->GetSpellProto()->EffectApplyAuraName[i] == 208 || aur->GetSpellProto()->EffectApplyAuraName[i] == 207) { delete aur; return; } } }
Such as:
Charm of the Phoenix - Trinket, Summons "Peep the Phoenix" when equip.
Code:INSERT INTO items VALUES (90001, 4, 0, -1, "Charm of the Phoenix", "Charm of the Phoenix", "Charm of the Phoenix", "Charm of the Phoenix", 43430, 3, 0, 0, 0, 12, -1, -1, 128, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40192, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, "", 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 225, 0);
PS: I will update later and add custom mounts items that will not work in instances/indoors for you guys.



Reply With Quote![[Ascent] Flying Mounts in Azeroth - Full Guide](http://ragezone.com/hyper728.png)


