Jump to content
Forgot your email address? ×
×
×
  • Create New...

Eter Manager Tool


Recommended Posts

M2 Download Center

Hidden Content

    Give reaction to this post to see the hidden content.
( 102241 + Source )

Hidden Content

    Give reaction to this post to see the hidden content.
( 10141274 )

Hi, I've been working on a more complete Eter management solution, still a work-in-progress.

 

Introduction & description

 

I've always hated the lack of organization when building or editing large quantities of files using the current tools, also they all lack a good UI, as a result I started making my own. It's meant to have a profile-based approach (you create your profile, which corresponds to a client) and all files regarding this and only this profile will be in the same place. This is a community-driven project, so I'll change it according to our needs.

Requirements

- .NET framework 4.5, previous versions won't work for the simple fact that I'm using some of the latest updates (which lack downward compatibility).

 

FAQs

Spoiler

 

Q: Is the project Open-Source?

A: No, not yet. I'll make it open-source once a stable version is released, this will guarantee that everyone works on maintainable code-base (still much work to be done).

 

Q: Why is the main executable file packed?

A: I'm trying to prevent code leakages until I make it open-source. You can easily test it in a VM and monitor its behaviour...

 

Q: What are all those files distributed along with the executable?

A: Since not everyone has the same version of .NET framework, I've included all additional dependencies (you still need .NET framework 4.5 installed).

 

Q:Found a bug. How should I report it?

A: If an exception was raised and not handled (a message will alert you), send me the errorLog.txt, aswell as thoroughdescription of your actions prior to said exception (or bug). If the bug is related to unpacking or packing any file, send me those files, aswell as your application.settings and profile.settings. Irreproducible bugs will be ignored.

Q: Where are unpacked & packed files stored?

A: userData/{ProfileName}/unpack & userData/{ProfileName}/pack

File description

Spoiler

- EterTool.exe => Main executable file, packed.

- System.Windows.Controls.Input.Toolkit.dll, System.Xaml.dll and WPFToolkit.dll => needed dependencies (local copies)

- LzoModule.dll => .NET wrapper of the oberhumer.com LZO implementation.

- msvcr120.dll => Needed dependency of LZoModule.dll, DO NOT replace this file, as some of you might have different versions of it, it might throw a "BadFormat" exception.

- ApplicationUpdater.exe => Very poorly coded (didn't want to waste any time on it hehe) application updater, just so you can easily update to the latest versions (this file isn't packed).

Main features list

- Profile-based approach to improve organization (

Hidden Content

    Give reaction to this post to see the hidden content.
)

- Index preview, and item selection (both for unpacking and packing,

Hidden Content

    Give reaction to this post to see the hidden content.
)

- Quick unpack and repack functions (

Hidden Content

    Give reaction to this post to see the hidden content.
,

Hidden Content

    Give reaction to this post to see the hidden content.
)

- Size optimizer, it finds duplicates and not compressed files (

Hidden Content

    Give reaction to this post to see the hidden content.
)

Planned development

- Implement global quick pack & repack, it will enable users to quickly process files outside of the current profile. (implemented)

- Improve Size Optimizer, adding the capability to automatically repack all needed files instead of just showing informaton.

- Improve "Output log" and "Detailed log" windows. (implemented)

- Improve human-error prevention and exception handling (the most importat one, at the moment)

- Add support for multi-threaded unpacking & packing actions while also setting a user-defined limit, for example:

-- You can add 20 files to the operations list, while only X being processed at a time, to prevent crashes.

Known issues and limitations

- Limitation: if an item inside the epk file is greater than 600mb (or its encryption/decryption size), the file will be ignored, this is a known limitation of the .NET framework for programs targeting x86 architectures (the real cap is somewhere between 1.2-1.6gb, but to prevent crashes I downsized it)

- No support for multi-threaded actions.

- Sometimes when clicking enter it won't update the GridView (FIXED)

- Packing with quick unpack will output a wrong file Path

How to setup your profile

Spoiler

- If needed, I might make a video or post some more images, but it's fairly simple:

1. Open the program, it will show up a message saying it didn't find the CWD.

2. Go to Profile Manager -> Manage

3. Change to your settings (at this stage, please include the CWD with backslashes given that Data Validation is in a very early stage)

3.1 Good example:

Hidden Content

    Give reaction to this post to see the hidden content.
// Bad example:

Hidden Content

    Give reaction to this post to see the hidden content.

4. Hit "Save settings" button. (You might need to restart the program after saving)

5. Go to the "Select file from CWD" group and it all should be ready, start typing a file an auto-suggestion will show up (

Hidden Content

    Give reaction to this post to see the hidden content.
)

6. In order for the GridView to update, you MUST click enter on the selected file, this is the action trigger.

IMPORTANT NOTE:

In some files, you'll notice a message in the "Output log" window alerting you to some files with different hash than expected, this is due to the fact that most eix files are not 100% accuretly built. You can confirm the integrity of the file by extracting the same file with Tim's unpacker, you'll notice it's the same checksum.

PLEASE READ THIS BEFORE USING THE SIZE OPTIMIZER.

Download: Mega.co.nz VT~

Change-log

Spoiler

1.0.14.1274 - On 21-02-2014

- Fixed Output log unreferenced object.

- Fixed encoding when packing files.

1.0.15.0 - On 22-02-2014

-> Repacking now properly updates the progress UI.

-> Fixed a bug where repacking would not get logged.

-> Improved exception handling and minor changes in the Detailed log view.

-> Other small bugfixes.

Version 1.1.0.0 - On 24-02-2014

-> Fixed several memory leaks

-> Improved exception handling

-> Minor grammar typos fixed

-> Fixed a bug where Filename CRC hash was not being correctly written (this would cause the client to not be able to read the files packed with the tool)

-> Export to XML implemented (compatible with Tim's unpacker)

-> You can now quickly select/deselect items on the quick unpack/repack window, aswell as set its packing type (repack window)

Hidden Content

    Give reaction to this post to see the hidden content.

Version 1.1.0.58 - On 25-02-2014

-> Fixed a bug which prevented Quick Unpack from creating valid files.

-> Added 2 new options to applicationSettings (self-explanatory):

- BypassUnpackingIfAlreadyUnpacked

- BypassPackingIfAlreadyPacked

-> You can now select which files to overwrite individually (overriding the global settings)

-> Compression level changed to 999 from 1 (it will be slightly slower but the final size will be smaller)

Credits & final notes

Used oberhumer.com for the LZO algorithm.

Thanks to:

- Tim, for helping me out understand how Eter files work, general architectural design input and guidance.

- Marty, for helping me find out some major bugs, aswell as pointing out various errors in my implementations.

- MadTiago, MarcoTuna, Pacificador, Kforce and Alejandro, for being my test slaves :P.

  • Metin2 Dev 19
  • Love 38
  • Love 5
  • Good 8
  • Lmao 1
  • Confused 1
  • Dislove 1
Link to comment

My antivirus has detected as a virus  :blink:

74FC8.png

 

If you will publish the source in the future, why did you pack the exe? :ph34r:

FAQs

Q: Why is the main executable file packed?

A: I'm trying to prevent code leakages until I make it open-source. You can easily test it in a VM and monitor its behaviour...

when you return 0 and server doesn't boot:

unknown.png

Link to comment

My antivirus has detected as a virus  :blink:

74FC8.png

 

If you will publish the source in the future, why did you pack the exe? :ph34r:

 

Maybe since he doesn't want to publish the source yet he also wants to protect the exe until he publishes the source.

Link to comment
System.NullReferenceException: Nesne başvurusu bir nesnenin örneğine ayarlanmadı.
   konum: EterTool.ViewModels.MainViewModel.<UnpackFilesAction>b__20()
   konum: System.Threading.Tasks.Task.InnerInvoke()
   konum: System.Threading.Tasks.Task.Execute()
--- Özel durumun oluşturulduğu önceki konumdan başlayan yığın izlemesinin sonu ---
   konum: System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   konum: System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   konum: System.Runtime.CompilerServices.TaskAwaiter.GetResult()
   konum: EterTool.ViewModels.MainViewModel.<UnpackFilesAction>d__23.MoveNext()
--- Özel durumun oluşturulduğu önceki konumdan başlayan yığın izlemesinin sonu ---
   konum: System.Runtime.CompilerServices.AsyncMethodBuilderCore.<ThrowAsync>b__4(Object state)
   konum: System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
   konum: MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen(Object source, Delegate method, Object args, Int32 numArgs, Delegate catchHandler)
 
 
what i should do :)
Link to comment

My antivirus has detected as a virus  :blink:

74FC8.png

 

If you will publish the source in the future, why did you pack the exe? :ph34r:

 VT scan addded.

 

System.NullReferenceException: Nesne başvurusu bir nesnenin örneğine ayarlanmadı.

   konum: EterTool.ViewModels.MainViewModel.<UnpackFilesAction>b__20()

   konum: System.Threading.Tasks.Task.InnerInvoke()

   konum: System.Threading.Tasks.Task.Execute()

--- Özel durumun oluşturulduğu önceki konumdan başlayan yığın izlemesinin sonu ---

   konum: System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)

   konum: System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)

   konum: System.Runtime.CompilerServices.TaskAwaiter.GetResult()

   konum: EterTool.ViewModels.MainViewModel.<UnpackFilesAction>d__23.MoveNext()

--- Özel durumun oluşturulduğu önceki konumdan başlayan yığın izlemesinin sonu ---

   konum: System.Runtime.CompilerServices.AsyncMethodBuilderCore.<ThrowAsync>b__4(Object state)

   konum: System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)

   konum: MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen(Object source, Delegate method, Object args, Int32 numArgs, Delegate catchHandler)

 

 

what i should do :)

Please read the FAQ. Send me the files, I need to be able to reproduce the issue...

Link to comment

oh my bad

 

i was wrong put files to folder so thanks for replies :)

but then when will support type 3 and 4 so just important is thats already

There are some far more important features to implement, it will eventually support them though.

Link to comment

Change-log:

Version 1.0.15.0 - On 22-02-2014

-> Repacking now properly updates the progress UI.

-> Fixed a bug where repacking would not get logged.

-> Improved exception handling and minor changes in the Detailed log view.

-> Other small bugfixes.

Regarding the size optimizer, some of you reported that it finds items which are not real duplicates, why does this happen?

Simply because the EIX files are not 100% accurate, the exptected CRC hash is not correct, basically.

Notice how Eter Tool tells you the exptected hash is different (

Hidden Content

    Give reaction to this post to see the hidden content.
). But if you compare the output file with Tim's unpacker, it's the same, but different than the exptected by the EIX file (

Hidden Content

    Give reaction to this post to see the hidden content.
).

Conclusion: if you want a 100% accurate Size optimizer analysis you must unpack ALL thefiles in your client and repack them again (using my tool or any other which gets the correct CRC hash).

  • Metin2 Dev 1
  • Love 1
  • Good 1
Link to comment

When I try to extract root from official metin2 client I recive makepackscript_onlyrootnopython.txt and only non python files.

From now, EtherNexus and other extractors is innutile because simply NOT WORKING

Link to comment

Change-log:

Version 1.0.15.0 - On 22-02-2014

-> Repacking now properly updates the progress UI.

-> Fixed a bug where repacking would not get logged.

-> Improved exception handling and minor changes in the Detailed log view.

-> Other small bugfixes.

Regarding the size optimizer, some of you reported that it finds items which are not real duplicates, why does this happen?

Simply because the EIX files are not 100% accurate, the exptected CRC hash is not correct, basically.

Notice how Eter Tool tells you the exptected hash is different (

Hidden Content

    Give reaction to this post to see the hidden content.
). But if you compare the output file with Tim's unpacker, it's the same, but different than the exptected by the EIX file (

Hidden Content

    Give reaction to this post to see the hidden content.
).

Conclusion: if you want a 100% accurate Size optimizer analysis you must unpack ALL thefiles in your client and repack them again (using my tool or any other which gets the correct CRC hash).

important things do not work

 

so not working "export the xml file" 

Link to comment

important things do not work

 

so not working "export the xml file"

I'm aware of it, I should start working on it tomorrow. Also, I found a huge memory leak which is already corrected. The next version will have both of these implemented and fixed.

  • Love 1
Link to comment

I'm aware of it, I should start working on it tomorrow. Also, I found a huge memory leak which is already corrected. The next version will have both of these implemented and fixed.

ah awesome so thanks :) we waiting with be impatient

Link to comment

I'm aware of it, I should start working on it tomorrow. Also, I found a huge memory leak which is already corrected. The next version will have both of these implemented and fixed.

 

what is your status to "export the xml file" :)

Link to comment

what is your status to "export the xml file" :)

I can't give you an ETA, since there are more pressing matters (e.g: the leaked binaries source seem to be unable to decompress data compressed with compression level 1, thus files wouldn't work). A new version should be released in the next few days though...
Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Announcements

  • -15% Discount in Metin2 Dev Store (01/10/2021 => 31/12/2021) => Code => 15_PCT_OCT_TO_DEC_2021


Important Information

Terms of Use / Privacy Policy / Guidelines / We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.