ID:160066
 
Creating a small game at the moment and I've somehow gotten a weird bug.
First time a player logs in they become a /mob/Login_Char, they create a char and their new character is of /mob/Base/PC which is all correct. Save (doesn't save on Logout) and reload said character, it loads perfectly fine.
Now: Relog and it loads the character without even going through the Load(). It even ignores that the world/mob = /mob/Login_Char. I have a conventional saving system, just save mob and load mob. Has anyone encountered this before?
You're probably not deleting their /mob/Base/PC when they logout.

When you log into a mob, by default its key gets set to your key - that's what logging into it means. When you logout, the mob sticks around. Log back in again, the game searches through its mobs, and goes "Oh looky here! A mob with your key!" and logs you into it.

Solution: Delete their mob on client/Del() or /mob/Base/PC/Logout() or something
In response to Jp
I have that. In both mob type's Logins to be safe.
mob
Base/PC/Logout() del(src)


I even tried to reroute the client into a Login Char:
client/New()
var/mob/Login_Char/L = new
src.mob = L


I don't know what else could be stopping the mob from being deleted.

Edit: I even made a nice little verb to check for anything left over after logout.
verb
Whos_There()
for(var/atom/M in world)
if(istype(M, /turf)) continue
world << M
for(var/datum/M in world)
if(istype(M, /turf)) continue
world << M
for(var/client/C) world << C


After using the verb, there is nothing left over from the player that got was "auto logged" upon log out. I've made sure to eliminate the client from everything in the Save() The problem still eludes me.