ID:1729125
 
Problem description:
Is there a way to make it so that players who use the reconnect feature follow processes I lay out. For instance -
on reconnect:
show title screen,
load screen, etc.

I have an issue with people who love to reconnect then end up in limbo and *complain* that the game is bugged,and I was wondering how to deal with it.
Sounds like you need to delete the client when they logout.
In response to Ss4toby
Ss4toby wrote:
Sounds like you need to delete the client when they logout.

BYOND doesn't detect client loss very fast in a lot of cases. (Such as client losing internet connection) etc.

Overriding reconnect would be a lot simpler.
I've never had/heard of an issue with mob/Logout() being delayed, of course then again it's not something one normally concerns themselves with. As far as overriding reconnect, I've been lead to believe this is technically impossible. You can disable it, but can't manually override it.

Furthermore, the desired effect he's described is (to me) a clear sign that the player's mob is not being destroyed for some odd reason, because if it were deleted, when they reconnected it would run the same exact scripts as if they had logged in for the first time. This could be because he didn't define a delete on logout, or perhaps you have hit the nail on the head with your comment on delayed Logout detection (if so, you'd figure it'd still run the delete script, just after the mob logs back in).
In response to Ss4toby
Ss4toby wrote:
I've never had/heard of an issue with mob/Logout() being delayed, of course then again it's not something one normally concerns themselves with. As far as overriding reconnect, I've been lead to believe this is technically impossible. You can disable it, but can't manually override it.

Furthermore, the desired effect he's described is (to me) a clear sign that the player's mob is not being destroyed for some odd reason, because if it were deleted, when they reconnected it would run the same exact scripts as if they had logged in for the first time. This could be because he didn't define a delete on logout, or perhaps you have hit the nail on the head with your comment on delayed Logout detection (if so, you'd figure it'd still run the delete script, just after the mob logs back in).

Reconnecting with a del mob line of code doesn't really fix the problem. They still end up in limbo.

How do you disable it altogether?
Changing client/control_freak can disable the options, which in-turn should disable the players ability to reconnect. Be warned, they will not be able to set macros, or edit their skin.

client/control_freak=CONTROL_FREAK_ALL
This is just a bandage though, because they could "possibly" still glitch out if they were to try and reconnect by simply rejoining your server.
The better step would be to figure out why they're getting stuck in "limbo" in the first place, instead of trying to hide the fact that something is obviously very wrong with how you're handling logins/logouts by making people simply unable to reconnect.
In response to Reformist
Reformist wrote:
The better step would be to figure out why they're getting stuck in "limbo" in the first place, instead of trying to hide the fact that something is obviously very wrong with how you're handling logins/logouts by making people simply unable to reconnect.

There's nothing wrong with how I'm handling my logins, and nothing is being hidden. I start all characters in a specific place, display the login screen and let them load their game or start a new one. I think you missed the entire point, for some reason when a player reconnects to the game via reconnect command- it skips any input they were set to receive upon login.

I think you should try it out for yourself to see what I mean. If I didn't specifically spend players to a designated area, they would appear at 1,1,1 or the nearest free space to that. In a pvp game that doesn't makes sense, since players will wander up and start whacking the first player they see or engage in combat.

It makes more sense to send the player to a designated area on login, disable their controls and go through the login process. (all of which I'm already doing) I think it would be helpful if you fully understood what was being asked before you join the conversation.
In response to Avidanimefan
The reason they appear at 1,1,1 is because that's default behavior for Login() if the mob has no location. To bypass this simply:

mob
Login
Login()
..()
src.loc = null


And then display your screens. I do the exact same thing you're describing, but no one ever gets stuck in "limbo" for me. This indicates that something is wrong on your end.

My Login()
mob
Login
Login()
..()
src.loc = null
if(src.CheckInvites())
spawn()
src.PreLoadMusic()
src.client.sound_system.PlayMusic('LoginTheme.ogg')
src.BuildTitle()
In response to Reformist
Reformist wrote:
The reason they appear at 1,1,1 is because that's default behavior for Login() if the mob has no location. To bypass this simply:

> mob
> Login
> Login()
> ..()
> src.loc = null
>

And then display your screens. I do the exact same thing you're describing, but no one ever gets stuck in "limbo" for me. This indicates that something is wrong on your end.

My Login()
> mob
> Login
> Login()
> ..()
> src.loc = null
> if(src.CheckInvites())
> spawn()
> src.PreLoadMusic()
> src.client.sound_system.PlayMusic('LoginTheme.ogg')
> src.BuildTitle()
>


I'm quite aware of everything you just mentioned, and nothing you said really fixes the problem, which leads me to believe you still don't even understand what the problem actually is.

The problem has nothing to do with login. The problem has to do with people logging into the game, wishing to reconnect, then using the .reconnect command- like I've said numerous times throughout this post. Quite a few other people seem to be aware of the issue, I'd recommend you leave it to them if you don't seem to understand what it is I'm asking.


Edit:
Start up your game.
Go through the title screen into the game, then use the .reconnect command.
-Wait-
That, my friend is the issue.


If you have a way to fix that, I'd be more than happy to hear it.
That's the thing. I don't have the issue you're mentioning. Reconnection works as it should in my projects. So, once again, there is obviously something wrong on your end. I think your ego is getting in the way, here.

http://zippy.gfycat.com/ScientificPertinentBedbug.gif