Sign in to follow this  
Budda

WStats - Track your addiction

Recommended Posts

A few days ago I was just looking through my Wurm install, and noticed that I had a bunch of skill dumps that the client was automatically saving each time I played, so I decided to do something with them.

That thing, turned into WStats. A program that loads in all of those skill dumps automatically, and shows the player/skill combos you want on a graph, so you can see how your skills are going over time.

It took me most of today to create it and get it to a point where I think it is fully functional. All I need now is for people to test/use it and give me some feedback on how to improve it, or whether you run into any bugs/problems.

For an idea of what it does, see the following image:

wstats.PNG

Readme:

=================================================
        _______________________________________
|\    /|  ____ \__  __/  ___  )__  __/  ____ \
| )  ( | (    \/  ) (  | (  ) |  ) (  | (    \/
| | _ | | (_____  | |  | (___) |  | |  | (_____
| |( )| |_____  )  | |  |  ___  |  | |  (_____  )
| || || |    ) |  | |  | (  ) |  | |        ) |
| () () |\____) |  | |  | )  ( |  | |  /\____) |
(_______)_______)  )_(  |/    \|  )_(  \_______)

=================================================
=================================================
=================================================

Introduction:

WStats is a program to track and compare skills
in the game Wurm Online.
Each of your Wurm characters skill dump files are
loaded automatically and will be plotted on a
graph when you choose the Player/Skill combo that
you would like to view.

=================================================
=================================================

Instructions:

1. Make sure you have automatic skill dumps
  turned on in your Wurm client

2. Run the included jar file, WStats.jar

3. Your characters and skill dumps will be
  automatically loaded

4. Choose the player and skill you want to see,
  then click the "Add" button. The graph will be
  updated with the new combo

5. Add more, or delete an existing combo by
  selecting it from the list and clicking remove

=================================================
=================================================

Troubleshooting:

If no skills appear in the second drop down box,
make sure the "data" folder with "skills.txt" is
in the same directory as "WStats.jar".

If nothing happens when double clicking the jar
file, use the run.bat file.

If you get an error like the following:
--------------
'java' is not recognized as an internal or
external command, operable program or batch file.
--------------
when running the batch file, then swap "java" in
the batch file with your full path to java.exe.

=================================================
=================================================

Any other problems you find, please let Budda
know either on the forums, or on irc.rizon.net.

Thank you, and enjoy,
Budda

Changelog:

29/01/11
Released to public.
Fixed various bugs that came up after people tested it.
Added ability to zoom in and out.

30/01/11
Added a bit of colour.
Added ToolTips.
Added horizontal rules to help show skill levels.

You can download the program from:

http://sourceforge.net/projects/wprograms/files/WStats/WStats.rar/download'> http://sourceforge.net/projects/wprograms/files/WStats/WStats.rar/download

Source avaliable from:

http://sourceforge.net/projects/wprograms/files/WStats/

Share this post


Link to post
Share on other sites

I've always wanted something like this to keep track of my progression.

I just want someone to verify it doesn't call home first before I download and install it but good addition.

Share this post


Link to post
Share on other sites

I've always wanted something like this to keep track of my progression.

I just want someone to verify it doesn't call home first before I download and install it but good addition.

Source at http://buddat.net/wstats/src.rar

Edit: For anyone that actually looks at this, please ignore any potential spaghetti code that may have worked itself into the code :P

Share this post


Link to post
Share on other sites

Seems like it would be a cool program, but I can't seem to run it.

I have Java installed and am running Windows Vista. Any advice?

Share this post


Link to post
Share on other sites

Seems like it would be a cool program, but I can't seem to run it.

I have Java installed and am running Windows Vista. Any advice?

Make a batch file, and put in it:

java -jar WStats.jar
pause

And paste any output here.

Share this post


Link to post
Share on other sites
C:\Users\Conrad\Documents\WStats>java -jar WStats.jar
com.wurmonline.client node exists: true
Exception in thread "main" java.lang.reflect.InvocationTargetException
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at java.lang.reflect.Method.invoke(Unknown Source)
        at org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader.main(JarRsrcLoa
der.java:58)
Caused by: java.lang.NullPointerException
        at net.buddat.wstats.Player.loadDumps(Player.java:36)
        at net.buddat.wstats.Player.<init>(Player.java:27)
        at net.buddat.wstats.WStats.loadPlayers(WStats.java:145)
        at net.buddat.wstats.WStats.<init>(WStats.java:65)
        at net.buddat.wstats.WStats.main(WStats.java:52)
        ... 5 more

C:\Users\Conrad\Documents\WStats>pause
Press any key to continue . . .

Share this post


Link to post
Share on other sites

This is really neat! I've also been craving something to be able to see my progress in a more tangible way. Will definitely use it.  ;)

Share this post


Link to post
Share on other sites

C:\Program Files (x86)\Wurm Online\WStats>java -jar WStats.jar

'java' is not recognized as an internal or external command,

operable program or batch file.

C:\Program Files (x86)\Wurm Online\WStats>pause

Press any key to continue . . .

Share this post


Link to post
Share on other sites

C:\Users\Conrad\Documents\WStats>java -jar WStats.jar
com.wurmonline.client node exists: true
Exception in thread "main" java.lang.reflect.InvocationTargetException
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at java.lang.reflect.Method.invoke(Unknown Source)
        at org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader.main(JarRsrcLoa
der.java:58)
Caused by: java.lang.NullPointerException
        at net.buddat.wstats.Player.loadDumps(Player.java:36)
        at net.buddat.wstats.Player.<init>(Player.java:27)
        at net.buddat.wstats.WStats.loadPlayers(WStats.java:145)
        at net.buddat.wstats.WStats.<init>(WStats.java:65)
        at net.buddat.wstats.WStats.main(WStats.java:52)
        ... 5 more

C:\Users\Conrad\Documents\WStats>pause
Press any key to continue . . .

This is because one or all of your players don't have any dump files. I'm fixing this problem now, will post when I've updated the download.

C:\Program Files (x86)\Wurm Online\WStats>java -jar WStats.jar

'java' is not recognized as an internal or external command,

operable program or batch file.

C:\Program Files (x86)\Wurm Online\WStats>pause

Press any key to continue . . .

You need to set your PATH variable, or swap out "java" in the batch file with the path to your java.exe.

So normally it'd be:

"C:\Program Files (x86)\Java\jre6\bin\java.exe" -jar WStats.jar
pause

Share this post


Link to post
Share on other sites

Ok, download has been updated to fix the problem of missing skill dumps.

Also included a batch file to run if the jar file doesn't work for you.

Any errors, please post them here.

Share this post


Link to post
Share on other sites

Same error with updated client as previously posted.

Do you mean lack of skilldumps at all? I have a full folder, if that's what you meant.

SX9A8.png

Share this post


Link to post
Share on other sites

Great job, I worked on something like this a long time ago called "WurmTool" some may remember it, but I never got around to adding a progression tracker. Again, great job!

Edit: So far my only complaint is that it won't let me run if even one of the folders doesn't have dumps, i usually leave dumps off for my useless alts.

Share this post


Link to post
Share on other sites

@DragonPen: Would you be up for jumping on irc to help me test and fix this? If not, is the error exactly the same? Including the last part:

Caused by: java.lang.NullPointerException
        at net.buddat.wstats.Player.loadDumps(Player.java:36)
        at net.buddat.wstats.Player.<init>(Player.java:27)
        at net.buddat.wstats.WStats.loadPlayers(WStats.java:145)
        at net.buddat.wstats.WStats.<init>(WStats.java:65)
        at net.buddat.wstats.WStats.main(WStats.java:52)

Share this post


Link to post
Share on other sites

Edit: So far my only complaint is that it won't let me run if even one of the folders doesn't have dumps, i usually leave dumps off for my useless alts.

Share this post


Link to post
Share on other sites

Yeah, I also looked through the source, no outside communication at all for those paranoid ones.

Share this post


Link to post
Share on other sites

Download has been updated.

Fixed that problem and tested on my end.

Let me know if its still happening for anyone.

Share this post


Link to post
Share on other sites

C:\Program Files (x86)\Wurm Online\WStats>"C:\Program Files (x86)\Java\jre6\bin\

java.exe" -jar WStats.jar

com.wurmonline.client node exists: true

Exception in thread "main" java.lang.reflect.InvocationTargetException

        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)

        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)

        at java.lang.reflect.Method.invoke(Unknown Source)

        at org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader.main(JarRsrcLoa

der.java:58)

Caused by: java.lang.StringIndexOutOfBoundsException: String index out of range:

-1

        at java.lang.String.substring(Unknown Source)

        at net.buddat.wstats.Player.loadDumps(Player.java:68)

        at net.buddat.wstats.Player.<init>(Player.java:30)

        at net.buddat.wstats.WStats.loadPlayers(WStats.java:145)

        at net.buddat.wstats.WStats.<init>(WStats.java:65)

        at net.buddat.wstats.WStats.main(WStats.java:52)

        ... 5 more

C:\Program Files (x86)\Wurm Online\WStats>pause

Press any key to continue . . .

Cleared my cache on firefox twice and redownloaded a few times and still the same.

Share this post


Link to post
Share on other sites

Have no idea what would even be causing that problem Taliesin, but I've put in a bit of a hack-fix to try make it work.

Download again and give it a go.

Share this post


Link to post
Share on other sites

C:\Program Files (x86)\Wurm Online\WStats>"C:\Program Files (x86)\Java\jre6\bin\

java.exe" -jar WStats.jar

com.wurmonline.client node exists: true

Exception in thread "main" java.lang.reflect.InvocationTargetException

        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)

        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)

        at java.lang.reflect.Method.invoke(Unknown Source)

        at org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader.main(JarRsrcLoa

der.java:58)

Caused by: java.lang.ArrayIndexOutOfBoundsException: 1

        at net.buddat.wstats.Player.loadDumps(Player.java:67)

        at net.buddat.wstats.Player.<init>(Player.java:30)

        at net.buddat.wstats.WStats.loadPlayers(WStats.java:145)

        at net.buddat.wstats.WStats.<init>(WStats.java:65)

        at net.buddat.wstats.WStats.main(WStats.java:52)

        ... 5 more

C:\Program Files (x86)\Wurm Online\WStats>pause

Press any key to continue . . .

Share this post


Link to post
Share on other sites

Have you edited any of your skill dump files in any way? The only reason you'd be getting those errors is if one of your skill dumps wasn't the default format that the client saves.

If you don't think you've edited any in any way, I'll set up a debug version so we can tell what file is the problem.

Share this post


Link to post
Share on other sites

Found the issue. debug.20110112.1659.txt The debug files save to the skill dump folder. Deleted them and it starts right up.

Share this post


Link to post
Share on other sites

stats.png

Take note of the dates. That may be something you can work out down the road so that they don't run in to each other.

C:\Program Files (x86)\Wurm Online\WStats>"C:\Program Files (x86)\Java\jre6\bin\

java.exe" -jar WStats.jar

com.wurmonline.client node exists: true

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException

        at net.buddat.wstats.Player.getSkill(Player.java:99)

        at net.buddat.wstats.Graph.<init>(WStats.java:252)

        at net.buddat.wstats.WStats.updateGraph(WStats.java:194)

        at net.buddat.wstats.WStats.addCombo(WStats.java:173)

        at net.buddat.wstats.WStats.actionPerformed(WStats.java:163)

        at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)

        at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)

        at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)

        at javax.swing.DefaultButtonModel.setPressed(Unknown Source)

        at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Sour

ce)

        at java.awt.Component.processMouseEvent(Unknown Source)

        at javax.swing.JComponent.processMouseEvent(Unknown Source)

        at java.awt.Component.processEvent(Unknown Source)

        at java.awt.Container.processEvent(Unknown Source)

        at java.awt.Component.dispatchEventImpl(Unknown Source)

        at java.awt.Container.dispatchEventImpl(Unknown Source)

        at java.awt.Component.dispatchEvent(Unknown Source)

        at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)

        at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)

        at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)

        at java.awt.Container.dispatchEventImpl(Unknown Source)

        at java.awt.Window.dispatchEventImpl(Unknown Source)

        at java.awt.Component.dispatchEvent(Unknown Source)

        at java.awt.EventQueue.dispatchEvent(Unknown Source)

        at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)

        at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)

        at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)

        at java.awt.EventDispatchThread.pumpEvents(Unknown Source)

        at java.awt.EventDispatchThread.pumpEvents(Unknown Source)

        at java.awt.EventDispatchThread.run(Unknown Source)

I got this error when I tried to add a skill.

Share this post


Link to post
Share on other sites

A nice addition would be the ability to space out the markers by using the scroll feature on the mouse. I'd like to know how much my binges have contributed to my skills ;D

Share this post


Link to post
Share on other sites

make it open source. who tells me this isn't reading the saved passwords and sending them somewhere?

Share this post


Link to post
Share on other sites

make it open source. who tells me this isn't reading the saved passwords and sending them somewhere?

Share this post


Link to post
Share on other sites

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
Sign in to follow this