Coder Social home page Coder Social logo

aianlinb / visualggpk2 Goto Github PK

View Code? Open in Web Editor NEW
150.0 11.0 31.0 1.74 MB

Library for Content.ggpk of PathOfExile (Rewrite of libggpk)

License: GNU Affero General Public License v3.0

C# 93.58% C++ 6.42%
pathofexile ggpk poe path-of-exile game-data bundle dds

visualggpk2's Introduction

No longer updating. Bug fixing only.

Notice

This project is reserved for VisualGGPK2. For development or learning, It's highly recommended to use LibGGPK3 instead.

All projects in this repository are not thread-safe. Do not process a single ggpk file with more than one thread.

LibGGPK2

Library for Content.ggpk of game PathOfExile.

Rewrite of https://github.com/aianlinb/libggpk

VisualGGPK2

A Windows-Only desktop program to view/edit ggpk file.

image

What's New? (than libggpk)

  • Directly access the files in bundles.
  • No longer read all Records of GGPK at the beginning.
  • The new file added will replace existing FreeRecord instead of being appended to the end of the GGPK.
  • Correctly handle all NextFreeRecordOffset of FreeRecord.
  • No longer allow other programs to modify GGPK file when opening it.
  • Left click the folder to expand it.
  • Replacing by directory.
  • Filter files by their path.
  • Recovering files from patch server.
  • Vista style folder selector.
  • Export/Replace in background.
  • ProgressBar to view the current work progress.
  • Fix DDS viewer.
  • Directly edit and save in TextViewer.
  • Custom exception window instead of crashing.
  • Port from .NET Framework to .NET Core.
  • Remove unnecessary code.
  • Add support to .dat64 .datl .datl64 files.
  • Allow editing the whole dat file.
  • Import data from csv to a dat file.
  • Automatically check for updates.
  • Batch convert dds files to png.
  • Allow zooming with the mouse wheel in ImageViewer

visualggpk2's People

Contributors

aianlinb avatar dependabot[bot] avatar snowhawk04 avatar zaafar avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

visualggpk2's Issues

Error report for VisualGGPK2 v0.15.2

Game version: 3.1901.2.1 Tencent version
(The preliminary judgment version does not affect the test results)
Software version: VisualGGPK 0.15.2

Specific problems:
1)ROOT\Bundles2\Data\Simplified Chinese\ArchnemesisMods.dat64
2)ROOT\Bundles2\Data\Simplified Chinese\Chests.dat64
3)ROOT\Bundles2\Data\Simplified Chinese\MonsterVarieties.dat64
(Only these files have been briefly tested, not all of them.)

Try Questions:
After importing the.csv file, the game will be unable to start.
A direct replacement using an existing patch (Data.9.bundle) (using VisualGGPK) does not cause this problem.

Test process:
During the test, it was found that after repeated "export-to-re-import" operation on the.csv file, the number of Spaces in the file would be increased (one space would be increased each time "export-to-re-import"), usually in a structure similar to ", x "(Comma + space + character). Since the "export.csv" file was also carried out through this software, Therefore, we are not sure whether it is the bug in the export process or the import process. For details, please refer to the following figure and description.

After comparing and testing files such as ActiveSkills.dat64, the "add whitespace" problem seems to occur:
A paragraph is located at "[.....]", Because other split test files also have text structures like ", x ", but the absence of "[.....]" does not cause the above problem.

Snipaste_2022-12-11_15-29-37

(The test file has been imported and re-exported twice)

Tip: Translator is used for translation ^_^.

GGPK工具打开选中Content.ggpk报错

System.DllNotFoundException: Unable to load DLL 'oo2core_9_win64.dll' or one of its dependencies: 找不到指定的模块。 (0x8007007E)
at LibBundle.BundleContainer.OodleLZ_Decompress(Byte[] buffer, Int32 bufferSize, Byte[] result, Int64 outputBufferSize, Int32 a, Int32 b, Int32 c, IntPtr d, Int64 e, IntPtr f, IntPtr g, IntPtr h, Int64 i, Int32 ThreadModule)
at LibBundle.BundleContainer.Read(BinaryReader br) in C:\LibGGPK2\LibBundle\BundleContainer.cs:line 115
at LibBundle.IndexContainer..ctor(BinaryReader br) in C:\LibGGPK2\LibBundle\IndexContainer.cs:line 27
at LibGGPK2.GGPKContainer..ctor(String path, Boolean BundleMode, Boolean SteamMode, Boolean BuildTree) in C:\LibGGPK2\LibGGPK2\GGPKContainer.cs:line 92
at VisualGGPK2.MainWindow.b__13_0() in C:\LibGGPK2\VisualGGPK2\MainWindow.xaml.cs:line 134
at System.Threading.Tasks.Task`1.InnerInvoke()
at System.Threading.Tasks.Task.<>c.<.cctor>b__272_0(Object obj)
at System.Threading.ExecutionContext.RunFromThreadPoolDispatchLoop(Thread threadPoolThread, ExecutionContext executionContext, ContextCallback callback, Object state)
--- End of stack trace from previous location ---
at System.Threading.ExecutionContext.RunFromThreadPoolDispatchLoop(Thread threadPoolThread, ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot, Thread threadPoolThread)
--- End of stack trace from previous location ---
at VisualGGPK2.MainWindow.OnLoaded(Object sender, RoutedEventArgs e) in C:\LibGGPK2\VisualGGPK2\MainWindow.xaml.cs:line 134
at System.Threading.Tasks.Task.<>c.b__128_0(Object state)
at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)

我下载的最新的版本

Can't open GGPK since todays patch

Getting "System.OverflowException: Arithmetic operation resulted in an overflow.
at LibBundle.BundleContainer.Read(BinaryReader br) in G:\LibGGPK2-master\LibBundle\BundleContainer.cs:line 109" when opening ggpk

How to use VisualGGPK2?

Hi, I'd like to use the VisualGGPK2 but I have no idea how to even open it or download it for that matter. I also have no idea how to send you a message or comment so this is the only way I found.

Regards.

Any of the Mods.dat generates an error

image
I used the compiled version of LibGGPK2_v0.15.4
I do not fully understand your versions (I think there is version 2 and 3 running simultaneously) - sorry if I posted in the wrong thread

Error reading schemas not defined in schema.min.json (dat file with no fields)

There are some Enums in the schema.min.json with no values e.g.

enum AchievementSets @indexing(first: 0) { _ }

These are different from enums that have values e.g.

enum ActiveSkillTargetTypes @indexing(first: 1) {
  TARGETABLE_GROUND
  ENEMY
  WALKABLE_GROUND
  ANYWHERE_SELF_TARGET
  ITEM
  CORPSE
  _
  NO_LINE_OF_SIGHT
  BEHIND_MONSTER
  SELF_ORIGIN
  ROTATE_TO_TARGET
}

Libggpk2 crashes on these undefined enums as shown below.

image

It would be good if Libggpk2 don't crash on them and just consider them as integer starting from what's given in bracket i.e. (first: 1).

Errors on CraftingBench* dats

Hi,

I noticed the following files can't be viewed:

  • CraftingBenchOptions.dat
  • CraftingBenchSortCategories.dat

The error is

---------------------------
Error
---------------------------
System.Exception: CraftingBenchOptions.dat : Actual record length: 191 is not equal to that defined in DatDefinitions: 175

   at LibDat2.DatContainer..ctor(Stream stream, String fileName) in C:\LibGGPK2\LibDat2\DatContainer.cs:line 91

   at VisualGGPK2.MainWindow.OnTreeSelectedChanged(Object sender, RoutedPropertyChangedEventArgs`1 e) in C:\LibGGPK2\VisualGGPK2\MainWindow.xaml.cs:line 300
---------------------------
OK   
---------------------------

Questions about unpacking the LakeRooms.dat64 file

In the test study of LibGGPK2, it is found that v0.15.3 cannot unpack the description file. The error of VisualGGPK2 is shown as the following figure.
1

Test process:

  1. Edit the paragraph corresponding to LakeRooms in the latest version of github.com/poe-tool-dev/dat-schema (because there is no basis of C# language, the main method is to refer to the format of existing files, cry). The corresponding content was added to "datdefint. json" of "LibGGPK2" (see figure below), but it still cannot be resolved.
    2
  2. Use the built-in "Use schema.min.json" function in VisualGGPK2 to retrieve the json file of the online version, but it still cannot be parsed.
  3. After testing, the above files can be parsed by using "snosme.github.io/poe-dat-viewer/".

To sum up, we do not know whether the following guesses are correct:
The existing "schema.min.json" does not fully parse the "LakeRooms.dat64", so the result is that the" datdefint. json" modified with the contents of the "schema.min.json" does not fully parse. So VisualGGPK2 reported an error.

Tip: Because I do not have C# language foundation, also is not related practitioners, at present have tried to find a variety of ways to solve the problem, but still can not find a solution will come to ask you, I am very sorry to disturb you, and thank you for the answer.
Because of my love for games and my interest in the processing of Chinese-language files and other related files, I spend time on learning and testing. With a better understanding of the difficulty of parsing POE files, I am deeply impressed by the "LibGGPK" series of software you developed and the problems raised by the software soon received feedback. I would appreciate it very much if I could get your advice. I also hope that one day I can make a contribution to the game community.
Thank you

Replace to original files

I am trying to remove kinetic blast skill effect on Steam. Can you help me please? still I didnt understand this program. When i remove the lines and click save button, bundle location is changing. https://imgur.com/kHF49Ig i want to remove kinetic blast skill effect but i can't put my changes to original files. How can i do this? Is there any tutorial?

Great release! New functions maybe?

Hi there, great release man! For me it works perfectly for the little texture replacement I've already tried. Is there a way to add searching though the bundles and texture files?

Access denied when selecting Content.ggpk

When running VisualGGPK2.exe and choosing the Content.ggpk i immediately get the following error:

System.UnauthorizedAccessException: Access to the path 'D:\LibGGPK2_v0.11.4\Content.ggpk' is denied.
   at System.IO.FileStream.ValidateFileHandle(SafeFileHandle fileHandle)
   at System.IO.FileStream.CreateFileOpenHandle(FileMode mode, FileShare share, FileOptions options)
   at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options)
   at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share)
   at System.IO.File.Open(String path, FileMode mode, FileAccess access, FileShare share)
   at LibGGPK2.GGPKContainer..ctor(String path, Boolean BundleMode, Boolean SteamMode, Boolean BuildTree) in D:\GitHub\LibGGPK2\LibGGPK2\GGPKContainer.cs:line 63
   at VisualGGPK2.MainWindow.<OnLoaded>b__13_0() in D:\GitHub\LibGGPK2\VisualGGPK2\MainWindow.xaml.cs:line 99
   at System.Threading.Tasks.Task`1.InnerInvoke()
   at System.Threading.Tasks.Task.<>c.<.cctor>b__277_0(Object obj)
   at System.Threading.ExecutionContext.RunFromThreadPoolDispatchLoop(Thread threadPoolThread, ExecutionContext executionContext, ContextCallback callback, Object state)
--- End of stack trace from previous location ---
   at System.Threading.ExecutionContext.RunFromThreadPoolDispatchLoop(Thread threadPoolThread, ExecutionContext executionContext, ContextCallback callback, Object state)
   at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot, Thread threadPoolThread)
--- End of stack trace from previous location ---
   at VisualGGPK2.MainWindow.OnLoaded(Object sender, RoutedEventArgs e) in D:\GitHub\LibGGPK2\VisualGGPK2\MainWindow.xaml.cs:line 99
   at System.Threading.Tasks.Task.<>c.<ThrowAsync>b__140_0(Object state)
   at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
   at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)

The error occurs on C:\ and D:\ Drive.
The error occurs on C:\VisualGGPK\ and C:\Users\Admin\Downloads
The error occurs when running as administrator and without administrator rights.

Version: Pre-Release v0.11.4

error in v0.16.1 and v0.16.0

already ran PackCheck.exe and opened the game to let it download fixed files

in v0.16.1
when selecting .GGPK file,
1

in v0.16.0
it works well when selecting but cannot replace files
2

System.NullReferenceException

image

This had never happened to me before, started happening out of nowhere. My Content.ggpk seems to be fine, the game is running well.

It might be a problem on my end, so please don't worry about it, but if it's something you're familiar with, please let me know. Thanks!

bug reporting

When reading the content.ggpk file, an ErrorWindow appeared, saying the followings.
Can't figure out the solution, so I wonder if the author may help me with this.
ps: The first time I use LibGGPK2 several days ago it sucessed, and I exchanged some files also sucessed without crashing the game.


System.NullReferenceException: Object reference not set to an instance of an object.
at LibGGPK2.GGPKContainer..ctor(String path, Boolean BundleMode) in C:\LibGGPK2\LibGGPK2\GGPKContainer.cs:line 56
at VisualGGPK2.MainWindow.OnLoaded(Object sender, RoutedEventArgs e) in C:\LibGGPK2\VisualGGPK2\MainWindow.xaml.cs:line 71
at System.Windows.RoutedEventHandlerInfo.InvokeHandler(Object target, RoutedEventArgs routedEventArgs)
at System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised)
at System.Windows.UIElement.RaiseEventImpl(DependencyObject sender, RoutedEventArgs args)
at System.Windows.UIElement.RaiseEvent(RoutedEventArgs e)
at System.Windows.BroadcastEventHelper.BroadcastEvent(DependencyObject root, RoutedEvent routedEvent)
at System.Windows.BroadcastEventHelper.BroadcastLoadedEvent(Object root)
at MS.Internal.LoadedOrUnloadedOperation.DoWork()
at System.Windows.Media.MediaContext.FireLoadedPendingCallbacks()
at System.Windows.Media.MediaContext.FireInvokeOnRenderCallbacks()
at System.Windows.Media.MediaContext.RenderMessageHandlerCore(Object resizedCompositionTarget)
at System.Windows.Media.MediaContext.RenderMessageHandler(Object resizedCompositionTarget)
at System.Windows.Media.MediaContext.Resize(ICompositionTarget resizedCompositionTarget)
at System.Windows.Interop.HwndTarget.OnResize()
at System.Windows.Interop.HwndTarget.HandleMessage(WindowMessage msg, IntPtr wparam, IntPtr lparam)
at System.Windows.Interop.HwndSource.HwndTargetFilterMessage(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
at MS.Win32.HwndWrapper.WndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
at MS.Win32.HwndSubclass.DispatcherCallbackOperation(Object o)
at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)

Error report for 3.16 preload content.ggpk

I have downloaded new 3.16 preload content.ggpk from https://www.pathofexile.com/forum/view-thread/3187997

But cannot use visualggpk to view content for this new content.ggpk file.

image

stacktrace text as following:

System.OverflowException: Arithmetic operation resulted in an overflow.
   at LibBundle.BundleContainer.Read(BinaryReader br) in C:\LibGGPK2\LibBundle\BundleContainer.cs:line 109
   at LibGGPK2.Records.BundleFileNode.ReadFileContent(Stream ggpkStream) in C:\LibGGPK2\LibGGPK2\Records\BundleFileNode.cs:line 59
   at VisualGGPK2.MainWindow.OnTreeSelectedChanged(Object sender, RoutedPropertyChangedEventArgs`1 e) in C:\LibGGPK2\VisualGGPK2\MainWindow.xaml.cs:line 224
   at System.Windows.RoutedPropertyChangedEventArgs`1.InvokeEventHandler(Delegate genericHandler, Object genericTarget)
   at System.Windows.RoutedEventArgs.InvokeHandler(Delegate handler, Object target)
   at System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised)
   at System.Windows.UIElement.RaiseEventImpl(DependencyObject sender, RoutedEventArgs args)
   at System.Windows.Controls.TreeView.OnSelectedItemChanged(RoutedPropertyChangedEventArgs`1 e)
   at System.Windows.Controls.TreeView.ChangeSelection(Object data, TreeViewItem container, Boolean selected)
   at System.Windows.Controls.TreeViewItem.Select(Boolean selected)
   at System.Windows.Controls.TreeViewItem.OnGotFocus(RoutedEventArgs e)
   at System.Windows.UIElement.IsFocused_Changed(DependencyObject d, DependencyPropertyChangedEventArgs e)
   at System.Windows.FrameworkElement.OnPropertyChanged(DependencyPropertyChangedEventArgs e)
   at System.Windows.DependencyObject.NotifyPropertyChange(DependencyPropertyChangedEventArgs args)
   at System.Windows.DependencyObject.UpdateEffectiveValue(EntryIndex entryIndex, DependencyProperty dp, PropertyMetadata metadata, EffectiveValueEntry oldEntry, EffectiveValueEntry& newEntry, Boolean coerceWithDeferredReference, Boolean coerceWithCurrentValue, OperationType operationType)
   at System.Windows.DependencyObject.SetValueCommon(DependencyProperty dp, Object value, PropertyMetadata metadata, Boolean coerceWithDeferredReference, Boolean coerceWithCurrentValue, OperationType operationType, Boolean isInternal)
   at System.Windows.DependencyObject.SetValue(DependencyPropertyKey key, Object value)
   at System.Windows.Input.FocusManager.OnFocusedElementChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
   at System.Windows.FrameworkElement.OnPropertyChanged(DependencyPropertyChangedEventArgs e)
   at System.Windows.DependencyObject.NotifyPropertyChange(DependencyPropertyChangedEventArgs args)
   at System.Windows.DependencyObject.UpdateEffectiveValue(EntryIndex entryIndex, DependencyProperty dp, PropertyMetadata metadata, EffectiveValueEntry oldEntry, EffectiveValueEntry& newEntry, Boolean coerceWithDeferredReference, Boolean coerceWithCurrentValue, OperationType operationType)
   at System.Windows.DependencyObject.SetValueCommon(DependencyProperty dp, Object value, PropertyMetadata metadata, Boolean coerceWithDeferredReference, Boolean coerceWithCurrentValue, OperationType operationType, Boolean isInternal)
   at System.Windows.DependencyObject.SetValue(DependencyProperty dp, Object value)
   at System.Windows.Input.FocusManager.SetFocusedElement(DependencyObject element, IInputElement value)
   at System.Windows.Input.KeyboardNavigation.UpdateFocusedElement(DependencyObject focusTarget)
   at System.Windows.FrameworkElement.OnGotKeyboardFocus(Object sender, KeyboardFocusChangedEventArgs e)
   at System.Windows.RoutedEventArgs.InvokeHandler(Delegate handler, Object target)
   at System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised)
   at System.Windows.UIElement.RaiseEventImpl(DependencyObject sender, RoutedEventArgs args)
   at System.Windows.UIElement.RaiseTrustedEvent(RoutedEventArgs args)
   at System.Windows.Input.InputManager.ProcessStagingArea()
   at System.Windows.Input.KeyboardDevice.ChangeFocus(DependencyObject focus, Int32 timestamp)
   at System.Windows.Input.KeyboardDevice.TryChangeFocus(DependencyObject newFocus, IKeyboardInputProvider keyboardInputProvider, Boolean askOld, Boolean askNew, Boolean forceToNullIfFailed)
   at System.Windows.Input.KeyboardDevice.Focus(DependencyObject focus, Boolean askOld, Boolean askNew, Boolean forceToNullIfFailed)
   at System.Windows.Input.KeyboardDevice.Focus(IInputElement element)
   at System.Windows.UIElement.Focus()
   at System.Windows.Controls.TreeViewItem.OnMouseLeftButtonDown(MouseButtonEventArgs e)
   at System.Windows.UIElement.OnMouseLeftButtonDownThunk(Object sender, MouseButtonEventArgs e)
   at System.Windows.RoutedEventArgs.InvokeHandler(Delegate handler, Object target)
   at System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised)
   at System.Windows.UIElement.ReRaiseEventAs(DependencyObject sender, RoutedEventArgs args, RoutedEvent newEvent)
   at System.Windows.RoutedEventArgs.InvokeHandler(Delegate handler, Object target)
   at System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised)
   at System.Windows.UIElement.RaiseEventImpl(DependencyObject sender, RoutedEventArgs args)
   at System.Windows.UIElement.RaiseTrustedEvent(RoutedEventArgs args)
   at System.Windows.Input.InputManager.ProcessStagingArea()
   at System.Windows.Input.InputProviderSite.ReportInput(InputReport inputReport)
   at System.Windows.Interop.HwndMouseInputProvider.ReportInput(IntPtr hwnd, InputMode mode, Int32 timestamp, RawMouseActions actions, Int32 x, Int32 y, Int32 wheel)
   at System.Windows.Interop.HwndMouseInputProvider.FilterMessage(IntPtr hwnd, WindowMessage msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
   at System.Windows.Interop.HwndSource.InputFilterMessage(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
   at MS.Win32.HwndWrapper.WndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
   at MS.Win32.HwndSubclass.DispatcherCallbackOperation(Object o)
   at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
   at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)

大大安安,又來麻煩你了, v0.12.6在Save Chests.dat64后只能進入城鎮,進入有有箱子的地圖游戲會直接關閉消失掉。

大大安安, 又來打擾你了,v0.12.6在Save Chests.dat64后只能進入城鎮和藏匿處,進入有箱子的地圖游戲會沒有任何提示直接關閉消失掉。
只是用v0.12.6 打開Chests.dat64檔,沒有對Chests.dat64檔做任何修改,按下Save保存,也會是這樣進入有箱子的地圖就會沒有任何提示游戲直接關閉消失,但是游戲任何地圖都會有chests箱子,不管是十個章節地圖還是異界地圖。

delete files and folder inside contentpkk?

hi i want to remove some spells from the content ggpk but i did not see an option to delete files?

if i try to import an empty folder it doesnt work nor can i delete files directly. any ideas?

大大安安,又又來麻煩你了,v0.12.17在Save Mods.dat64進入游戲后過一會兒游戲會無響應然後關閉消失掉。

大大安安,又來麻煩你了,v0.12.17在Save Mods.dat64進入游戲后過一會兒游戲會無響應然後關閉消失掉。
直接打開Mods.dat64點Save保存,不修改任何文字,也是一樣會過一會兒游戲無響應后關閉消失,用Recovery從游戲服務器更新文檔后就能夠正常進行游戲,不會過一會兒關閉消失。
而且不能點倉庫,不能打開角色背包,只要進行開倉庫和角色背包的操作,大概率游戲會關閉。

Replacing bundle.bin has no effect.

Step to reproduce:

  1. edit any files in _Tiny_1.bundle.bin using normal mode of this program.
  2. Save with build-in function of the program. (Save button on the right-top of files edit block)
  3. Reopen the program using bundle mode.
  4. Export _Tiny_1.bundle.bin to any folder.
  5. Restore _Tiny_1.bundle.bin using build-in function of the program. (Recovery option in right-click menu)
  6. Reopen the program using normal mode Or open the game, you would notice that the restore has no effect.

The problem exist when you use Replace function with _Tiny_1.bundle.bin, too.

Update:
Here is what I found, if I edit any file inside a bundle using the program (let's say monster.oc in tiny1 bundle),
and export the bundle. if I edit the file again (monster.oc), then replacing the tiny1 bundle with previous exported bundle will cause the monster.oc has invalid offset, I think maybe the offset info is not restore though?

Update again(with workaround):
It might be my issue.
When you edit the file's in a bundle, the program append or relocate the edited files to suitable positions of the ggpk, and the original position of these file's will be mark as Free, then the program update the index.bin file to match the current offset of each file. As the result, only replacing current bundle with exported bundle backup is not enough, you need to replace the "_.index.bin" to the index file that match your exported bundle to make the "bundle restoration" work.
Please kindly correct me if there is any misunderstanding or danger operation, thanks. Great work by the way.

Error report for 3.19 content.ggpk tecent

Game version: 3.1901.2.1 Tencent version
Software version: VisualGGPK 0.15.1

Specific problems:
1)ROOT\Bundles2\Data\Simplified Chinese\ActiveSkills.dat
2)ROOT\Bundles2\Data\Simplified Chinese\ActiveSkills.dat64

After the above two files are exported in.csv format in VisualGGPK2, modify the.csv file and import it. Some active skills in the game cannot be used, and "this skill cannot be used" is displayed in the game.

Note: The text content of the.csv file is modified based on the patch file published by amsco2, and the replacement process is only for content other than numbers (such as the term "description").

Try Questions:

  1. The skills can be used directly after the original content.ggpk is replaced, so the judgment is a problem when the file is exported and exported;
  2. Try to export the.csv file and direct it back to the original path (without modifying any content). When you open the game, you find that the skill cannot be used;
  3. Using the existing patch (Data.9.bundle) for direct replacement (using VisualGGPK) will not cause this problem.

In addition, after importing and replacing the.csv file through testing, there are still problems with CraftingBenchOptions and map launcher:

  1. Process table: After opening the process table and putting in the equipment, the process affixes will display "equipment type error";
  2. Map launcher: Originally, the first item was selected automatically (it seems to improve item rarity, I don't know), but now you need to select it manually.
    Since the above two problems do not affect the use, the craft table can select the process affix according to the actual situation of the equipment, which can be marked with affix. The map launcher can also be used normally, so it does not affect the operation of the game intuitively. However, these two problems have not been further tested.

Tip: Translator is used for translation ^_^.

Steam mode not working?

I am saving the files and open the game nothing changes sir. Can you please try this? Save it and close and then open the program again nothing is change

大大安安,v0.12.5保存chests.dat按下Save時會報錯。上次説的Words.dat已經可以正常地Save了。

上次説的Words.dat已經在v0.12.5可以正常地Save了,但是chests.dat按下Save時會報錯,上次chests.dat可以正常地按下Save啊,(●ˇ∀ˇ●),報錯的·Text如下:

System.ArgumentException: An item with the same key has already been added. Key: [74, Metadata/Chests/Barrels/Barrel1.ao]
at System.Collections.Generic.TreeSet1.AddIfNotPresent(T item) at System.Collections.Generic.SortedDictionary2.Add(TKey key, TValue value)
at LibDat2.Types.ReferenceDataBase1.Write(BinaryWriter writer) in C:\LibGGPK2\LibDat2\Types\ReferenceDataBase.cs:line 72 at LibDat2.Types.ArrayData1.WriteInDataSection(BinaryWriter writer) in C:\LibGGPK2\LibDat2\Types\ArrayData.cs:line 206
at LibDat2.Types.ReferenceDataBase1.Write(BinaryWriter writer) in C:\LibGGPK2\LibDat2\Types\ReferenceDataBase.cs:line 81 at LibDat2.Types.ArrayData1.Write(BinaryWriter writer) in C:\LibGGPK2\LibDat2\Types\ArrayData.cs:line 143
at LibDat2.DatContainer.Save(Stream stream, Boolean x64, Boolean UTF32) in C:\LibGGPK2\LibDat2\DatContainer.cs:line 384
at LibDat2.DatContainer.Save(Boolean x64, Boolean UTF32) in C:\LibGGPK2\LibDat2\DatContainer.cs:line 363
at VisualGGPK2.MainWindow.OnSaveDatClicked(Object sender, RoutedEventArgs e) in C:\LibGGPK2\VisualGGPK2\MainWindow_Dat.cs:line 197
at System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised)
at System.Windows.UIElement.RaiseEventImpl(DependencyObject sender, RoutedEventArgs args)
at System.Windows.Controls.Primitives.ButtonBase.OnClick()
at System.Windows.Controls.Button.OnClick()
at System.Windows.Controls.Primitives.ButtonBase.OnMouseLeftButtonUp(MouseButtonEventArgs e)
at System.Windows.RoutedEventArgs.InvokeHandler(Delegate handler, Object target)
at System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised)
at System.Windows.UIElement.ReRaiseEventAs(DependencyObject sender, RoutedEventArgs args, RoutedEvent newEvent)
at System.Windows.RoutedEventArgs.InvokeHandler(Delegate handler, Object target)
at System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised)
at System.Windows.UIElement.RaiseEventImpl(DependencyObject sender, RoutedEventArgs args)
at System.Windows.UIElement.RaiseTrustedEvent(RoutedEventArgs args)
at System.Windows.Input.InputManager.ProcessStagingArea()
at System.Windows.Input.InputProviderSite.ReportInput(InputReport inputReport)
at System.Windows.Interop.HwndMouseInputProvider.ReportInput(IntPtr hwnd, InputMode mode, Int32 timestamp, RawMouseActions actions, Int32 x, Int32 y, Int32 wheel)
at System.Windows.Interop.HwndMouseInputProvider.FilterMessage(IntPtr hwnd, WindowMessage msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
at System.Windows.Interop.HwndSource.InputFilterMessage(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
at MS.Win32.HwndWrapper.WndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
at MS.Win32.HwndSubclass.DispatcherCallbackOperation(Object o)
at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)
image

extract torrent ggpk

System.OverflowException: Arithmetic operation resulted in an overflow.
at LibBundle.BundleContainer.Read(BinaryReader br) in D:\GitHub\LibGGPK2\LibBundle\BundleContainer.cs:line 109
at LibGGPK2.GGPKContainer.Export(IEnumerable`1 list, Action ProgressStep) in D:\GitHub\LibGGPK2\LibGGPK2\GGPKContainer.cs:line 211
at VisualGGPK2.MainWindow.<>c__DisplayClass23_0.b__0() in D:\GitHub\LibGGPK2\VisualGGPK2\MainWindow.xaml.cs:line 450

libggpk2 should skip missing files and extract available files.

How do I read the files now? I think their encoded?

I utilize the LibBundle and LibGGPK dll's to parse through the ggpk files.

I then download a target file (finding it by supplying the hash).

But when I download the file in my custom app, the file is encoded? How do I decode it?

Here's how I download the FileRecord
Untitled

Here's what the file looks like when I download it
Untitled

大大你好,v0.12.4在編輯.dat檔案后保存時彈出ErrorWidow報錯下面是報錯的Text

大大你好,v0.12.4在編輯.dat檔案后保存時彈出ErrorWidow報錯下面是報錯的Text,我編輯的是Words.dat這個檔案,他的物品名字在VisualGGPK2程式裏是Text和Text2的項目裏,不管是那個Text編輯后按Save保存都會彈出下面的錯誤,我還有編輯BaseItemTypes.dat這個檔,它的物品名字是在Name項目裏,所以編輯後保存就可以正常地保存,不會彈出窗體報錯。
謝謝大大。

System.NullReferenceException: Object reference not set to an instance of an object.
at LibDat2.DatContainer.WriteType(BinaryWriter writer, Object o, Int64& pointer, String type) in C:\LibGGPK2\LibDat2\DatContainer.cs:line 636
at LibDat2.DatContainer.Save(Stream stream, Boolean x64, Boolean UTF32) in C:\LibGGPK2\LibDat2\DatContainer.cs:line 526
at LibDat2.DatContainer.Save(Boolean x64, Boolean UTF32) in C:\LibGGPK2\LibDat2\DatContainer.cs:line 504
at VisualGGPK2.MainWindow.OnSaveDatClicked(Object sender, RoutedEventArgs e) in C:\LibGGPK2\VisualGGPK2\MainWindow_Dat.cs:line 257
at System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised)
at System.Windows.UIElement.RaiseEventImpl(DependencyObject sender, RoutedEventArgs args)
at System.Windows.Controls.Primitives.ButtonBase.OnClick()
at System.Windows.Controls.Button.OnClick()
at System.Windows.Controls.Primitives.ButtonBase.OnMouseLeftButtonUp(MouseButtonEventArgs e)
at System.Windows.RoutedEventArgs.InvokeHandler(Delegate handler, Object target)
at System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised)
at System.Windows.UIElement.ReRaiseEventAs(DependencyObject sender, RoutedEventArgs args, RoutedEvent newEvent)
at System.Windows.RoutedEventArgs.InvokeHandler(Delegate handler, Object target)
at System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised)
at System.Windows.UIElement.RaiseEventImpl(DependencyObject sender, RoutedEventArgs args)
at System.Windows.UIElement.RaiseTrustedEvent(RoutedEventArgs args)
at System.Windows.Input.InputManager.ProcessStagingArea()
at System.Windows.Input.InputProviderSite.ReportInput(InputReport inputReport)
at System.Windows.Interop.HwndMouseInputProvider.ReportInput(IntPtr hwnd, InputMode mode, Int32 timestamp, RawMouseActions actions, Int32 x, Int32 y, Int32 wheel)
at System.Windows.Interop.HwndMouseInputProvider.FilterMessage(IntPtr hwnd, WindowMessage msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
at System.Windows.Interop.HwndSource.InputFilterMessage(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
at MS.Win32.HwndWrapper.WndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
at MS.Win32.HwndSubclass.DispatcherCallbackOperation(Object o)
at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)

大佬,这是不是启动程序的问题

image
System.DllNotFoundException: Unable to load DLL 'oo2core_9_win64.dll' or one of its dependencies: 找不到指定的模块。 (0x8007007E)
at LibBundle.BundleContainer.OodleLZ_Decompress(Byte[] buffer, Int32 bufferSize, Byte[] result, Int64 outputBufferSize, Int32 a, Int32 b, Int32 c, IntPtr d, Int64 e, IntPtr f, IntPtr g, IntPtr h, Int64 i, Int32 ThreadModule)
at LibBundle.BundleContainer.Read(BinaryReader br) in C:\LibGGPK2\LibBundle\BundleContainer.cs:line 115
at LibBundle.IndexContainer..ctor(BinaryReader br) in C:\LibGGPK2\LibBundle\IndexContainer.cs:line 27
at LibGGPK2.GGPKContainer..ctor(String path, Boolean BundleMode, Boolean SteamMode, Boolean BuildTree) in C:\LibGGPK2\LibGGPK2\GGPKContainer.cs:line 92
at VisualGGPK2.MainWindow.b__13_0() in C:\LibGGPK2\VisualGGPK2\MainWindow.xaml.cs:line 134
at System.Threading.Tasks.Task`1.InnerInvoke()
at System.Threading.Tasks.Task.<>c.<.cctor>b__272_0(Object obj)
at System.Threading.ExecutionContext.RunFromThreadPoolDispatchLoop(Thread threadPoolThread, ExecutionContext executionContext, ContextCallback callback, Object state)
--- End of stack trace from previous location ---
at System.Threading.ExecutionContext.RunFromThreadPoolDispatchLoop(Thread threadPoolThread, ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot, Thread threadPoolThread)
--- End of stack trace from previous location ---
at VisualGGPK2.MainWindow.OnLoaded(Object sender, RoutedEventArgs e) in C:\LibGGPK2\VisualGGPK2\MainWindow.xaml.cs:line 134
at System.Threading.Tasks.Task.<>c.b__128_0(Object state)
at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)

Question.

Can I get a discord ID or something to talk with one of the devs or someone who could help me with something related to poe and libggpk2?

How to clear a filter?

Sorry for the noob question, let's say I put the filter ".dat" and press the filter button.
After doing my research, I want to clear the ".dat" filter & show all the files again.
How do I clear it? If I clear the filter field and press "Filter" button again, it makes the application hang.

Game client overwrites ggpk every time it starts!

I replaced a couple of npc dialog files with similar filenames, but at startup the client somehow realized that the files were not original and downloaded them. Is there any way to bypass the startup check? or by what criteria does the client, in addition to the file name, understand that it is not original?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.