Topic: JoinServer 0.77 MapMove AutoDisconnect DLL

Joinserver 0.77 Mapmove Autodisconnect Dll

Solution for "account already connected" problem.

GS doesn't send logut packet to JS when users are in MapMove state or account in gs is not in logged state.

It means that if you've requested to move to another GS using move command or your character is on the map that is served by another GS and you are trying to enter game - gs will mark you with MapMove State and after sending MapMove Request JS will mark you with MapMove State.

Possible situations:
1. your provider sucks, inet connection goes down, and your connections to new GS lost.
2. When you will try to join new GS first of all GS requests MapMove Authorization. If MapMove Authorization succeedes, then JS resets your MapMove State and GS sets your account in logged state. If smth goes wrong your account won't be logged in GS, so no logout packet to JS will be sent, but JS will keep you in MapMove State.
(eRRoR told me that most of all stucks happen because of failed authorization)

So our key is JS MpMove State flag. JS knows that users are in MapMove state, so if they remain to long in MapMove state we can disconnect them.

Other thing that JS already has this function, that checks all users for MapMove state and disconnects them if they are stucked in this state more than 30 seconds. But i haven't found any reference to it and when JS is working this function remains silent. Also this function every 2 minutes or 3 send Bill Info to GS.

So DLL code is simple. When JS starts we start a new thread with entry point of this function + remove BillInfo send. When JS closes softly suspend our thread.

I don't have full info about this problem, so i don't know if it will help in all cases. So you can test if it works :D

Downloads:
JsHook.dll (56 KB):
Download: (2shared)

JS_AutoDC_MD5.rar (289 KB):
Download: (2shared)

JS_AutoDC_NO_MD5.rar (289 KB):
Download: (2shared)

Credits:
- Hybrid (RZ)