Skill Scanner

jdegre

Elite
Joined
Dec 24, 2005
Posts
2,961
Location
Madrid, Spain
Society
Survival Program
Avatar Name
Jesus jdegre de Gregorio
hi,

i've made a small program to extract skills info from screenshots; the same as EUComp or NRF did but, hopefully, it should work with the new skill screens.

please find detailed info here:

Skill Scanner

the program has been in beta testing for several months now, and it is getting quite ready to a "release" status. still, if you find out bugs or parsing errors, please let me know by PM, email, or posting here.

any other kind of suggestions, impressions, recommendations, etc... are extremely welcome.

main features:
- the scanner parses your in-game skill screens and shows skill levels, skill tt value and skill market value
- market values are calculated from peauction.com prices
- profession levels are calculated (not parsed from in-game screens); there are some high-level unlockable skills, whose influence in the professions is unknown, so some professions might not be 100% accurate. (texture-related professions are completely unknown yet).
- you can export skill and profession levels to a text file formatted in Comma-Separated-Values (CSV), to be used with other applications.

additional features (only if you have an account in the chipping optimizer; read below, in the "donation-ware" paragraph, about how to get an account):
- you can save your skills with 1-click in the chipping tool
- you can load your skills from the chipping tool and check your progress comparing your current skill set and your last saved skill set
- same progress tracking, but applied to profession levels


known issues:
- the scanner relies on the windows clipboard to get the content of the in-game screenshots. there are issues related to the way the Java system handles this clipboard that makes it difficult to co-exist with other clipboard-reading applications (such as PEAss, AutoScreen, and such). if you experience problems with it, please turn off temporarily any of these applications while you run the skill scanner
- the gamma setting (when you're running in full-screen mode) should be set around the center point of the slider. most probably, it will work ok with other settings too, but if you move it too much to the extremes (i.e. too dark or too bright), the parser may fail



Note: this software is donation-ware. what does this mean?:


i was asked some time ago (in the chipping optimizer thread) if the scanner program was going to be released "for free", or for "subscribers only", and my answer was that it was going to be "donation-ware", the same model as the chipping optimizer web app.

this means that it is absolutely free to use and people have no "obligation" whatsoever to donate, if they choose so. but, it is very appreciated if those people that find the application useful, and use it frequently, decide to support its development with a small donation.

this model has been "reasonably" successful with the chipping optimizer (which means that, in terms of donated money, it barely covers the web site hosting fees, but you get the idea, i appreciate people's gesture of contributing to it).

i have included a "donate" link, so people can donate via paypal. other than that, if people wants to donate ingame peds, that's also ok.

donators to the scanner tool, will also be "rewarded" with an account in the chipping optimizer.

some people seem to be a little bit confused about this model, and they usually ask me what's the purpose of paying for a feature (the account) that does not really add a lot of functionality to the tool (it is more of a "convenience", to save you some typing and stuff...). well, the answer is that i'm not "selling" the account functionality; instead, i'm simply asking for donations to support the development of these (and future) tools; the "account" thing, is simply a kind of reward for donators.

if you want a simple comparison, it is similar to the old EF forum donations, where people contributed to support the forum, and they were rewarded with minor forum function enhancements (such as a rep boost), but they were not "buying" these features. hope it is clearer now :)



cheers,
/jdegre.
 
Last edited:
It rocks! :wtg:

Thank you!
 
Great! I was afraid I would have to do get my half working code going for it :)

Will you (maybe when you've tested it a bit more) share it with the NRF guy?
He is looking for help with code for this.

Would be great if also NRF would start working again.

Darn, can +rep you now, another time :)
 
Great job :yay:

I have a feature request for you right away (wihout even ever trying the tool ;)). If its not too much work to make, it would be great if we could also read chat, so that the result is in seqeuntial order, without double or missing lines. Would be very usefull to test attachments.

Will give it a try soon, tnx for making this.
 
Great! I was afraid I would have to do get my half working code going for it :)

Will you (maybe when you've tested it a bit more) share it with the NRF guy?
He is looking for help with code for this.

Would be great if also NRF would start working again.

Darn, can +rep you now, another time :)

i've been in contact with squee, and we've been sharing our respective approaches and comparing some ideas.

however, sharing code does not seem feasible since NRF is C++ and my app is Java (not mentioning that my code maturity is very low atm, which makes it very unsuitable for reusing).
 
Ok I see. Maybe I should dust off my code then anyhow.

My code works for the trade window currently, (except for "alferix" for some reason), by comparing font samples taken from screen shots to extract the text.
also has character withs, and tries with different offsets, to cope with un-even kerning.

It should be possible to adapt for the skill view by adding a filter function to filter out only the pixels with high luminosity (text is pretty bright), and a new font sample table...

Do yours work along the same lines?

My code is available in C#, easily portable to C/C++, and an old version in plain C that probably works for the chat still :)
 
...and my app is Java (not mentioning that my code maturity is very low atm, which makes it very unsuitable for reusing).
Ooh... Nice with a Java app :)
Any chance of making it Open Source?
 
Thx works perfectly :yay:
 
Ok I see. Maybe I should dust off my code then anyhow.

My code works for the trade window currently, (except for "alferix" for some reason), by comparing font samples taken from screen shots to extract the text.
also has character withs, and tries with different offsets, to cope with un-even kerning.

It should be possible to adapt for the skill view by adding a filter function to filter out only the pixels with high luminosity (text is pretty bright), and a new font sample table...

Do yours work along the same lines?

My code is available in C#, easily portable to C/C++, and an old version in plain C that probably works for the chat still :)

yeah, that's the basic approach of my program too. i think that squee was investigating a pure OCR approach (character recognition, instead of bitmap matching), which is much more flexible, but extremely harder to implement.
 
Tried it out, checked off skills from in game, 100% correct, ignoring the decimal part. Exported to CSV, checked off again, 100% correct.

Nice to see it working so well at such an early stage. Obviously the basics are working well, reading in skills and parsing. Now just to add some more functionality in the application.

There are many possibilities of what you can do from here, and I am excited to see what comes next.

Always happy to test.

Shaz Monaro.
 
yeah, that's the basic approach of my program too. i think that squee was investigating a pure OCR approach (character recognition, instead of bitmap matching), which is much more flexible, but extremely harder to implement.

Also quite a bit of overkill for the problem, I'd say...
Bitmap matching should be both faster, and when all bugs straightened out 100% accurate. The font drawing is always centered in the same pixel, and the kerning is constant.

My alferix bug is because of the l and f touches each other, and my code can't handle that right now... (shouldn't be hard to fix though, I've just been to lazy :))
 
it would be great if we could also read chat, so that the result is in seqeuntial order, without double or missing lines. Would be very usefull to test attachments.

i'm affraid that my app is not suited for that task, since it would require:
- real-time processing of a certain screen region (scanned actively)
- generic OCR, instead of bitmap matching of predefined patterns
- capability to work with highly translucent backgrounds
and neither of them can be done with my the current approach of my skill parser.

i'd love to have an app like you said (and finally prove my >25% missed shots while hunting :silly2:), and i have also requested it before here in EF, but unfortunately my app is not an option for it.
 
Flawless and easy to use.

TYWM!

(now where is that :beer: emoticon to offer some?)
 
i'm affraid that my app is not suited for that task, since it would require:
- real-time processing of a certain screen region (scanned actively)
- generic OCR, instead of bitmap matching of predefined patterns
- capability to work with highly translucent backgrounds
and neither of them can be done with my the current approach of my skill parser.

i'd love to have an app like you said (and finally prove my >25% missed shots while hunting :silly2:), and i have also requested it before here in EF, but unfortunately my app is not an option for it.

So the bitmaps need to be square and continuous? I can imagine you just try to find a match for the pixel combination of the letter itself, ignoring the background entirely.
 
Ahh man you saved me some work :D I was about to code something like that myself but now i can safe that time and play instead :yay:

I know you do clean aproaches here but what about some ocr that most ppl have anyway? MS office includes the imaging lib which i used for some apps now and as most ppl have MS Office it would be at least an option ... ofc i prefer standalone too ;)
 
...
I know you do clean aproaches here but what about some ocr that most ppl have anyway? MS office includes the imaging lib which i used for some apps now and as most ppl have MS Office it would be at least an option ... ofc i prefer standalone too ;)
I doubt that you can integrate with an office library from Java.

Besides, Java developers usually don't have MS Office, we have Open Office ;)
 
So the bitmaps need to be square and continuous? I can imagine you just try to find a match for the pixel combination of the letter itself, ignoring the background entirely.

the problem is to differentiate what pixels belong to the letter itself and which ones to the background, when the chat window is highly translucent; the skills panel is only moderately translucent, and it is kinda manageable.

in any case, i think i'll give it a try, and i'll try to see how well or bad my code behaves with these images, but honestly, i don't have much hope on it.
 
I doubt that you can integrate with an office library from Java.
Besides, Java developers usually don't have MS Office, we have Open Office ;)
Open Office FTW ... ah wait Latex ftw :D

But in theory you could do that with c#/.net ... no need to go into more detail as it's not the best way to do it ;)
 
hello

i use windows xp pro x64 edition
and i already installed java and jre 6 update 3
however i can't run the scanner.jar cause it was associated with winrar first and now no program to associate..

your app supports 64 bit or i am doing something wrong?
 
i use windows xp pro x64 edition
and i already installed java and jre 6 update 3
however i can't run the scanner.jar cause it was associated with winrar first and now no program to associate..

your app supports 64 bit or i am doing something wrong?

i guess you've changed manually the association for jar files in the past, right?

in that case, you must re-associate the jar extension with "Java (TM) Platform SE binary".

simply, right click on the jar file, choose "Open with", then "Choose Program", and select that option from the list (clicking the checkbox "Always use this program to open these files").

these are the options under win2k, my shitty box at work :) ... i guess it is something like that under winxp

/jdegre.
 
Was about to write "I love your tool" but then i realised.. thats sounds.. .well.. uhmm...

Good program though ;)
 
yes i did associated with Java (TM) Platform SE binary there are two; java and javaw. tried both: java version simply runs something in a dos window for a second and disappears. javaw version says (Java Virtual Machine Launcher) "Could not find the main class. Program will exit."

any more suggestions?
 
yes i did associated with Java (TM) Platform SE binary there are two; java and javaw. tried both: java version simply runs something in a dos window for a second and disappears. javaw version says (Java Virtual Machine Launcher) "Could not find the main class. Program will exit."

any more suggestions?

hmmm, not sure what you mean by that, in my box i don't have to select "java" or "javaw"... when i click "open with..." i have two options:
- "Java(TM) Platform SE binary", which is internally associated with javaw.exe (plus other parameters), but you don't really see that, it's defined in the windows registry
- "Java(TM) Web Start Launcher", which is internally associated with javaws.exe

it is the first option you must choose; definitely it is not java.exe, but you should not need to specify neither java.exe nor javaw.exe, explicitely.
 
yes i did associated with Java (TM) Platform SE binary there are two; java and javaw. tried both: java version simply runs something in a dos window for a second and disappears. javaw version says (Java Virtual Machine Launcher) "Could not find the main class. Program will exit."

any more suggestions?

hmmm, not sure what you mean by that, in my box i don't have to select "java" or "javaw"... when i click "open with..." i have two options:
- "Java(TM) Platform SE binary", which is internally associated with javaw.exe (plus other parameters), but you don't really see that, it's defined in the windows registry
- "Java(TM) Web Start Launcher", which is internally associated with javaws.exe

it is the first option you must choose; definitely it is not java.exe, but you should not need to specify neither java.exe nor javaw.exe, explicitely.

I think this might be the problem...
...simply, right click on the jar file, choose "Open with", then "Choose Program"...
You shouldn't have to click "Choose program", but just "Open with", and then choose from the list, if your Java installation worked correctly.

Maybe :scratch2:
 
I think this might be the problem...

You shouldn't have to click "Choose program", but just "Open with", and then choose from the list, if your Java installation worked correctly.

Maybe :scratch2:

i'm at home now (winxp) and that's different in both windows versions. but in any case, as you say, if the java installation is ok, the option "Java(TM) Platform SE binary" should appear as such, with no need to pick an specific "exe" file from the file system.

@rep: it really looks like your java installation is screwed somehow; i'd recommend un-installing, and doing a fresh install again.
 
Works perfect in window mode.
If i play fullscreen the program crashes..
Or it doesnt crash, it just.. well.. when i tab back out its .. white.. empty.. nothingness..
 
Works perfect in window mode.
If i play fullscreen the program crashes..
Or it doesnt crash, it just.. well.. when i tab back out its .. white.. empty.. nothingness..

are you running PEAss at the same time?
while in EU, when you press print-scrn, do you hear the camera sound, and after some seconds do you hear the confirmation sound?
does the bottom part of the program (the text console) shows any info at all?

(i need detailed info about the problems, guys... :D )
 
Back
Top