Welcome!

Join our community of MMO enthusiasts and game developers! By registering, you'll gain access to discussions on the latest developments in MMO server files and collaborate with like-minded individuals. Join us today and unlock the potential of MMO server development!

Join Today!

Two people DC'ing constantly in FM v83 TiredStory

Elite Diviner
Joined
Mar 30, 2013
Messages
456
Reaction score
42
Two players in the same map grinding together will have several dc's every couple of minutes, and i just cant figure out why. I am using a server based off of TiredStory, and have made quite a few changes, but none that would make people DC, so weas just wondering if anyone knew of the error already so I could know where to go look and fix it, or if anyone has any ideas. But two chars, one Dragon Knight the other Aran 3, him using his skills, me just auto attacking, and every once in awhile one of us would DC to the login screen, sometimes both.
 
Elite Diviner
Joined
Mar 30, 2013
Messages
456
Reaction score
42
I think I narrowed it down to a GM account and a normal playing account having issues - no clue why. Without an admin account online, no errors, with it, errors to high hell. And farely certain Lowsir.
 
Upvote 0
Elite Diviner
Joined
Mar 30, 2013
Messages
456
Reaction score
42
There is no error.. they just go straight to login screen. Happens both to admin and player. Player and admin both killing mobs in the same FM room with both dc to login screen occasionally. That is literally all there is. Admin being aran, player being dark knight. Sorry there isnt anymore to it - but that is all there is.
 
Upvote 0
Newbie Spellweaver
Joined
Jul 11, 2013
Messages
80
Reaction score
14
Refer to here. I've heard that it can be a deep issue within mina, and that a not-so-real fix would be to change out.write to session.write, as well as the MapleAESOFB crypto object being thread-safe'd too in your MaplePacketEncoder class. Also make sure your getSession() method in MapleClient is synchronized or thread-safe somehow.
 
Upvote 0
Elite Diviner
Joined
Mar 30, 2013
Messages
456
Reaction score
42
Tiredstory honestly isnt great


I honestly enjoy the large amount of issues, it helps you alot with learning how maplestory works, having to navigate the source and know exactly what does what.

And @Drum - would getSession() only apply if it was with all users - 2 users, 2 staff, or 1 user 1 staff? It only happens in the last scenario, where 1 user 1 staff same map = issues. As for your other options - I dont necessarily see how they would apply to the above issue, where it is only 1 user 1 staff, but works fine with 2 users, or 2 staff. Just mix normal users into a map with a staff account together, both just auto-attacking, and you get large amounts of dc's. No commands - no special items.
 
Upvote 0
Joined
Aug 24, 2009
Messages
1,221
Reaction score
170
I honestly enjoy the large amount of issues, it helps you alot with learning how maplestory works, having to navigate the source and know exactly what does what.

And @Drum - would getSession() only apply if it was with all users - 2 users, 2 staff, or 1 user 1 staff? It only happens in the last scenario, where 1 user 1 staff same map = issues. As for your other options - I dont necessarily see how they would apply to the above issue, where it is only 1 user 1 staff, but works fine with 2 users, or 2 staff. Just mix normal users into a map with a staff account together, both just auto-attacking, and you get large amounts of dc's. No commands - no special items.

Im coding for a server that started using tiredstory and the coding is so messy so many fixing just giving me a major headache lol
 
Upvote 0
Newbie Spellweaver
Joined
Jul 11, 2013
Messages
80
Reaction score
14
I honestly enjoy the large amount of issues, it helps you alot with learning how maplestory works, having to navigate the source and know exactly what does what.

And @Drum - would getSession() only apply if it was with all users - 2 users, 2 staff, or 1 user 1 staff? It only happens in the last scenario, where 1 user 1 staff same map = issues. As for your other options - I dont necessarily see how they would apply to the above issue, where it is only 1 user 1 staff, but works fine with 2 users, or 2 staff. Just mix normal users into a map with a staff account together, both just auto-attacking, and you get large amounts of dc's. No commands - no special items.

From what I've heard, soft D/Cs (D/Cs to the login screen) are almost always down to packet spam, so it's a concurrency issue. Also as NemesisToKill said, notice how only packets sent from the server to the client have this issue. Packets sent from Maplestory.exe to the server do not, because it ensures packets are sent in a single-threaded way.

I don't think being a GM or not would influence this particular problem much and you should synchronize your getSession() method regardless. Pretty sure TiredStory has it synchronized though -- if it wasn't already, you can be sure you'd have a lot more disconnections.

You could try logging all outgoing packets -- along with the time they were sent -- to a particular client, induce the D/C, and have it stop logging when the server doesn't receive a pong packet from that client (I don't think the server-sided disconnect() method would be called when you D/C, so you couldn't do it that way). Analyze these and see if there is in fact two or more packets being sent at the same time to that client.

@NyCPirate Yeah, I think TiredStory is awful LOL
 
Last edited:
Upvote 0
Elite Diviner
Joined
Mar 30, 2013
Messages
456
Reaction score
42
Was wondering if you knew of a good place to learn about packet debugging... Just recently started into MapleStory after taking a AP Honors Java class at my college.... The Java wise I am fairly OK with, but when it comes to packets or wizet edits, I am still greatly learning.
 
Upvote 0
Custom Title Activated
Loyal Member
Joined
Mar 14, 2010
Messages
5,363
Reaction score
1,343
Was wondering if you knew of a good place to learn about packet debugging... Just recently started into MapleStory after taking a AP Honors Java class at my college.... The Java wise I am fairly OK with, but when it comes to packets or wizet edits, I am still greatly learning.

packet debugging lol there is no real place to learn about packet debugging it's common sense you must use

Stuff gets sent when you do actions right? Why not do it a few times and see what is always sent then block some stuff from being sent and once you no longer DC see what you blocked and keep trying till you find which 1 was your dc'ing then fix it. With my uh prior testing of poop, usually a recv dc's me to login
 
Upvote 0
Elite Diviner
Joined
Mar 30, 2013
Messages
456
Reaction score
42
packet debugging lol there is no real place to learn about packet debugging it's common sense you must use

Stuff gets sent when you do actions right? Why not do it a few times and see what is always sent then block some stuff from being sent and once you no longer DC see what you blocked and keep trying till you find which 1 was your dc'ing then fix it. With my uh prior testing of poop, usually a recv dc's me to login

What I meant along this was what should I use to sniff packets?(I know there is tons of programs out there, what one would you use?) And how would I block the packets? And even more importantly, how do you know what packet does what?
 
Upvote 0
Custom Title Activated
Loyal Member
Joined
Mar 14, 2010
Messages
5,363
Reaction score
1,343
What I meant along this was what should I use to sniff packets?(I know there is tons of programs out there, what one would you use?) And how would I block the packets? And even more importantly, how do you know what packet does what?

make them printout in the batch/debug tray if you're debugging it in an IDE

How do I know? well.. read the header and see what header it's for.. they have names
 
Upvote 0
Elite Diviner
Joined
Mar 30, 2013
Messages
456
Reaction score
42
make them printout in the batch/debug tray if you're debugging it in an IDE

How do I know? well.. read the header and see what header it's for.. they have names

So when I printout the packet, and it tells me what it is for, how do you find out if the packet is correct? Other then going into another source and double checking it, is there some list somewhere?

P.S: Thanks for all the help - huge leaps in the past 24 hours in development.



http://forum.ragezone.com/f691/understanding-packets-644427/

Just found that, a bit out dated, but is helping a bit.



Also, why is the first 100 packets or so commented out? Each section has the same packets and same names, so any ideas why it was put twice?



Also is max stats, health, etc handled by the source? If so, could you not change the max stat from 32767 from short, to say, int? And same thing from health, I am assuming there is some if statement saying if (get.HP() > 30000) {set.HP(30000)} Or something along the lines.



if (maxhp >= 30000) {
maxhp = 30000;
}
if (maxmp >= 30000) {
maxmp = 30000;
}

Could you raise these, to say, 90,000 and then have a max health cap of 90,000?
 
Upvote 0
Elite Diviner
Joined
Mar 30, 2013
Messages
456
Reaction score
42
depends what version, old versions max hp 30k then got upped to forgot and now it's 500k each, the values are client stored


Code:
[COLOR=#6F6F6F]if (maxhp >= 30000) {[/COLOR]
[COLOR=#6F6F6F]maxhp = 30000;[/COLOR]
[COLOR=#6F6F6F]}[/COLOR]
[COLOR=#6F6F6F]if (maxmp >= 30000) {[/COLOR]
[COLOR=#6F6F6F]maxmp = 30000;[/COLOR]
[COLOR=#6F6F6F]}

To

Code:
[/COLOR][COLOR=#6F6F6F]if (maxhp >= 90000) {[/COLOR]
[COLOR=#6F6F6F]maxhp = 90000;[/COLOR]
[COLOR=#6F6F6F]}[/COLOR]
[COLOR=#6F6F6F]if (maxmp >= 90000) {[/COLOR]
[COLOR=#6F6F6F]maxmp = 90000;[/COLOR]
[COLOR=#6F6F6F]}

Doing that made the 'Start' button at the char selection screen do nothing, and after awhile client would crash.

[/COLOR]
 
Upvote 0
Back
Top