HomeUser Control Panel (unavailable in archive)ForumsTutorialsArt GalleryResourcesMaps

war3map.j script

03-14-2004, 04:44 AM#1
Dirtie
I heard there was a script that rebuilt the war3map.wtg from the war3map.j script file, where can I find it?
03-14-2004, 03:46 PM#2
Cubasis
Quote:
Originally Posted by Dirtie
I heard there was a script that rebuilt the war3map.wtg from the war3map.j script file, where can I find it?

There is none, that I know off. There is a unprotector that tries this, but it won't decypher a HeavyLocked war3map.j script. At best, it will give you the triggers in jass form, and let you do the rest.

Cubasis
03-14-2004, 03:51 PM#3
TitanRevamped
Quote:
Originally Posted by Cubasis40
There is none, that I know off. There is a unprotector that tries this, but it won't decypher a HeavyLocked war3map.j script. At best, it will give you the triggers in jass form, and let you do the rest.

Cubasis

you can do it another way with an mpq utility........
03-14-2004, 08:11 PM#4
Vexorian
Quote:
Originally Posted by TitanRevamped
you can do it another way with an mpq utility........
Unless the map is not only protected with the incredibly old list file deletion but also protected with .wtg deletion and script obfuscation, my tip is to find your own way to do the stuff.
03-15-2004, 08:09 AM#5
Cubasis
Quote:
Originally Posted by Alpha Disjunction
You could try making a script.

Or, you could contact Darky26, he says he has a script.

You best bet is just reading war3map.j.

Darky has a script on his site that reads the map and extracts the number of triggers, variables, and bleh it has. It can not rebuild a .wtg to GUI glory, atleast not if it has been HeavyLocked. And I could easily make a map that fools that script and makes it say that I only have a single trigger instead of # triggers. :P

And no matter what, one can't ever make a perfect script that recreates a HeavyLocked script into GUI .wtg ... as I said, at best he'll make it open in WE with all triggers in JASS (obfuscated).

Cubasis :)
03-16-2004, 07:25 AM#6
Dirtie
I just want some easier way of interpreting the triggers than opening the war3map.j file, even if I can't open it in WE.
03-17-2004, 06:11 PM#7
Dirtie
So which JASS editor would you recommend?
03-18-2004, 12:34 AM#8
dataangel
I don't see how replacing all the variable names with their real ones gets you around obfuscation. You don't know the original names, that's the whole point. With names changed, comments removed, and all extra white space, you're gonna have a helluva time for any reasonably triggered map.
03-18-2004, 12:34 PM#9
Bluescoobiedoo2
suxxors knulla its f u c k in swedish o_O
03-21-2004, 06:51 AM#10
Dirtie
Quote:
Originally Posted by Alpha Disjunction
Look in the tools section of the download section of this site. There is Kattanna's editor.

Thanks a lot man, and wish me luck.

PS. Doppelganger? You read Naruto?
03-22-2004, 01:22 AM#11
Dirtie
Dude, that clears a lot up for me.

There is a manga called "Naruto" (I have no idea if you're into anime or not) and in Jap version there are things called "Shadow clones" but in the English version they are called "Doppelgangers". I thought it was just a random word that was made up.

Thanks for enlightening me.
03-23-2004, 02:21 PM#12
Vexorian
What about finding the name for this function?

function 466739898 takes player 46666, integer 23435, string 43257, unit 3256, real 56743 returns nothing
...
endfunction

It is Not that easy is it?

and you have to do that with every single function? bleh, it is easier to find your own ways to make the trigger than to take the time to read that creap-
03-23-2004, 07:42 PM#13
SylvaniaD.
What I want to know is how the **** the game can read all that shit and WE can't.
03-23-2004, 07:47 PM#14
Cubasis
SylvaniaD.

That's becouse WC3 reads JASS, WE does not. WE reads a special data-file that stores 1) Triggers as GUI-actions, or if the trigger is JASS, it stores the JASS stuff specially.
Then when you save your map, it compiles/creates a war3map.j file from these other files. That's the JASS script file that WC3 reads. That's why no matter what you obfuscate/mess with that file, WE won't mess up with it. And that's also why it's so easy to "protect" the map from WE, as you can just read those extra files that the WE uses, and WC3 won't bother, as it doesn't use them.

Cubasis
03-24-2004, 08:41 AM#15
Cubasis
Quote:
Though I'm probably missing something here.

You are :)

Firstly, when the map loads, WC3 seems to compile the whole script into strings of simpler statements. There are many things that hint this. So even if you'd find the place in memory to dump, you wouldn't gain anything useful.

And even if it wasn't like this...You forget that "protection" is only removal of stuff that WE uses. WC3 doesn't care about any of these things, and thus doesn't create/build a WE-usable files/whatever. F.ex. the reason WC3 can open maps with no listfiles, is that it manually looks up files with certain names, so it doesn't need the listfiles, as the important files have static names. What else do we call protecting? The obfuscation? The reason WC3 can read through the obfuscation, is that it doesn't care, it doesn't care for names or anything, so it can work just as well with functions/variables called Zlkf than CreatePassword. What more? wtg?, wtu? wtf? :P heh, these couple of files, as i said above, are only used by WE and WC3 doesn't care about, as the contents of these files are created in the war3map.j file. So WC3 doesn't go through the trouble of re-creating these files when the map is playing (if that's what you're thinking about).

But anyhow, ofcourse it isn't hard to go through a whole 400-800 kb script, one function at a time, renaming everything to appropriate names. But it is...tedious, and takes alot of time....so is it really worth the time? .... What is it that you really gain from doing that? o_O, I doubt you're doing it to learn something, as someone who knows JASS this well has no problem brainstorming pseudocode for ANYTHING. And it still would be harder to "understand" this "complex" thing with these guessed/appointed names, as un-self-explanatory code is hard to read.

And besides, if you're doing it to....make your own version, wouldn't it just be easier and more respectful to just create the whole thing from scratch yourself?

Cubasis