Welcome!

Join our community of MMO enthusiasts and game developers! By registering, you'll gain access to discussions on the latest developments in MMO server files and collaborate with like-minded individuals. Join us today and unlock the potential of MMO server development!

Join Today!

WZ [Release] Harepacker resurrected

Junior Spellweaver
Joined
Aug 13, 2009
Messages
124
Reaction score
123
Hey all! I've had this for quite a while.
Perhaps this might be useful for you, or not. There's quite a handful of features and fixes that I've included over time.

Source code is included. Feel free to raise any issues, or pull request.
or fork it too.

LastBattle - [Release] Harepacker resurrected - RaGEZONE Forums


Github:


Releases:


New Features
  • Create, open and save Data.wz hotfix file
  • Display WzUOLProperty as image
  • Fixed issues copy and pasting .img between different Wz encryptions
  • Fixed an issue with deleting multiple Wz TreeNodes via ContextMenu
  • Opening new .png WzImageProperty format in modern MapleStory wz files (v160++) and many other fixes!
  • Copy pasting of Wz images between different process
 
Last edited:
Moderator
Staff member
Moderator
Joined
Jul 30, 2012
Messages
1,102
Reaction score
432
>Feel free to raise any issues.

Sure :D

Display WzUOLProperty as image

This seem not working well. Here's an image of it in action.

HoYWuif - [Release] Harepacker resurrected - RaGEZONE Forums


Will edit over time if I find other issues stated in the release notes. Are you interested in hearing of harepacker bugs that are not fixed yet, or are you no longer developing it?
 

Attachments

You must be registered for see attachments list
Junior Spellweaver
Joined
Aug 13, 2009
Messages
124
Reaction score
123
>Feel free to raise any issues.

Sure :D



This seem not working well. Here's an image of it in action.

HoYWuif - [Release] Harepacker resurrected - RaGEZONE Forums


Will edit over time if I find other issues stated in the release notes. Are you interested in hearing of harepacker bugs that are not fixed yet, or are you no longer developing it?

Yes, do let me know and I will fix it.
 

Attachments

You must be registered for see attachments list
Moderator
Staff member
Moderator
Joined
Jul 30, 2012
Messages
1,102
Reaction score
432
Yes, do let me know and I will fix it.

Alright.

One bug that is in harepacker and still in your program is that copying MP3's don't work.

Example, if I want to implement a region that isn't in GMS I can easily copy paste everything, except for the mob sounds. As far as I am aware the only method to these currently are manually (unless you copy the whole .img, but then you overwrite your own edits...)

~Demonstration~

Copy pasting just a MP3 file which breaks it:


Copy pasting a whole node which breaks it as well:


Thanks in advance!
 
Junior Spellweaver
Joined
Aug 13, 2009
Messages
124
Reaction score
123
Alright.

One bug that is in harepacker and still in your program is that copying MP3's don't work.

Example, if I want to implement a region that isn't in GMS I can easily copy paste everything, except for the mob sounds. As far as I am aware the only method to these currently are manually (unless you copy the whole .img, but then you overwrite your own edits...)

~Demonstration~

Copy pasting just a MP3 file which breaks it:


Copy pasting a whole node which breaks it as well:


Thanks in advance!




there
 
Newbie Spellweaver
Joined
Mar 25, 2016
Messages
86
Reaction score
26
Looks interesting. Definitely props for volunteering on fixing this horrible codebase.

Don't know if you're interested in fixing this and releasing to public but a major issue for awhile with harepacker was the png saving never saved back to it's proper format. For a lot of images this made the wz end up being massive and take way more memory when loading the game than it normally would.

The issue is located , where you can see maplelib forces the format to 2 and saves.

This is already a pretty publicly know issue now imo(Eric released a bunch of info related to this in another thread and until that post I knew a very low amount of people who fixed it themselves)
 
Last edited:
Moderator
Staff member
Moderator
Joined
Jul 30, 2012
Messages
1,102
Reaction score
432



there

Thanks so much! This is a huge QOL change.

Looks interesting. Definitely props for volunteering on fixing this horrible codebase.

Don't know if you're interested in fixing this and releasing to public but a major issue for awhile with harepacker was the png saving never saved back to it's proper format. For a lot of images this made the wz end up being massive and take way more memory when loading the game than it normally would.

The issue is located , where you can see maplelib forces the format to 2 and saves.

This is already a pretty publicly know issue now imo(Eric released a bunch of issue related to this in another thread and until that post I knew a very low amount of people who fixed it themselves)

Oh, yes. I think one of the people I know once talked about it long ago:

ILPj6UB - [Release] Harepacker resurrected - RaGEZONE Forums
 

Attachments

You must be registered for see attachments list
Newbie Spellweaver
Joined
Aug 28, 2012
Messages
11
Reaction score
7
Thanks for the work you've done so far! :proud:

Whenever I try to automatically export, it's looking for a folder called "WzSaved", which doesn't exist and isn't automatically created, so then HaRepacker crashes entirely.

The error:
q22PuyN - [Release] Harepacker resurrected - RaGEZONE Forums
'

My settings:
S1UnQIC - [Release] Harepacker resurrected - RaGEZONE Forums
 

Attachments

You must be registered for see attachments list
Junior Spellweaver
Joined
Aug 13, 2009
Messages
124
Reaction score
123
Thanks for the work you've done so far! :proud:

Whenever I try to automatically export, it's looking for a folder called "WzSaved", which doesn't exist and isn't automatically created, so then HaRepacker crashes entirely.

The error:
q22PuyN - [Release] Harepacker resurrected - RaGEZONE Forums
'

My settings:
S1UnQIC - [Release] Harepacker resurrected - RaGEZONE Forums

All fixed.



-Fixed ArrayIndexOutOfBoundsException for DXT5 PNG decoding
-Fixed FileNotFoundException while exporting individual XML img to private server format
-Show error message if WZ/XML export path is not specified
-Fixed issues exporting selection of WzFile in DataTree to XML



Looks interesting. Definitely props for volunteering on fixing this horrible codebase.

Don't know if you're interested in fixing this and releasing to public but a major issue for awhile with harepacker was the png saving never saved back to it's proper format. For a lot of images this made the wz end up being massive and take way more memory when loading the game than it normally would.

The issue is located , where you can see maplelib forces the format to 2 and saves.

This is already a pretty publicly know issue now imo(Eric released a bunch of info related to this in another thread and until that post I knew a very low amount of people who fixed it themselves)

I'll look into that. Mind pointing me to the release Eric made? That'll save me time too instead of writing my own
 

Attachments

You must be registered for see attachments list
Junior Spellweaver
Joined
Aug 13, 2009
Messages
124
Reaction score
123
ver 1.5:



This release should fix issues with memory leaks in the MapleStory client after saving with Harepacker. (Ref: http://forum.ragezone.com/f566/client-unresponsive-1146934 )
-WzPngProperty - PNG format 1 is now supported <3
-Fixed an issue with WzPngProperty -- saving 4 more bytes per ARGB
-Fixed an issue extracting .XMLWZ in some WZ versions
-Partial Localization support for Korean & Japanese
-Load/Update/Save WzCanvasProperty with '_outlink' path

LastBattle - [Release] Harepacker resurrected - RaGEZONE Forums




1.6 now available.


Enjoy importing GIF straight into multiple WzCanvasProperty automatically :cool:

LastBattle - [Release] Harepacker resurrected - RaGEZONE Forums
 
Last edited:
Junior Spellweaver
Joined
Apr 30, 2012
Messages
100
Reaction score
40
I started working on some of HaRepacker's issues a few months back and intended to release but never finished. Here's an enum of the pixel formats used, if that interests you at all. Not the biggest help but I don't have as much time as I'd like to contribute.

Code:
 enum NPixFormat
    {
        UNKNOWN = 0x0,
        A4R4G4B4 = 0x1,
        A8R8G8B8 = 0x2,
        A8R8G8B8_T = 0x3,//unsure
        R5G6B5 = 0x201,
        R5G6B5_T = 0x205,//unsure
        DXT3 = 0x402,
        DXT5 = 0x802
    }

Properly handling the compression should go a long way for client issues, glad to see someone publicly working on improving the HaSuite again after all this time.
 
Custom Title Activated
Loyal Member
Joined
Jan 18, 2010
Messages
3,109
Reaction score
1,139
aw my orion data tool isn't so special anymore :(

Definitely a +1 on fixing the saving issue that I had pointed out! That'll greatly decrease the overall size of lower version servers' wz, and it'll also make their clients use less memory when accessing and loading all of the images.

Rendering the inlink/outlink/source images I had always found to be a nice touch (always hated having to browse and find the source image), and importing GIFs was always a helpful feature for my staff as well. Another thing that they had commonly found useful that you could add was being able to select multiple png's at once and have the tool append "0", "1", etc like you did with the gifs (rather than manually having to add and name dozens of properties). It would also allow you to add int and vector properties that would be added to all of the selected images (to speed up the process for origins, delays, and other default nodes). If you're interested in adding more features, my favorite tools in ODT I had gotten from WzRepacker, which was 1) the benefit of "Select Duplicates" to remove all the duplicate nodes I had (since if you just blindly copy over things from one wz to another, you'll get a lot of dupes) - from there, you can simply just click delete property to remove them all. and 2) my favorite side-by-side view and comparison. being able to highlight and select all the new nodes from a newer version file was bless. always used that when grabbing newer version content, just opened a JMS file on the right, let the repacker select the new nodes that were added, and copied them into my wz.
 
UNTIL THEN!
Loyal Member
Joined
Mar 5, 2011
Messages
1,086
Reaction score
212
Yeah, just add a lot of those things from WzRepacker and it'll be flawless. Used those features to all hell, but what crippled the program was that it was 32-bit, so it ran out of memory very often.
 
Newbie Spellweaver
Joined
Jan 8, 2013
Messages
77
Reaction score
1
plz wzlongproperty
 
Custom Title Activated
Loyal Member
Joined
Jan 18, 2010
Messages
3,109
Reaction score
1,139
plz wzlongproperty

I'm pretty sure MapleLib has had "WzLongProperty" support for a while.

Speaking of properties though, each "property" is actually just a Variant. The last I checked MapleLib had a majority of them, but here's Nexon's serialization as of v17x/v18x:
PHP:
/**
 * Serializes an object, parsing and constructing
 * the proper variant.
 * 
 * [USER=2000183830]para[/USER]m arg A serialization arg containing the property data
*/
private void serialize(SerializeArg arg)
{
    arg.pValue.Clear();

    Variant pValue = arg.pValue.GetValue();

    int vt = arg.ws.ReadByte();
    if (vt == Variant.VT_DISPATCH)
    {
        vt = Variant.VT_UNKNOWN;
    }

    switch (vt)
    {
        case Variant.VT_EMPTY:
            break;
        case Variant.VT_I2:
        case Variant.VT_BOOL:
        case Variant.VT_I1:
        case Variant.VT_UI1:
        case Variant.VT_UI2:
            pValue.iVal = arg.ws.ReadShort();
            break;
        case Variant.VT_I4:
        case Variant.VT_UI4:
            pValue.lVal = arg.ws.ReadCompressedInt();
            break;
        case Variant.VT_R4:
            pValue.fltVal = BitConverter.ToSingle(BitConverter.GetBytes(arg.ws.ReadCompressedInt()), 0);
            break;
        case Variant.VT_R8:
            pValue.dblVal = BitConverter.Int64BitsToDouble(arg.ws.ReadLong());
            break;
        case Variant.VT_BSTR:
            pValue.bstrVal = WzPCOM.PcSerializeString(arg.ws.pArchive, arg.ws.ReadByte() != 0);
            break;
        case Variant.VT_CY:
            arg.ws.ReadCompressedLong();
            break;
        case Variant.VT_DATE:
            arg.ws.ReadLong();
            break;
        case Variant.VT_I8:
        case Variant.VT_UI8:
            arg.ws.ReadCompressedLong();
            break;
        case Variant.VT_UNKNOWN:
            int uSize = arg.ws.ReadInt();
            long uBlock = uSize + arg.ws.GetPosition();
            
            arg.pValue.vValue.vt.nVarType = Variant.VT_EMPTY;
            arg.pValue.Initiate(arg.psName, arg.ws.pArchive, uSize);
            arg.ws.SetPosition(uBlock, 0);
            break;
        default:
            {
                // error
                return;
            }
    }

    pValue.vt.nVarType = vt;
}
 
Junior Spellweaver
Joined
Aug 13, 2009
Messages
124
Reaction score
123
so I heard you guys liek multiple tabs? :glare:


LastBattle - [Release] Harepacker resurrected - RaGEZONE Forums




I'm pretty sure MapleLib has had "WzLongProperty" support for a while.

Speaking of properties though, each "property" is actually just a Variant. The last I checked MapleLib had a majority of them, but here's Nexon's serialization as of v17x/v18x:

The nexon like naming :eek:tt:
I'll look into it! Thanks.



Yeah, just add a lot of those things from WzRepacker and it'll be flawless. Used those features to all hell, but what crippled the program was that it was 32-bit, so it ran out of memory very often.

I'll be looking into mainly bug fix, compatibility with the latest version of maplestory, and productivity for now.
I've yet to use WzRepacker at all.

Let me know if there's anything you want me to add.



aw my orion data tool isn't so special anymore :(

Definitely a +1 on fixing the saving issue that I had pointed out! That'll greatly decrease the overall size of lower version servers' wz, and it'll also make their clients use less memory when accessing and loading all of the images.

Rendering the inlink/outlink/source images I had always found to be a nice touch (always hated having to browse and find the source image), and importing GIFs was always a helpful feature for my staff as well. Another thing that they had commonly found useful that you could add was being able to select multiple png's at once and have the tool append "0", "1", etc like you did with the gifs (rather than manually having to add and name dozens of properties). It would also allow you to add int and vector properties that would be added to all of the selected images (to speed up the process for origins, delays, and other default nodes). If you're interested in adding more features, my favorite tools in ODT I had gotten from WzRepacker, which was 1) the benefit of "Select Duplicates" to remove all the duplicate nodes I had (since if you just blindly copy over things from one wz to another, you'll get a lot of dupes) - from there, you can simply just click delete property to remove them all. and 2) my favorite side-by-side view and comparison. being able to highlight and select all the new nodes from a newer version file was bless. always used that when grabbing newer version content, just opened a JMS file on the right, let the repacker select the new nodes that were added, and copied them into my wz.

1) the benefit of "Select Duplicates" to remove all the duplicate nodes I had (since if you just blindly copy over things from one wz to another, you'll get a lot of dupes) - from there, you can simply just click delete property to remove them all. and
2) my favorite side-by-side view and comparison.

I'm on it! :cool: coming soon



Integration with Adobe Animate CC anyone? coming soon :)
 

DSG

Newbie Spellweaver
Joined
Jan 23, 2018
Messages
30
Reaction score
2
This isn't really needed, but maybe add a "hash node" to all images/sound, and when saving have an option to where if it detects duplicate hashes remove duplicate images and instead link them to one image for the sake of reducing filesize.
 
Back
Top