Thread: map/zone IDs
View Single Post
08-09-16, 06:26 AM   #3
Benio
A Murloc Raider
Join Date: Jul 2016
Posts: 8
Using GetMapContinents function, you get a list of continents with their ids:

Code:
Dump: value=GetMapContinents()
[1]=13,
[2]="Kalimdor",
[3]=14,
[4]="Eastern Kingdoms",
[5]=466,
[6]="Outland",
[7]=485,
[8]="Northrend",
[9]=751,
[10]="The Maelstrom",
[11]=862,
[12]="Pandaria",
[13]=962,
[14]="Draenor",
[15]=1007,
[16]="Broken Isles"
For n ≥1; 2n −1th argument is the id of continent, 2nth argument is the name of continent.

Then, call GetMapZones(n) for each continent.
Note: Pass n, NOT id of continent.

When passing n =7, we get Draenor Zones with Zones id:

Code:
Dump: value=GetMapZones(7);
[1]=978,
[2]="Ashran",
[3]=941,
[4]="Frostfire Ridge",
[5]=949,
[6]="Gorgrond",
[7]=950,
[8]="Nagrand",
[9]=947,
[10]="Shadowmoon Valley",
[11]=948,
[12]="Spires of Arak",
Return format is same like for continents.
Finally, call GetMapSubzones(zoneID) where zoneID is id of zone returned by GetMapZones 2n −1th argument (as opposed to GetMapZones).

Example code, listing all subzones with their zones, with their continents (all with their corresponding ids):
Lua Code:
  1. local continents = {GetMapContinents()};
  2. for continentN =1, #continents /2 do
  3.     local continentID = continents[2* continentN -1];
  4.     local continentName = continents[2* continentN];
  5.     local zones = {GetMapZones(continentN)};
  6.     for zoneN =1, #zones /2 do
  7.         local zoneID = zones[2* zoneN -1];
  8.         local zoneName = zones[2* zoneN];
  9.         local subZones = {GetMapSubzones(zoneID)};
  10.         for subZoneN =1, #subZones /2 do
  11.             local subZoneID = zones[2* subZoneN -1];
  12.             local subZoneName = zones[2* subZoneN];
  13.            
  14.             print(continentName .."(" ..continentID .."): " ..zoneName .."(" ..zoneID .."): " ..subZoneName .."(" ..subZoneID ..")");
  15.         end;
  16.     end;
  17. end;

Legion output part:
Code:
Broken Isles(1007): Azsuna(1015): Azsuna(1015)
Broken Isles(1007): Highmountain(1024): Azsuna(1015)
Broken Isles(1007): Highmountain(1024): Broken Shore(1021)
Broken Isles(1007): Stormheim(1017): Azsuna(1015)
Broken Isles(1007): Stormheim(1017): Broken Shore(1021)
Broken Isles(1007): Stormheim(1017): Dalaran(1014)
Broken Isles(1007): Suramar(1033): Azsuna(1015)
Broken Isles(1007): Val'sharah(1018): Azsuna(1015)
Broken Isles(1007): Val'sharah(1018): Broken Shore(1021)
  • I can confirm that those IDs differs from ingame IDs using listed functions.
  • dev.battle.net API returns empty result for /wow/zone/6941. Master list also does not lists 6941:
    Code:
    {
        "status": "nok",
        "reason": "unable to get zone information."
    }
  • The whole ZONE API looks not returning those IDs (at least in EU if that have any meaning).
  Reply With Quote