Jump to content

New Extractor for MaNGOS


Recommended Posts

Hi Everyone,

As part of my own learning exercise plus some ideas for improving mangos in the future I have built a new extractor.

Currently It only extracts the DBC from wow, but I intend to expand that to maps / vmaps / mmaps in time.

There are a few caveats though:-

it's written in vb.net and it uses the windows.net 4.0 libraries *UPDATED* now uses .Net 4.0

Comes with 2 exe's:-

a Console app ad2.exe - which is commandline compatible with the existing ad.exe

a Windows GUI app.

a 3rd party library MpqLib.dll is required (Supplied)

New Features:-

Extracts all DBC's and supports the cata/MOP DBC patching DBC's.

The same exe will extract dbc's from all five versions of wow without changes.

Can Export DBC data to SQL Files

Can Export DBC data to CSV Files

Can Export DBC structure to an XML file

I have done as much testing as I can for now and thought it was worth sharing with everyone here.

It can be found in the repo here: https://github.com/mangoszero/tools - MaNGOSExtractor

I would appreciate any feedback from people on it's use

I don't have a unix system that I can use so would also appreciate feedback from those that can build it using mono libraries on unix

Link to comment
Share on other sites

I'm not a c, c++ developer. I'm hoping eventually to lower the .net version but it's currently a pre-req of the 3rd party library.

I'm sure .net 4.5 is available to xp users.

Using mono, I'm led to believe that it will run on unix.

Link to comment
Share on other sites

I'm not a c, c++ developer. I'm hoping eventually to lower the .net version but it's currently a pre-req of the 3rd party library.

I'm sure .net 4.5 is available to xp users.

Using mono, I'm led to believe that it will run on unix.

Microsoft .NET Framework 4.5 :

System requirements

Supported operating systems: Windows 7 Service Pack 1, Windows Server 2008 R2 SP1, Windows Server 2008 Service Pack 2, Windows Vista Service Pack 2

Windows Vista SP2 (x86 and x64)

Windows 7 SP1 (x86 and x64)

Windows Server 2008 R2 SP1 (x64)

Windows Server 2008 SP2 (x86 and x64)


Link to comment
Share on other sites

I have changed the minimum .Net level to 4.0 rather than 4.5

I have updated this further so that it will now attempt to name the fields correctly.

- The master field list is by no means complete, so any updates would be appreciated,

Link to comment
Share on other sites

.Net? Nice! But why VB and not C#?


You should use the BackgroundWorker object so that the application is responding while the extraction "process" is running - otherwise the user can think that the app is crashed while he tries to interact with it.

Vb.Net is my primary language that I use each day at work, besides it's a trivial exercise to convert it to C#

I will look into the BackgroundWorker object, thanks for that.

On another note, If anyone has a working knowledge of how the .map files are built I would appreciate some guidance - I am currently reading through the Wiki information and examing the ad.exe sourcecode and attemping to establish what/why happens.

Link to comment
Share on other sites

  • 4 weeks later...

I'm stuck with Windows XP SP3, mainly because my old dual-core Athlon is incompatible with any Microsoft OS that uses SLIC in the BIOS for activation.

It was my understanding that XP isn't compatible with .NET 4.5, but I could be wrong. It is most definitely not compatible with VS 2012 and its runtimes. I discovered this when trying to install VS 2012 For Windows Desktop.

Where does that leave me and the rest of the dinosaurs with older systems that want to try this new extractor?

Link to comment
Share on other sites

Why not C or C++ so it would work everywhere?


But I tested your Application on my Linux Machine.


OS: Linux 3.7, Sabayon x86 13.03

Mono: Mono Basic 2.1


It starts properly (including the Folder selection), but as soon as I fire the "start" button it crashes with this error:

System.IO.DirectoryNotFoundException: Directory '/opt/software/World of Warcraft 1.12.1\\data' not found.
 at System.IO.Directory.ValidateDirectoryListing (System.String path, System.String searchPattern, System.Boolean& stop) [0x00000] in <filename unknown>:0 
 at System.IO.Directory.GetFileSystemEntries (System.String path, System.String searchPattern, FileAttributes mask, FileAttributes attrs) [0x00000] in <filename unknown>:0 
 at System.IO.Directory.GetFiles (System.String path, System.String searchPattern) [0x00000] in <filename unknown>:0 
 at System.IO.DirectoryInfo.GetFiles (System.String searchPattern) [0x00000] in <filename unknown>:0 
 at (wrapper remoting-invoke-with-check) System.IO.DirectoryInfo:GetFiles (string)
 at MangosExtractor.MaNGOSExtractor.btnStartDBC_Click (System.Object sender, System.EventArgs e) [0x00000] in <filename unknown>:0 
 at System.Windows.Forms.Control.OnClick (System.EventArgs e) [0x00000] in <filename unknown>:0 
 at System.Windows.Forms.Button.OnClick (System.EventArgs e) [0x00000] in <filename unknown>:0 
 at System.Windows.Forms.ButtonBase.OnMouseUp (System.Windows.Forms.MouseEventArgs mevent) [0x00000] in <filename unknown>:0 
 at System.Windows.Forms.Button.OnMouseUp (System.Windows.Forms.MouseEventArgs mevent) [0x00000] in <filename unknown>:0 
 at System.Windows.Forms.Control.WmLButtonUp (System.Windows.Forms.Message& m) [0x00000] in <filename unknown>:0 
 at System.Windows.Forms.Control.WndProc (System.Windows.Forms.Message& m) [0x00000] in <filename unknown>:0 
 at System.Windows.Forms.ButtonBase.WndProc (System.Windows.Forms.Message& m) [0x00000] in <filename unknown>:0 
 at System.Windows.Forms.Button.WndProc (System.Windows.Forms.Message& m) [0x00000] in <filename unknown>:0 
 at System.Windows.Forms.Control+ControlWindowTarget.OnMessage (System.Windows.Forms.Message& m) [0x00000] in <filename unknown>:0 
 at System.Windows.Forms.Control+ControlNativeWindow.WndProc (System.Windows.Forms.Message& m) [0x00000] in <filename unknown>:0 
 at System.Windows.Forms.NativeWindow.WndProc (IntPtr hWnd, Msg msg, IntPtr wParam, IntPtr lParam) [0x00000] in <filename unknown>:0 

The problem is in the File https://github.com/mangoszero/tools/blob/master/MaNGOSExtractor/MangosExtractor/MaNGOSExtractor.vb on line 40.

You can't just add '\\data' to your path, on a Unix based OS it would have to be '/Data' (and notice the capitalized D, this is also important in POSIX compliend OSs).

Link to comment
Share on other sites

@minatohd in the folder contrib/extractor_binary are already compiled versions (if you're on windows)


I guess it is better to post my mono related stuff on github.

I opened a issue:


I would like to support you, but first I would need to improve my VB skills, always hated windows :P.

Thank you, only having a windows system here makes testing a little difficult, so your testing is appreciated

Link to comment
Share on other sites

  • 7 months later...

I would just like to add that this has recently been updated to version 1.47

The DBC parser has been completely rewritten and the exported data is significantly more accurate now.

Also for extracting MOP DBC's, this is the only extractor at the moment that extracts them correctly due to the new patch system used by blizz.

Link to comment
Share on other sites


This topic is now archived and is closed to further replies.

  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. Privacy Policy Terms of Use