HomeUser Control Panel (unavailable in archive)ForumsTutorialsArt GalleryResourcesMaps

Heavy Locker

09-04-2003, 05:58 AM#166
BlacKDicK
Quote:
Binary Return = 0D
ASCII Return = 0D0A

Is there a proper name for the bytes? That is just what I call them.
I forgot to mention this on the readme. The "new" CLEAN TXT/J/AI is already doing this. Btw, 0x0D is known as "Carriage Return" and 0x0A is "Line Feed". The 0.2.3 is removing all line feeds from TXTs/J/AI if the "CLEAN TXT/J/AI" option is set.

Quote:
What does the (attributes) file do?
It holds some info about the files inside the MPQ, such as File Creation Date/Time and CRCs. It is pretty useless to maps. Within MPQs they´re used whenever a new patch comes out: to check if the files inside the MPQ are not modified/corupted coz the patches will only work if the file is the original Blizzard file.

Quote:
I think you forgot you delete the (attributes) file
?? You can set if you want the attributes to be present by checking the proper check box.

As for the WTS thing, I´ll probably remove it. Then the user will decide if he/she wants all those TRIG_STR_XXX to be directly replaced inside the J script code file or use them as globals inside the war3map JASS file.
BTW, I think this new WTS feature will be the last one dealing with the script file, coz each new effort is not getting good results anymore. For an example, those "5 bytes saved from WTS" you mentioned above don't actually turn to "5 bytes saved" after the file is compressed. I guess the new DOO files (FT or "new RoC") can also save some bytes. I´ll try to revert those new files to the old DOO file format, wich is smaller. Let me check first if this is going to work tough. Of course the jass code can get pretty big sometimes, but W3E (Enviroment), WPM (Pathing Map) and others can also be blamed to the increased map size. And for now I did not came with any ideas to reduce those files size's.

And here is the new stuff:
Version 0.2.4 (09/04/2003)
- Added an "Auto-Detect" option to auto-detect the required Buffer lvl.
- Finished the "Minimap Quality" module. Whenever a loaded W3 map HAS a embbeded
minimap AND "Optmize Minimap" is ON, the "Minimap Quality" module will let you
choose a new minimap quality (%) to save the output map with.
09-04-2003, 09:38 PM#167
dataangel
@BlackDick: Be warned, ability tooltips and stuff like that is also stored in the WTS, not just .j strings.

Quote:
- Started to work with the globals declares/initialization (dataangel´s idea).It is
not working yet.

Is it in this version or is that still coming? Although file size difference maybe negligible for some maps, for some it'll be drastic.
09-04-2003, 09:43 PM#168
dataangel
@BlackDick: You broke something in new version :P

Cleaning Txt/J/AI at all makes my game not found (error: Game Not Found when I try to make a bnet game), even if I disable all other options.
09-04-2003, 09:57 PM#169
BlacKDicK
Quote:
@BlackDick: Be warned, ability tooltips and stuff like that is also stored in the WTS, not just .j strings.
Yeah, I just realized that. W3U (Custom Units file) also uses the WTS. Another files also use the WTS. I´ll probably just add a simple option to remove duplicates inside the WTS instead of removing it. It would be a pain in the *** to go trough each file that is using WTS and replace stuff.

Quote:
Cleaning Txt/J/AI at all makes my game not found (error: Game Not Found when I try to make a bnet game), even if I disable all other options.
It´s probably the new "Line Feed thing" that is doing this. I´ll make this optional till I fix it.

Quote:
Is it in this version or is that still coming? Although file size difference maybe negligible for some maps, for some it'll be drastic.
It is about 50% done, but I disabled it on 0.23 and 0.24.
Btw remmember that the map script is compressed inside the MPQ, so don´t expect "drastic improvements".:D Also, can you send me the ORIGINAL version of this bugged map to [email protected] ?
09-05-2003, 12:05 AM#170
dataangel
Quote:
Originally posted by BlacKDicK
It is about 50% done, but I disabled it on 0.23 and 0.24.
Btw remmember that the map script is compressed inside the MPQ, so don´t expect "drastic improvements".:D Also, can you send me the ORIGINAL version of this bugged map to [email protected] ?


Sent (the original unheavylocked version).
09-05-2003, 01:45 AM#171
bludragn
You should make HeavyLocker delete these files from the map, since they are in the map script:
  • .w3s = sound vars
  • .w3c = camera objects
  • Units.doo = unit placement points
  • Extra.txt (TFT file) = sky model, time of day
09-05-2003, 04:50 AM#172
dataangel
Quote:
Originally posted by bludragn
You should make HeavyLocker delete these files from the map, since they are in the map script:


Good idea ;)
09-05-2003, 05:41 AM#173
BlacKDicK
Quote:
You should make HeavyLocker delete these files from the map, since they are in the map script:

.w3s = sound vars

.w3c = camera objects

Units.doo = unit placement points

Extra.txt (TFT file) = sky model, time of day
Ok, 0.2.5 can remove w3s,w3c and units.doo. As for the "Extra.txt" im not sure yet if those files can be safelly erased.

And here are some changes:Version 0.2.5 (09/05/2003)
- Some GUI changes.
- Fixed a bug with "Clean TXT/J/AI" that was introduced on 0.2.3
- W3C (Camera File) , W3S (Sounds File) and Units.DOO are now removed if locking the map.
- Fixed some obfuscate script bugs and changed the way it works. Obfuscate script is now
only enabled with the "Full Lock" mode. Then you will be able to select wich obfuscate level
you want to use with the map. This change will make things easier to me when I add scripting
to the Heavy Locker in the future. Check the options bellow:
* Level 0 = "No obfuscate" will not obfuscate the script at all.
* Level 1 = "variables" will only obfuscate the global variables.
* Level 2 = "Functions" will do a "Level 1" obfuscate plus it will obfuscate some functions.
If the selected ofuscate level makes your map unplayable, try to reduce it.


I'm working on a Lvl 3 obfuscate wich will replace all Blizzard Constants found on the map with their real values. (By "Blizzard Constants" I mean those found on Blizzard.j and Common.j)
Im also working on dataangel´s idea, to merge the global declares/initializations. This will be the Lvl 4 obfuscate. The initial idea was to release the lvl 3 and 4 with the 0.2.5 version, but I released it without those levels anyway due the "Clean TXT/AI/J" bug. I´ll probably not work on Heavylocker till monday (going to my girl's home) :ggani: , so here it is 0.2.5 till then.
09-06-2003, 02:53 AM#174
dataangel
I think I figured out why my comp complains about strings missing from .wts but yours doesn't.

The strings I deleted were tooltips for an ability -- they weren't used in the .j file. So try making a custom ability tooltip and then removing the .wts entry for it. You may need to make it a hero ability with multiple levels since that's what I did.

If that works then you'd just need to add an entry in the .w3a to refer to a string that doesn't exist =)

@Blackdick: Level 2 obfuscate is what messes up the map I sent you. Also, rather than having different "levels" of obfuscate script, it may be more convenient to have checkboxes, because I may want the variable mode and the replace bj_ constants mode, but not the function obfuscate mode (since that stops my map from working :P).
09-06-2003, 03:28 AM#175
bludragn
Forgot to mention that WE cancels a map load (like an empty wtg) without a valid Units.doo file, so for the 'preview only lock' just make it an empty file with a Units.doo header. RoC and TFT maps have different headers for the file and WE will crash if you try to use the wrong one for the map.

Empty Units.doo headers
ROC:5733646F 07000000 09000000 00000000
TFT:5733646F 08000000 0B000000 00000000


@dataangel: I tried altering an ability's tooltips, then deleted the strings for the tooltips and created a new string with the next # in line, but WE still loaded. Maybe it has something to do with the number of strings missing.
09-06-2003, 04:00 AM#176
dataangel
I'll post exact instructions for how I produced the effect later and test to see if there's a precise number...

@Blackdick: I was going through my .j file after the obfuscator went over it, and I noticed these:

Code:
rect e6as_Rune = null
rect l5xc_Leaping_Holding_Area = null
trigger bwmo_the_hunt = null
trigger bwmo_Invasion = null
trigger bwmo_quad_damage = null

Now upon seeing this I figured, "Oh well, for some reason it's escaping on underscores." Not sure why this is happening. Maybe the names of the triggers and regions were too long for it?
09-06-2003, 07:54 PM#177
Trigger_This
Are we suppose to wait for the final 1 or is the 1 on the first page up dated?

Does it tell me what it all does and that 1 of the latests?

thx
09-06-2003, 09:18 PM#178
Eternal-Agony
The latest version is always on the front page, read the post...
09-07-2003, 06:58 PM#179
Starcraftfreak
Why do you distribute ijl15.dll with it? Is this a mistake by you or have you modified it?

About the last-used settings feature:
Include also the last opened/save file type. I use it often for MPQs. It defaults to W3M/W3X. But I would like that it defaults to what you have last used.
And will you now also add the last used directory or not (if yes, make it optional)?
09-09-2003, 07:02 AM#180
BlacKDicK
Quote:
Forgot to mention that WE cancels a map load (like an empty wtg) without a valid Units.doo file, so for the 'preview only lock' just make it an empty file with a Units.doo header. RoC and TFT maps have different headers for the file and WE will crash if you try to use the wrong one for the map.

Empty Units.doo headers
ROC:5733646F 07000000 09000000 00000000
TFT:5733646F 08000000 0B000000 00000000
K, I´ll be fixing it next version.

Quote:
@Blackdick: I was going through my .j file after the obfuscator went over it, and I noticed these:
It is not actually a problem with underscores, it is a problem with similar variable names. For an example:
rect abcd
rect abcd_ef
rect abcd_more_text_here
When the obfuscator reads the "abcd" variable, it will then replace all "abcd" instances inside the WHOLE script, hence also changing the second and the third variable names. Then, when it reads the second variable, it´s name is already changed and no changes are made. I will try to solve this adding a "second pass" to the variable obfuscate code.

Quote:
Why do you distribute ijl15.dll with it? Is this a mistake by you or have you modified it?
It is the same. Of course I could make the HLocker search for it inside W3 install path, but I can´t be 100% sure ifthe user has this DLL, so I decided to include it anyway.