the area must have the right areaflag, see above me.
but this allone is not enough under trinitycore.
the core self is checking can the player fly in this map.
so you will fly in a custom map, then must you change some thinks in the core files from trinitycore.
spells_generic.cpp
here you search following line in this cpp:
if (map == 530 || (map == 571 && target->HasSpell(SPELL_COLD_WEATHER_FLYING)))
this change you to:
if (map == 530 || (map == 571 && target->HasSpell(SPELL_COLD_WEATHER_FLYING)) || map = yourmapid)
but this is not all.
in the spellinfo.cpp ist following checking:
!mapEntry->IsContinent()
so your map is not a continent for the core, switch in this cpp:
DBCStructure.h
here search you following code line:
bool IsContinent() const
{
- return MapID == 0 || MapID == 1 || MapID == 530 || MapID == 571;
+ return MapID == 0 || MapID == 1 || MapID == 530 || MapID == 571;
}
this change you in this:
bool IsContinent() const
{
- return MapID == 0 || MapID == 1 || MapID == 530 || MapID == 571;
+ return MapID == 0 || MapID == 1 || MapID == 530 || MapID == 571 || MapID == yourmapid;
}
Now you compiling the core and then you can fly in custom map.
before extract the current map files whit the new map/areas.