FOnline Development > Share Your Work

FOnline client multilauncher

(1/2) > >>

EnglishBreakfastTea:
Hi.

FOnline 2 client doesn't let you run multiple client instances. FOnline Reloaded client kicks all but one characters from the game if you login with multiple client instances.
Not anymore. These two simple Python scripts, runFonline2.py and runFonlineReloaded.py allow you to run as many FOnline instances as you want (well, not exactly - i think 26^8 is the maximum).
These scripts are nearly identical and very simple, and could probably be modified to be used with other FOnline clients.

On some servers, in some situations, multilogging is allowed. But more often than not, you will get banned. Use at your own risk.
I don't encourage anyone to break any server's rules. Use the scripts only in situations when it is not prohibited.

How to run it?
This is a Python 2.7 script. It uses the "psutil" nonstandard library - use pip to install it. It takes one argument - path to your client executable.

How does it work? (for the curious ones)
Windows applications can use so called event objects for various interprocess communication related stuff (https://msdn.microsoft.com/en-us/library/windows/desktop/ms686915(v=vs.85).aspx). Every such objects has a name, which is a string.
The FOnline 2 client creates two such objects. First it tries to create "fonline_instance", and if it finds out that such an object already exists in the system, it gives you the familiar error message. It also creates "_fosync_". The FOnline Reloaded client only creates "_fosync_" and somehow uses it to find out if multiple characters are logged in.

The script simply:
1. Starts the client process in suspended state,
2. replaces "_fosync_" and, in the FOnline 2 case, "fonline_instance", with randomly generated lowercase letter strings in the process' memory,
3. resumes the process.

Have fun.
https://gist.github.com/anonymous/ed5695ccd5593443cd7c0dddaf7f9bf7

adumbperson:
Hello,
Still not tried but it looks correct. I hope that people wont abuse from this.
I had also partially reverse engineered the client... and I was stuck at that instance... I hadn't search more (my lazyness again)...
Thx, I'll surely find it an use... (I'm dev'ing around the sdk)

EnglishBreakfastTea:
Yeah, I used FOnline 2 for my efforts, at first I changed only the "fonline_instance" string but the client acted weird when launched multiple times. But then I thought - maybe there are some other objects? I used Sandboxie to isolate the objects created by the client and WinObj to browse them. That's how I found "_fosync_".

adumbperson:
Didn't know about that software winobj, thx for sharing.

cthulchu:
Amazing thing!

I actually don't like sandboxie. Thanks a lot. Just tested. Didn't have the psutil, but installed with no issues from here https://pypi.python.org/pypi/psutil#downloads . Here's how you run it:

I think it can be done via a shortcut too. Although I don't like the fact that it's in python. I love python, but a normal .exe or the c# crap would be better since people don't tend to have python installed.

Navigation

[0] Message Index

[#] Next page

Go to full version