• 🏆 Texturing Contest #33 is OPEN! Contestants must re-texture a SD unit model found in-game (Warcraft 3 Classic), recreating the unit into a peaceful NPC version. 🔗Click here to enter!
  • It's time for the first HD Modeling Contest of 2024. Join the theme discussion for Hive's HD Modeling Contest #6! Click here to post your idea!

Online WC3/map data viewer

Status
Not open for further replies.
Level 4
Joined
Jul 15, 2008
Messages
13
Hello there.

I finally finished a web app that can parse WC3 maps and show contained files, object data and map script right in your browser.

This is basically a renewed version of RMPQEx (if anyone remembers that), ported fully to web.

All processing is done right inside the browser, the map file is never sent to the server. The map data is stored in browser cache.

The website includes base WC3 object data from the last few patches, and latest Dota map (6.83c) as an example.

Link: WC3 Data

Some screenshots:

gsTP3Vo.png

ONQU4yQ.png

QD7P9Qo.png
 
Nice, tool.

Custom objects of Maps done with "world editor only" show/use/point to wrong data (i think default data). (means openable with editor)
While optimized/protected show everything correct. (not openable with editor)

Dat is kinda trollic:
  • optimized/protected stuff is shown
  • while stuff you can normaly open is confused.
I transformed a editor openable map with w32lni to slk. In the editor version custom units are using default abilities.
While in the slk version the custom units are pulled into the normal units and refere to correct abilities.


Regardless the tool is great.
 

Attachments

  • editor map.png
    editor map.png
    103.8 KB · Views: 221
  • slk map.png
    slk map.png
    107.2 KB · Views: 331
Last edited:
Level 4
Joined
Jul 15, 2008
Messages
13
@TriggerHappy seems the map is too large for the memory limit I set (256MB). It worked fine on Dota, but I suppose there are larger maps out there. Though it's strange that it's getting to the end before failing, because the object parsing should be the most memory hungry part. I could enable dynamic memory growth as it suggests. Is that a map I could download somewhere, so I can check where it fails?

@Tasyen thanks I'll look into it - I saw that it shows the custom units so I didn't pay too much attention to it. I checked the old RMPQEx code again and it's handing these maps fine, so it should be easy to find the error.

Edit: fixed object parsing; allowed memory growth; fixed a few more parser crashes on various maps.
 
Last edited:
Level 4
Joined
Jul 15, 2008
Messages
13
To be fair I think the best use is to look up some unit data for melee mode (since classic battle.net site isn't updated for 1.30). That's basically why I revived the project in the first place.

It's pretty easy to update it for new patches - I could even set up the site to do so automatically, using their CDN to grab individual files without having to download the whole game, similar to D3Planner Data
 
Level 2
Joined
Dec 9, 2018
Messages
6
Riv: This is an amazing tool! Thank you so much for putting in this effort!

I looked around on the page, but I didn't see a link to the source. Do you have any plans to open-source this project? I'm working on a custom map at the moment and I'm trying to find a way to extract my unit data for iterative comparison, but so far I've been unable to make sense of the .w3u file. Your app can read the unit stats from my map file though, so I would like to see how if possible.
 
Level 2
Joined
Dec 9, 2018
Messages
6
Yeah, I actually tried RMPQEx while I was waiting for my post to be mod-approved but I think there might be a bug... It creates the object.txt file, but it is empty and 0kb. I'm on Win10, idk if that matters. I can send you the map file if you want to test it? Or you can download it from hive. This result is the same with "all unit data" and "all data" checkboxes, I tried both. "All data to one file" checkbox actually crashes the program.

Is there any logging I can enable that would help you find this issue? Or is the version of RMPQEx on your website just an old version? Either way, I will look at this code you have posted. Thank you so much, from student to master! :D

1TWemp9.png


e: I don't see the source for RMPQEx on your github... If the code is a port, it looks like the app in wc3data is cpp, so if you would rather, I would actually prefer to compile the RMPQEx source on my linux box and try to replicate, since that's where my deployment pipeline currently exists. The only download I found for RMPQEx is a precompiled .exe on your website; that's the one I believe is bugged.
 
Last edited:
Level 4
Joined
Jul 15, 2008
Messages
13
RMPQEx sources are uh.. a little ugly. And they're in cpp as well - don't think that would help you. Oh and it expects your game installation to use the old MPQ archives, so it won't work with the new CASC versions (probably why you're getting empty files and crashes).

It would be much easier to add an option to download data as a text file on the website, I'll do that once I finish some of the changes I'm working on.
 
Level 2
Joined
Dec 9, 2018
Messages
6
Oh I see, yeah if it relies on the game installation that might explain it, my install is patched to 1.30.2 right now anyway. :)

If you would be so kind, that would be amazing. Could I request a JSON-like format, so I can load it easily to a db?
 
Level 2
Joined
Dec 9, 2018
Messages
6
Doesn't seem to be working now. I had to refresh without cache to get the new version, and now after processing the map it doesn't load the /map1 /map2 etc pages -- /dota loads fine, as well as the melee patch notes, but custom imported maps aren't opening for me.
 
Level 2
Joined
Dec 9, 2018
Messages
6
Yes, this is superb! Thanks again RiV for putting this together and getting it updated! :D

One minor bug still remains, it seems -- when exporting objects to file, the "All (Combined)" option produces a text file with "{}" no matter which option is selected.

Regardless, this is still a wonderful tool and it is already making its way quickly into my map development pipeline!
 
@3d12 There have been many times and places where a .w3u parser was written and open sourced if you need it. I was given a copy of PitzerMike's Widgetizer code and ported the relevant portion to Java for my projects:
Retera/JWC3

There is another written by eejin in his "load modification table" function although this is a different C++ implementation from the PitzerMike code I was looking at when I wrote mine:
stijnherfst/HiveWE

I'm traveling and haven't tested this map data viewer yet, but is it possible that you should be working together with eejin on HiveWE when you have this much code?
 
Level 2
Joined
Dec 9, 2018
Messages
6
@Retera Thanks for the links! I will check it out, I think someone else actually linked me to JWC3 prior to your post, but not quite sure.

The reason I wanted to extract this data, is because I'm writing a simple website that's a wiki-like interface for browsing hero/creep stats for the map I'm working on, and it loads data from a database. So I wanted a way to dump this data to a database with the version # of the build so I can compare them side-by-side, that's all.

I'm blown away at how much help I've gotten from the community since reaching out. While I was waiting for this post to get mod approval I also asked in the hive discord and got some great links there to java and python libraries, and when RiV added the JSON export feature to his project I was pretty stunned. :)

I don't want to take this thread too far off-topic, but I haven't used HiveWE and wouldn't know the benefits -- although since I'm updating a map from TFT (bugfixes, etc) I had planned to maybe use a better language at some point to rewrite the whole thing. Do you think HiveWE is the way to go? I'd also considered Wurst, or holding off until Reforged and using Lua. Which do you think would be the most reliable and/or robust?

Actually that last paragraph could probably even be a separate thread...

e: Yes, here it is! Someone in hive discord linked me this previously: Retera/JWC3 :D
 
Status
Not open for further replies.
Top