Since there seems to be some demand for a Classic version of AutoIMO, and I quite often find myself bored, I decided to write one last night. I have done some testing on it and it seems to work, but who knows if something random won't cause it to get confused.
Please note: Since I haven't done any prolonged testing, this will be considered a test version. No client/computer/whatever corruption should happen, but the program may crash. As such, I will be using this thread for updates and for crash reports. There is an informative crash reporter built into the program that'll give you easily copy-pasteable stacktraces that I can use to determine the cause of the error. While no crashing has occured in my recent tests, who knows.
Run as Administrator is highly recommended if you have UAC on.
This program is NOT multiclient aware. It'll attach to the first process it finds.
Would you like a copy of the source code? I don't mind sharing it -- but I don't want to link my gaming identity to my github account (since I use that for professional endeavors.) As such, send me a PM with your MSN or Skype contact and I can provide you with the source. Because in its current state the program is not easily capable of being modified into something malicious (like an autopotter), I am not going to be protective of the source. However if future development includes things like packet recognition or input emulation, the source will be closed to prevent possible abuse.
What it does
iRO Classic EXP, for lack of a better name, presents you with a relatively small window that monitors these values:
HP
SP
Weight
EXP
Job EXP
Base level
Current Map
With percent values accurate to 2 decimals provided.
It also gives you:
Total time leveling (Starts once your EXP changes, aka first kill)
Total base EXP gained
Total Job EXP gained
Base and Job EXP/hr rates, updated 60 times per second
Next base level estimation
Next job level estimation
Auto-Screenshot on level will take 10 screenshots at 3-frame intervals without blocking the RO process. They will be named conveniently:
(Character Name) (Current Level) (Screenie #)
And will be placed in a folder named after your character.
Please make sure the program has proper permissions to create directories and files. This may mean running the program as administrator.
Also note that the auto-screenie function will bring RO to the foreground when you level. So if you're leeching and don't want it interrupting you, disable the feature.
Note that this is only compatible with the most up to date ClassicRO client. If you use an older version for RCX, I can not guarantee functionality.
What does it look like?
![]()
The window measures approximately 720x240.
The Buttons
Reset clears all the values and stops the timers.
Stop stops the timer and will snap the time back to the last kill you had, thus providing you an analysis of your leveling from first kill to last kill.
Will I ever need to update?
The binary? Hopefully not. A file "memoryaddress.dat" is included which will have to be updated every time Gravity releases a new compiled client. If it's broken due to an update and I haven't bothered to fix it, feel free to post or PM me.
Known Issues?
Not really. If the program is lagging it may mistake a character change as an EXP/level change. If you have "Screenshot on level" activated, this will cause it to dump screenshots. This does run the risk of overwriting the screenshots currently taken. Moving them to a different directory will cancel this.
You're so awesome. Is there any way I can help?!
Sure. I find the programs graphic icon is ugly and wouldn't mind having a new one. If you're slightly talented in the ways of the pixel and don't mind making an icon for free, feel free to PM me. This will result in an update to the binary though.
[B]Suppress Exceptions?[B]
Think Gravity Error -- they happen in all programs. Turning on Suppress Exceptions will make the program attempt to fix itself without crashing. If an exception does occur, I cannot guarantee the accuracy. During the testing phase, please disable this. It should not minimize your client should an exception occur.
The software is free and I won't accept any money for it, though if you'd like to send me zeny in my Monks mailbox, I won't protest.
memoryaddress.dat file history
Client closest to 12-16-12
Notes
Compiled and tested on a 64 bit Windows 7 machine.
Runs with .NET 2.0 (should be included on Vista and 7, may need to download on XP)
32-bit tests would be appreciated (binary is compiled in x86 mode, but does that really guarantee anything?)
But I'm afraid you'll hack my account!!
Quelling fear of this is pretty pointless, so I'll be blunt.
Ragnaroks login security is pretty dismal but sufficiently good to be effective. Once you hit the server select screen, your password is wiped from memory. Your username stays in memory indefinitely. However, unlike the values for character stats, these do not have predefined locations in memory, and furthermore are not location as offsets in virtual function tables. For me to possibly grab your login info, I would need a way to detect that you're at the title screen (I do not currently have a reliable way tell if you're in game or not. :( ) or I'd need to run a keylogger. If you're actually afraid of this, just open iRO Classic EXP after you've logged in.
Current Ideas:
Perfect Screenie: A program that will interrupt a press of Print Screen or Scroll Lock and dump a full quality screenshot in PNG format to the disk. The benefits of this is that it will not lock up the RO Process, so you can easily take screenshots that have no ugly JPEG compression and without lagging the hell out of RO.
Downsides: Using Print Screen would prevent RCX from hiding its overlay most likely. It may be worth it just to allow the user to provide a screenshot key.
AutoScreen: Similar to above, this program would just take screenshots at predefined intervals. For those who can't record WoE but would like a sort of "scrap book" record of it, this would be great. It should have no impact on the performance of RO.
ROAlert: This will likely be an addition to the current EXP Calculator. This will provide the user with the ability to make iRO Classic EXP to play an alert sound when taking damage or if your HP drops below xx%, and possibly auto-maximize the window so that you can react. Useful for leechers and a quick kitchen/bathroom run while leveling.
Planned additions to iRO Classic EXP
Multiclient awareness
Please note: Since I haven't done any prolonged testing, this will be considered a test version. No client/computer/whatever corruption should happen, but the program may crash. As such, I will be using this thread for updates and for crash reports. There is an informative crash reporter built into the program that'll give you easily copy-pasteable stacktraces that I can use to determine the cause of the error. While no crashing has occured in my recent tests, who knows.
Run as Administrator is highly recommended if you have UAC on.
This program is NOT multiclient aware. It'll attach to the first process it finds.
Would you like a copy of the source code? I don't mind sharing it -- but I don't want to link my gaming identity to my github account (since I use that for professional endeavors.) As such, send me a PM with your MSN or Skype contact and I can provide you with the source. Because in its current state the program is not easily capable of being modified into something malicious (like an autopotter), I am not going to be protective of the source. However if future development includes things like packet recognition or input emulation, the source will be closed to prevent possible abuse.
iRO Classic EXP
File attached to postWhat it does
iRO Classic EXP, for lack of a better name, presents you with a relatively small window that monitors these values:
HP
SP
Weight
EXP
Job EXP
Base level
Current Map
With percent values accurate to 2 decimals provided.
It also gives you:
Total time leveling (Starts once your EXP changes, aka first kill)
Total base EXP gained
Total Job EXP gained
Base and Job EXP/hr rates, updated 60 times per second
Next base level estimation
Next job level estimation
Auto-Screenshot on level will take 10 screenshots at 3-frame intervals without blocking the RO process. They will be named conveniently:
(Character Name) (Current Level) (Screenie #)
And will be placed in a folder named after your character.
Please make sure the program has proper permissions to create directories and files. This may mean running the program as administrator.
Also note that the auto-screenie function will bring RO to the foreground when you level. So if you're leeching and don't want it interrupting you, disable the feature.
Note that this is only compatible with the most up to date ClassicRO client. If you use an older version for RCX, I can not guarantee functionality.
What does it look like?

The window measures approximately 720x240.
The Buttons
Reset clears all the values and stops the timers.
Stop stops the timer and will snap the time back to the last kill you had, thus providing you an analysis of your leveling from first kill to last kill.
Will I ever need to update?
The binary? Hopefully not. A file "memoryaddress.dat" is included which will have to be updated every time Gravity releases a new compiled client. If it's broken due to an update and I haven't bothered to fix it, feel free to post or PM me.
Known Issues?
Not really. If the program is lagging it may mistake a character change as an EXP/level change. If you have "Screenshot on level" activated, this will cause it to dump screenshots. This does run the risk of overwriting the screenshots currently taken. Moving them to a different directory will cancel this.
You're so awesome. Is there any way I can help?!
Sure. I find the programs graphic icon is ugly and wouldn't mind having a new one. If you're slightly talented in the ways of the pixel and don't mind making an icon for free, feel free to PM me. This will result in an update to the binary though.
[B]Suppress Exceptions?[B]
Think Gravity Error -- they happen in all programs. Turning on Suppress Exceptions will make the program attempt to fix itself without crashing. If an exception does occur, I cannot guarantee the accuracy. During the testing phase, please disable this. It should not minimize your client should an exception occur.
The software is free and I won't accept any money for it, though if you'd like to send me zeny in my Monks mailbox, I won't protest.
memoryaddress.dat file history
Client closest to 12-16-12
Spoiler Alert:
Notes
Compiled and tested on a 64 bit Windows 7 machine.
Runs with .NET 2.0 (should be included on Vista and 7, may need to download on XP)
32-bit tests would be appreciated (binary is compiled in x86 mode, but does that really guarantee anything?)
But I'm afraid you'll hack my account!!
Quelling fear of this is pretty pointless, so I'll be blunt.
Ragnaroks login security is pretty dismal but sufficiently good to be effective. Once you hit the server select screen, your password is wiped from memory. Your username stays in memory indefinitely. However, unlike the values for character stats, these do not have predefined locations in memory, and furthermore are not location as offsets in virtual function tables. For me to possibly grab your login info, I would need a way to detect that you're at the title screen (I do not currently have a reliable way tell if you're in game or not. :( ) or I'd need to run a keylogger. If you're actually afraid of this, just open iRO Classic EXP after you've logged in.
Future Development Plans
Since the main idea of doing this is to dive into something interesting and keep pushing my understanding of C# from Advanced to Expert, I do plan on continuing development. Any ideas are appreciated.Current Ideas:
Perfect Screenie: A program that will interrupt a press of Print Screen or Scroll Lock and dump a full quality screenshot in PNG format to the disk. The benefits of this is that it will not lock up the RO Process, so you can easily take screenshots that have no ugly JPEG compression and without lagging the hell out of RO.
Downsides: Using Print Screen would prevent RCX from hiding its overlay most likely. It may be worth it just to allow the user to provide a screenshot key.
AutoScreen: Similar to above, this program would just take screenshots at predefined intervals. For those who can't record WoE but would like a sort of "scrap book" record of it, this would be great. It should have no impact on the performance of RO.
ROAlert: This will likely be an addition to the current EXP Calculator. This will provide the user with the ability to make iRO Classic EXP to play an alert sound when taking damage or if your HP drops below xx%, and possibly auto-maximize the window so that you can react. Useful for leechers and a quick kitchen/bathroom run while leveling.
Planned additions to iRO Classic EXP
Multiclient awareness