Howdy,So I've been trying to extract vmaps from my own maps for quite some time now, but without any real success.My maps consist of a WDL, a WDT and the ADTs of course. My patch is named patch-enUS-4.MPQ and is located in DataenUS...I'm using the 4.1 vmap extractor, and yes I have extracted the maps without any issues. The vmap extractor finishes without any errors, but once in-game there is no LoS at all, not M2s, WMOs or even the terrain.I tried copying a few blizzard ADTs and put them on one of my own maps. When I do this I get a little bit of LoS working, but only on WMOs. It's still not working with M2s or with the terrain.Any help or pointers would be deeply appreciated since I've been stuck with this problem for far too long.Thanks in advance!
From memory, the tool looks for:"DataenUSpatch-x-enUS.mpq"Where x increments by 1 until it doesn't exist. The DBC files must be in here.Then it looks in:"Datapatch-x.mpq"Where x increments from 1 until it doesn't exist. The map data must be in here.You must extract maps, then vmaps, then assemble mmaps if you use them from those two.If it still doesn't work, check which maps are being found and which files are produced.It is possible that TrinityCore's version of maps/vmaps can no longer process Noggit data.
bool fillArchiveNameVector(std::vector<std::string>& pArchiveNames){ if(!hasInputPathParam) getGamePath(); printf("nGame path: %sn", input_path); char path[512]; string in_path(input_path); std::vector<std::string> locales, searchLocales; searchLocales.push_back("enGB"); searchLocales.push_back("enUS"); searchLocales.push_back("deDE"); searchLocales.push_back("esES"); searchLocales.push_back("frFR"); searchLocales.push_back("koKR"); searchLocales.push_back("zhCN"); searchLocales.push_back("zhTW"); searchLocales.push_back("enCN"); searchLocales.push_back("enTW"); searchLocales.push_back("esMX"); searchLocales.push_back("ruRU"); for (std::vector<std::string>::iterator i = searchLocales.begin(); i != searchLocales.end(); ++i) { std::string localePath = in_path + *i; // check if locale exists: struct stat status; if (stat(localePath.c_str(), &status)) continue; if ((status.st_mode & S_IFDIR) == 0) continue; printf("Found locale '%s'n", i->c_str()); locales.push_back(*i); } printf("n"); // open locale expansion and common files printf("Adding data files from locale directories.n"); for (std::vector<std::string>::iterator i = locales.begin(); i != locales.end(); ++i) { pArchiveNames.push_back(in_path + *i + "/locale-" + *i + ".MPQ"); pArchiveNames.push_back(in_path + *i + "/expansion-locale-" + *i + ".MPQ"); pArchiveNames.push_back(in_path + *i + "/lichking-locale-" + *i + ".MPQ"); } // open expansion and common files pArchiveNames.push_back(input_path + string("common.MPQ")); pArchiveNames.push_back(input_path + string("common-2.MPQ")); pArchiveNames.push_back(input_path + string("expansion.MPQ")); pArchiveNames.push_back(input_path + string("lichking.MPQ")); // now, scan for the patch levels in the core dir printf("Scanning patch levels from data directory.n"); sprintf(path, "%spatch", input_path); if (!scan_patches(path, pArchiveNames)) return(false); // now, scan for the patch levels in locale dirs printf("Scanning patch levels from locale directories.n"); bool foundOne = false; for (std::vector<std::string>::iterator i = locales.begin(); i != locales.end(); ++i) { printf("Locale: %sn", i->c_str()); sprintf(path, "%s%s/patch-%s", input_path, i->c_str(), i->c_str()); if(scan_patches(path, pArchiveNames)) foundOne = true; } printf("n"); if(!foundOne) { printf("no locale foundn"); return false; } return true;}
Here is the code for reference:Code: [Select]...It should be printing the archives found. Does it print your MPQs?
...
Oh also, each ADT is found and processed. The files are only 1-2kb though, not sure if this is normal or not.
Quote from: "stoneharry"Here is the code for reference:Code: [Select]...It should be printing the archives found. Does it print your MPQs?Yeah, it does.QuoteOh also, each ADT is found and processed. The files are only 1-2kb though, not sure if this is normal or not.
Then TrinityCore's format is probably not supported by Noggit. *shrug*
Quote from: "stoneharry"Then TrinityCore's format is probably not supported by Noggit. *shrug*Hmm, I have a hard time believing that since I seem to be the only one with this issue :xIt would be nice if someone else could try and see if this really is the case.
I've pulled this off, easily.Copy all your wow MPQ files into a sep folder, make sure that the directories remain intact.So, in a seperate clean folder you should have "data" then in data will be all the normal MPQ files, then another folder called "enXX" with all your clients localization MPQ files.Open up each normal MPQ file with an MPQ editor, and drag your "world" folder into it that you've edited with noggit.Repeat this process for each MPQ file.Then run your Vmaps batch file and you're home free.Worked for me on multiple occasions.*Edit* Only realized the post date after posting this, sorry, delete if necessary.
bump :x