Fly old Maps

Hello,

I will Fly on the Old Maps Kalimdor and Eastern Kindoms in the Core i haved changed

spell_generic.cpp

// Triggered spell id dependent on riding skill and zone
bool canFly = false;
uint32 map = GetVirtualMapForMapAndZone(target->GetMapId(), target->GetZoneId());
if (map == 530 || (map == 571 && target->HasSpell(SPELL_COLD_WEATHER_FLYING)))
canFly = true;

to

// Triggered spell id dependent on riding skill and zone
bool canFly = false;
uint32 map = GetVirtualMapForMapAndZone(target->GetMapId(), target->GetZoneId());
if (map == 530 || (map == 571 && target->HasSpell(SPELL_COLD_WEATHER_FLYING)) || map == 0 || map == 1)
canFly = true;

but is not works the game say “You can’t use this here”

Core is “898ecf7222fb+ 2014-11-17 12:35:06 +0000 (3.3.5 branch)

Do I need to change more?

Is this just for yourself to explore the maps or for players in general?

for all Players but have no one
its a Test for myself

Ok. If it was simply to explore the maps easier/faster, I would have just suggested using GM flight capabilities (GM mode doesn’t have to be active for that to work, either). Perhaps the mount summoning spells also have a map check on them. The code is quite different in this instance between 3.3.5 and 4.3.4. I play with the 4.3.4 branch, so I will admit that I am only guessing as to where else you need to look.

I know that i can fly with the gm commands etc but its not the same with a Mount

mhh a little bit of Map/Zone Checks i have found but is it for Dalaran and Wintergrasp…

and the Flag AREA_FLAG_NO_FLY_ZONE has the Number = 536870912 but i don’t know more about this

but i comment it out

float x, y, z;
target->GetPosition(x, y, z);
uint32 areaFlag = target->GetBaseMap()->GetAreaFlag(x, y, z);
AreaTableEntry const* area = sAreaStore.LookupEntry(areaFlag);
if (!area || (canFly && (area->flags & AREA_FLAG_NO_FLY_ZONE)))
canFly = false;

it also not works the game say “you can’t use this here”

Spell.cpp

case SPELL_AURA_FLY:
case SPELL_AURA_MOD_INCREASE_MOUNTED_FLIGHT_SPEED:
{
// not allow cast fly spells if not have req. skills (all spells is self target)
// allow always ghost flight spells
if (m_originalCaster && m_originalCaster->GetTypeId() == TYPEID_PLAYER && m_originalCaster->IsAlive())
{
Battlefield* Bf = sBattlefieldMgr->GetBattlefieldToZoneId(m_originalCaster->GetZoneId());
if (AreaTableEntry const* area = GetAreaEntryByAreaID(m_originalCaster->GetAreaId()))
if (area->flags & AREA_FLAG_NO_FLY_ZONE || (Bf && !Bf->CanFlyIn()))
return (_triggeredCastFlags & TRIGGERED_DONT_REPORT_CAST_ERROR) ? SPELL_FAILED_DONT_REPORT : SPELL_FAILED_NOT_HERE;

            }
            break;

i have this also comment out but don’t works i don’t know where is it blocked from the Code to Fly in Kalimdor and Eastern Kindoms…

Maybe there is something in the map data that tells the server if flight is allowed. Have you checked the map processing source for anything related to it? As i said, I’m really just guessing. Even on 4.3.4, I don’t waste time with mounts. GM flight and fly speed adjustments are much faster. There are so many large maps to explore that wouldn’t be allowing mounts at all, but GM flight lets me go where I want to. It’s quite amazing to see how much map data is completely wasted for things because there was absolutely no way for normal users to see the rendered results. Just think about how much smaller the maps could have been if that extra data wasn’t even there.

Granted, the mounts are different than GM flight. However, no mount can move around at 2500% movement rate. That isn’t even the limit, but that’s already faster than my client can load the texture data (yeah, I’ve been running the client on a rather limited system rather than my main system). I could also make it move as slow as the mounts, but that just defeats the point of being the server admin, if you ask me. It’s the “I am GOD here” syndrome, even without turning GM mode on.

As for 3.3.5 flying mounts on maps 0 and 1, I guess I’ll just have to leave this thread for someone else to answer, assuming the map handling suggestion doesn’t get you fixed up.

AFAIK client checks if you can start using the item on maps 0 and 1. But you can start flying on map 530 and continue flying on 0/1.

Ah ok if i read it right you say i cant fly on the map/zone because the Client ckeck it first so i need to edit the client to fly in the old World

Ok thanks for all answers

But Client edit dbc edit etc is to many work for my tests

You can create a custom item to “cast” the flying mount spell /emoticons/default_smile.png

Yeah i know but thats not this i want but thanks i wil try it with the items or i will abort the test it is not so important but nice to known