1. Are you planning to upload your awesome tool to Hive? Please review the rules here.
    July 9, 2018: The rules for the Tool Section have been revised. Please be sure to read the revisions.
    Dismiss Notice
  2. The poll for our 11th Music Contest is up! Help us choose the most awesome cinematic tracks by casting a vote!
    Dismiss Notice
  3. Melee Mapping contest #3 - Poll is up! Vote for the best 4v4 melee maps!
    Dismiss Notice
  4. The 30th edition of the Modeling Contest is finally up! The Portable Buildings need your attention, so come along and have a blast!
    Dismiss Notice
  5. The Aftermath has been revealed for the 19th Terraining Contest! Be sure to check out the Results and see what came out of it.
    Dismiss Notice

W3x2Lni v2.4.6

Submitted by actboy168
This bundle is marked as approved. It works and satisfies the submission rules.
W3x2Lni is a wc3 map management tool. It helps you to manage your maps when developing or publishing.We defined 3 formats for a wc3 map, and w3x2Lni allows you to convert your maps amongst these 3 formats which are `Lni`, `Obj` and `Slk`.

> Lni
`Lni` is a VCS (like git, svn) friendly format. It looks like a directory. Most binary files in w3x will be converted into plain text files (yes! human-readable) by w3x2Lni which will also organize and categorize these text files.

> Obj
`Obj` is a wc3-readable and WE-readable format. If you want to open your map with WE, convert your map into this format.

> Slk
`Slk` is only readable by wc3 and should be used for final distribution. W3x2Lni enables multiple optimization for this format, including:

* Objects converted to slk
* Removed unreferenced objects
* Removed WE-only files
* Inlined WTS strings
* Compressed mdx
* Removed comments and unncessary white spaces in the script
* obfuscated variable and function name

W3x2Lni comes with war3 1.27.1 English data files. But it may not meet everyone's needs, you can use `w2l mpq <war3_path>` to extract data files.


For more information see the documentation.


W3x2Lni is a open source project.We welcome any pull request, e.g. improving the English text or writing English documents.
Contents

W3x2lni v2.4.6 (Binary)

Reviews
eejin
The tool works as one would expect. The UI is nice and to the point. Only thing I am missing is a back button wen you have chosen a conversion mode. You also cannot scroll horizontally when viewing the log when converting to Lni. [ATTACH] I am...
  1. Unryze

    Unryze

    Joined:
    Apr 14, 2016
    Messages:
    60
    Resources:
    0
    Resources:
    0
    will test it, thank you very much :)

    EDIT: not the thing I was talking about, I guess I explained it poorly. Still it is neat.

    In the W3i the mapname is the one used in lobby, so I wanted a way for the tool to grab the name from somewhere. Anyways, forget about it, it's fine as it is.

    Is there a way to disable WTS inline? I will just use that :p
    Untick doodad optimization, if you have it ticked.
     
    Last edited: Feb 3, 2019
  2. sumneko

    sumneko

    Joined:
    May 31, 2018
    Messages:
    34
    Resources:
    0
    Resources:
    0
    No. WTS inline is the most important step of optimizing map speed.
     
  3. Unryze

    Unryze

    Joined:
    Apr 14, 2016
    Messages:
    60
    Resources:
    0
    Resources:
    0
    It barely affects speed at all, can you just please add this option?

    If you want proof I can make a side by side map loading and spell test comparison and there will be 0 difference...
     
  4. juvian

    juvian

    Joined:
    Sep 25, 2017
    Messages:
    38
    Resources:
    0
    Resources:
    0
    1 map wouldn´t really be proof, and wts inline optimization can chunk off 30s+ of load time on maps with several mbs of strings file. If you just have a few hundreds, its possible you don´t notice the difference. As for what you want to do, you can learn a bit of lua, use the libraries W3x2lni provides like stormlib and edit the w3i file as you wish. It might also be possible to do as a plugin.
     
  5. Unryze

    Unryze

    Joined:
    Apr 14, 2016
    Messages:
    60
    Resources:
    0
    Resources:
    0
    You do realize, I did not mean just one map, right? And I already use this tool to edit different maps, aka commercially.

    And giving a choice to the user to inline or not to inline is never a bad choice.

    Also again, WTS reading is never and I repeat NEVER THAT SLOW that you will ever notice a difference, heck look at ORPG maps or RPG maps, the reason they lag is never Lack of WTS inline, is simply poor code and effect spam.

    And load time is chunked off by slk, where did you even take that 30+sec load time by WTS inline...?

    Also I do know lua, but I am more fluent in C++, but should I be the one to “force” the addition of things that are kind of expected to exist? Not really. That is why I simply ask to add the option to enable/disable it, that’s it.
     
  6. juvian

    juvian

    Joined:
    Sep 25, 2017
    Messages:
    38
    Resources:
    0
    Resources:
    0
    @Unryze Will post map when I have time. This is an optimizer, there is no reason to not optimize string inlining. Your use seems to me too specific, and this tool is quite customizable if you want to edit it, I have edited it to allow external listfile for example. Anyway the decision lies on sumneko, just wanted to point out that if they won´t do it, you could do it yourself and that wts inline is very important.
     
  7. Unryze

    Unryze

    Joined:
    Apr 14, 2016
    Messages:
    60
    Resources:
    0
    Resources:
    0
    I guess it takes experience to notice things, for test purpose make a map with SLK optimization, then just move everything back that utilizes WTS, and you will see 0 difference in load time... anyways, up to you to notice it.

    Again, giving more flexibility is never a bad thing, especially when the gains are minimal, again you will notice the non-existent gains yourself soon enough.

    I doubt having the "untick inline" which existed even on Verxorian tool be a bad thing, same goes to Wc3SLKOpt, again it also has that. And if I reckon tool that Frotty is making also has this option as well... anyways, as you said it is up to the tool maker to decide.
     
  8. Overfrost

    Overfrost

    Joined:
    Jan 9, 2019
    Messages:
    82
    Resources:
    0
    Resources:
    0
    This is very cracking!

    But I couldn't extract data from v1.30. I could extract from v1.29 though.
     
  9. sumneko

    sumneko

    Joined:
    May 31, 2018
    Messages:
    34
    Resources:
    0
    Resources:
    0
    I need to keep options streamlined, and `Disabling wts-inline'is a meaningless function, so I won't add it to the list of options.

    This plugin allows you to disable wts-inline when converting maps, although I don't recommend it.
     

    Attached Files:

  10. sumneko

    sumneko

    Joined:
    May 31, 2018
    Messages:
    34
    Resources:
    0
    Resources:
    0
    WC3 1.30 uses another data format and therefore does not support it.
     
  11. Nudl9

    Nudl9

    Joined:
    Nov 9, 2006
    Messages:
    1,713
    Resources:
    19
    Icons:
    11
    Skins:
    1
    Maps:
    7
    Resources:
    19
    Can we get an update that supports the latest patch?
    It's critical for my map to be supported by the latest version, but at the same time i don't want to leave unprotected versions out there for the sake of it.
     
  12. TriggerHappy

    TriggerHappy

    Code Moderator

    Joined:
    Jun 23, 2007
    Messages:
    3,538
    Resources:
    22
    Spells:
    11
    Tutorials:
    2
    JASS:
    9
    Resources:
    22
    I think the 1.29.2 dataset should work fine on 1.30.

    Also Vexorian's map optimizer still works despite popular belief.
     
  13. Nudl9

    Nudl9

    Joined:
    Nov 9, 2006
    Messages:
    1,713
    Resources:
    19
    Icons:
    11
    Skins:
    1
    Maps:
    7
    Resources:
    19
    It doesn't.
    I always wondered why my map had old data sets after protecting and having played it.
    I managed to track the cause of the problem down to the optimizer and after that i tried every single option through a process of elimination.
    It causes me major problems because i can't edit data fields in the object editor without having it reset to old values.
    If i try to set KOTG's Force of Nature to cost 100 mana, the data field doesn't register that as a "changed value" (becoming purple) because 100 mana cost is default value in 1.30.
    So after i use the optimizer it reads as if that value was never changed and resets it to 125 mana cost because it uses patch 1.29 for game data.

    And i can't use Vexorian's map optimizer because there is no MPQ to be found.
    If you know a workaround that doesn't completely fuck up for the most recent patch please do help.