Unofficial Offline Skilltree Calc (Delete the Data folder to update. Stop posting "update please" )

omg all saved builds are gone.
i think this program needs some online save service.
or save as file function.
i guess i need to take screenshot on very important build..........
Last edited by rsthrsdj#2909 on Feb 18, 2013, 10:22:23 AM
or you could copy the link or whatever.
What did you to to have all your builds deleted? delete the savedBuilds file?
"
Hapseleg wrote:
I got a suggestion for a new feature:

A button that (un)hides the stats so that you got more space to work on (+ it blinds me with all that white ^^)

Keep up the great work!


I can write down both my hands under this - hiding left panel would be great idea - like in other programs

Also keep in mind these ability to rename build name, delete build with confirmation, rearrange them (top, down by dragging) - very usable when u have say over 10 builds.

Possibility to choose which char subclass builds we look for: lets say I have 4 saved builds of Witch, 7 Templars, 3 Marauders.... and currently I play Ranger and compare lets say 3 various builds so I have ...17 characters and dont want lost in the whole mess ;) So I click tab "Rangers" and see only saves with this class. There should be 6 tabs.
Just posting to say thanks very much for making this...awesome tool.
IGN: Procz/Proczie
This may already have been mentioned above (so apologies if it has), but when I'm creating a build and I click on the main starting node of my chosen class (the one that displays the character's strength, dexterity and intelligence) the program crashes with an IndexOutOfRangeException.
I tried this for each class and it happens in all cases. This only happens when clicking on the selected class' starting node and not when clicking on a different starting node.

The full stack trace can be found in the spoiler below.

Spoiler

The error time: 02/18/2013 23:25
Exception: System.IndexOutOfRangeException: Index was outside the bounds of the array.
at POESKillTree.SkillTree.SaveToURL()
at POESKillTree.MainWindow.border1_Click(Object sender, RoutedEventArgs e)
at System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised)
at System.Windows.UIElement.RaiseEventImpl(DependencyObject sender, RoutedEventArgs args)
at System.Windows.UIElement.OnMouseUpThunk(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.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 MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen(Object source, Delegate method, Object args, Int32 numArgs, Delegate catchHandler)
"
Anisana wrote:
This may already have been mentioned above (so apologies if it has), but when I'm creating a build and I click on the main starting node of my chosen class (the one that displays the character's strength, dexterity and intelligence) the program crashes with an IndexOutOfRangeException.
I tried this for each class and it happens in all cases. This only happens when clicking on the selected class' starting node and not when clicking on a different starting node.

The full stack trace can be found in the spoiler below.

Spoiler

The error time: 02/18/2013 23:25
Exception: System.IndexOutOfRangeException: Index was outside the bounds of the array.
at POESKillTree.SkillTree.SaveToURL()
at POESKillTree.MainWindow.border1_Click(Object sender, RoutedEventArgs e)
at System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised)
at System.Windows.UIElement.RaiseEventImpl(DependencyObject sender, RoutedEventArgs args)
at System.Windows.UIElement.OnMouseUpThunk(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.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 MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen(Object source, Delegate method, Object args, Int32 numArgs, Delegate catchHandler)


Urg, this is what happens when you use other peoples code without checking it throughly...
Gonna fix it soon.
Are you planning on adding a build optimizer? meaning, if I 'lock' certain nodes I know I want then the program will run a path-finding solution to get all of the nodes I have locked with as few points as possible (and perhaps avoiding certain nodes I've marked as well.)
"
EldanOfChaos wrote:
Are you planning on adding a build optimizer? meaning, if I 'lock' certain nodes I know I want then the program will run a path-finding solution to get all of the nodes I have locked with as few points as possible (and perhaps avoiding certain nodes I've marked as well.)

Well we would have already implemented that, if that would be the optimal solution...
You can just greedily find the shortes path to each of your marked nodes and add them one after the other. In fact, I believe that's already implemented and there could be a button for that.
But thats far from optimal.
What we actually would like to achieve is a solution for the Steiner-tree-problem: http://en.wikipedia.org/wiki/Steiner_tree_problem
Given a set of connected nodes (a graph) and a subset of nodes (your marked ones), find a minimal spanning tree that contains at least all of the marked nodes.
Sadly, it's NP and therefore most likely not solvable efficiently. Even more sadly, the best known efficient approximation algorithms are up to 1.69 (your path-finding idea) or 1.55 as costly as the optimal solution (Meaning that you could save up to 70% of nodes depending on the setup).

TL;DR: I guess the greedy solution is a good starting point, but far from optimal.
Unofficial Offline Skilltree Tool by Headhorr and me:
http://www.pathofexile.com/forum/view-thread/19723

kenzen naru tamashii wa,
kenzen naru seishin to,
kenzen naru nikutai ni yadoru.
Last edited by ArtificialMind#7315 on Feb 19, 2013, 6:20:23 AM
That's a really good point. You already have a solution to start from because the user selected it. You're trying to find a more efficient solution. This means you can cull anything that uses more nodes than what you have selected which means you don't have to travel every path of the tree. I don't imagine you're going to find the most optimized algorithm anytime soon, though. Do you think that you could put in a greedy solution now and optimize later?

I guess the real question is given how many nodes there are and possible paths how long would it take the standard computer to find the most efficient route? Is it even worth your time?

Perhaps you could handle it like most chess programs where you can choose parameters of how long you want the computer to work on the problems so that it's not sitting for forever until it finds the best path.

Just a suggestion, it would be really helpful if there was a "comments" tab in addition to the attributes tab -- an area where we could store our comments about gear or gems we would like to have for that particular point count. Again, great piece of software!

Report Forum Post

Report Account:

Report Type

Additional Info