I am new to this forum and have played PE for about a month. I have mostly been hunting and skilling axes and hangun since I started. I really want to get to the 800 LB mark for my mentor since he was so nice to me when i started (@470 right now).
I have been looking around for a auto logger for skilling to keep track of amount of skills gained, damage done, etc… basically anything that shows up in the chat window. To my surprise i couldn’t really find one… please point me to one if i am missing it.
If not… i am pretty sure i can write something that will log some of the basic chat messages using screen capture and some basic image processing. It would be written in Java and probably stored out to a csv file or something so it can be imported into excel. What I don’t have a handle on yet is a method to store loot gained, or kills and other stuff that doesn’t show up in the chat window. I don’t think i can do that automatically, but maybe with a special key combination, ex… hold control… type in pec amount… release control. For kills, it could just be pressing a special key combination.
So, two questions…
Would something like this be useful to people… or just end up being to cumbersome to use?
Can you offer me an design help to make this a more useful program?
I really like the idea, just a shame that PE do state they dont allow 3rd party. In sayong this, its not a cheat and if all you are doing is logging your statistical information, its just the same as writing it down I suppose.
you should ask MA if they’d be ok with it. I for one would think it was great with a tool that can read damage done and stuff automatically so you don’t have to write it down yourself for stats making.
Ya, its a good idea to ask MindArk… I’ll do that. Although, unlike auto clickers, there is really no way to tell whether the software is running or not.
Thanks for the replys & i’ll let you know what MindArk says
Well, a way to make thins kind of software without breaking the EULA would be to take screenshots regularly (up to you to find how much time between each screen ^^) and then, after a logout, launching another application which will process all the screenshots.
Afaik, screenshots aren’t forbidden (else many many many ppl would be banned :D) so, i don’t see why you couldn’t make a soft which’ll take some “intelligent” screenshots (like not taking all the 1024*768 pixels but far less, like the lower left corner)
As for the processing of the infos, i think it would be far better to do it when PE is not running since, most of the time, image processing (moreover in Java) is kinda a heavy process which will take memory, processor time and certainly disk accesses so, it’ll certainly have some effects if you run PE in the meanwhile.
Just my thoughts about that, but something like that would be useful imho.
The EULA says you cant use 3rd party software that interacts with PE, a screenshot program doesnt “interact” with PE so it should be fine, everybody uses screenshots anyway, so your not going to get banned
Good idea btw, if you made a good program i’d be interested in using it
Well, can’t help you much, other than to say if you want to do some screenshot manipulation to grab the numbers/letters, then maybe PEStats can help
I’ve got almost the whole Alphabet, and hopefully i can grab most text off an image and process it, with a bit of time, like 5 seconds for 13 images :), but then again you only need a little block
BTW, about chatting to MA, i’ve tried, they said they won’t make any special arrangements for 3rd party apps (like making the skills saveable to the current dir or elsewhere), otherwise it’d be so easy to get stats for my program, so i’m restricted by the EULA.
anyway if you do make it, could it perhaps also be an opensource project, so i can join in (and then you can also get free hosting at sourceforge)
Hmmm… If MindArk give you the go-ahead for this then maybe you should speak to FireW0lf (my boyfriend), he’s an excellent programmer and has been for many many years. If you need any advice on the design etc he’d definitely be the one to ask :yup:
[QUOTE=CareBear]
Ya, its a good idea to ask MindArk… I’ll do that. Although, unlike auto clickers, there is really no way to tell whether the software is running or not.
Thanks for the replys & i’ll let you know what MindArk says
[/QUOTE]
A good autoclicker is also undetectable if you code it right
The program you are suggesting, as you have written does not interact with PE
If it actually sat watching the network packets, decoded them, and then took the data that stated what damage you have dealt/received, then yes, it would be interacting (and would actually be far easier to write than the safe method you are suggesting). A simple screenshot/OCR program does not though
Go for it, as I would be very interested in a copy of that. It would make updating the damage table far easier (automated in fact)
One more thing you may wish to add… Contact MindBuster (admin here at EF) or Starfinder (PERC) or one of the other popular PE websites, and ask them to host a server for this. You could then implement an option to upload to server in your client, and pretty damn soon we would have a permanently up-to-date list
Ya, i think i will at least implement something. If ma says “stop it” I will have to.
I think since my capture area will be quite small and i will only have to keep like 2 captures at a time for comparison (maybe more), the memory usage won’t be that much. Of course as mentioned, the java vm itself is around 20 megs of memory. Processing power might hurt depending on how often i capture, and i will probably have to capture quite often not to miss anything. Also, rather then trying to read in all text i’ll probably store much of the text from previous captures and do a point by point comparison of the particular font color - X% err. I will of course have to have the ability to read in the numbers in the case of damage done.
I still don’t know how i will figure other things like… what mob was being attacked, loot obtained, etc. I’ll have to think more about it.
Anoyomouse… thanks for the link and i’ll look through your image processing to see if i can use some of the algorithms. And yes, i’ll make it an open source project since i don’t care to profit from any of it.
If we get to the point where this is a useful program, I can look into having an upload server to keep stats.
I’m writing a similar program myself, using screenshots and running OCR to log the chat window, I’ve got all of the image acquisition code down but I’ve run into some pretty significant performance issues and development has slowed. details below.
Running a packet inspector and reverse engineering MA’s protocol would be probably the “best” way to get the data, as far as completeness and overhead are conserned, however that brings up serious EULA issues, even if the app can be easily hidden in a number of ways. Ripping the data out of what’s rendered on screen is arguably much less invasive.
You can forget about using the system screenshot services, don’t even bother. The performance will lag significantly, you can even try it, just hit the screenshot key rapidly and watch it pause slightly everytime. I figure you’ll have to shoot about 4 fps to not miss any messages unless you run around with the chat window expanded. You’ll have to hook the DX9 interface, lock the back buffer and then copy whole Dwords into your own image buffer. C standard memmory functions like memcpy will incur a 4x performance penalty because they’ll only copy byte by byte. Chances are this loop is going to have to be assembly code. The code I have now just uses straight c functions and when it’s running it makes an obnoxious stuttering as it freezes ever so slightly 4 or 5 frames a second. I have no idea how well Java will perform in this instance. I would bet on using it for the post process more myself and get some really tight C code to actually acquire the images, and even then expect frame rates to drop noticeably.
Pulling the text out of the chat window could be easier, unfortunatly the black background is semi-transparent. with a little image processing it shouldn’t be too difficult to pull out the text accurately.
You won’t be able to get away without hooking into PE’s process, so there’s nothing that can be done to make the process completely undetectable.
Did anyone think of simply asking MA to activate logging to ChatWindow.txt ?
PM’s and private chat’s are logged already, it’s reasonable that it would take MA a lot less work to log the main window than it would take you to do it yourself.
[QUOTE=Dirk]
Did anyone think of simply asking MA to activate logging to ChatWindow.txt ?
PM’s and private chat’s are logged already, it’s reasonable that it would take MA a lot less work to log the main window than it would take you to do it yourself.
[/QUOTE]
I think the file of that would be huge - my pm chat log is 2mb (pm’s are usually just a couple of lines of text) and the fact that the normal chat window is scrolling 99% of the time you are online, would mean the chat log would get very big, very quickly.
Size should not really be a problem, but I dont understand if you mean the size is a reason for MA not to impliment it. Surely the size of the file will be the same regardless of it being made by MA or a 3rd party app?
Java has a system method capture only a portion of the screen at anygiven time, so hopfully performance will be better. I don’t know how the guts are written though… could really be “capture whole screen, return just a portion”. I would hope not though. I will definitly test this out first before going to far. If the frame rate drops as you say, then I’d be at a road block.
As far as looking at the packets… no way… i like my avatar Plus, i would really, really, hope that the packets are well encrypted, ensuring that no one can look at them.
As far as the semi transparent background… i will only look at the colors of the font, plus i will subtract some sort of error percent for a match… this should take care of it.