ID:139164
 
Code:
client/proc
SaveSlot()
if(src.mob.SaveSlot1)
var/savefile/save = new("GameFiles/Players/[src.key]/Slot1.sav")
save["mob"] << src.mob
save["x"] << src.mob.x
save["y"] << src.mob.y
save["z"] << src.mob.z
save["Version"] << Version
if(src.mob.SaveSlot2)
var/savefile/save = new("GameFiles/Players/[src.key]/Slot2.sav")
save["mob"] << src.mob
save["x"] << src.mob.x
save["y"] << src.mob.y
save["z"] << src.mob.z
save["Version"] << Version
if(src.mob.SaveSlot3)
var/savefile/save = new("GameFiles/Players/[src.key]/Slot3.sav")
save["mob"] << src.mob
save["x"] << src.mob.x
save["y"] << src.mob.y
save["z"] << src.mob.z
save["Version"] << Version
LoadSlot()
var/V
if(src.mob.SaveSlot1)

var/savefile/save = new("GameFiles/Players/[src.key]/Slot1.sav")
save["mob"] >> src.mob
save["x"] >> src.mob.x
save["y"] >> src.mob.y
save["z"] >> src.mob.z
save["Version"] >> V
src.mob.OldVersion=V

else return
if(src.mob.SaveSlot2)
var/savefile/save = new("GameFiles/Players/[src.key]/Slot2.sav")
save["mob"] >> src.mob
save["x"] >> src.mob.x
save["y"] >> src.mob.y
save["z"] >> src.mob.z
save["Version"] >> V
src.mob.OldVersion=V
else return
if(src.mob.SaveSlot3)
var/savefile/save = new("GameFiles/Players/[src.key]/Slot3.sav")
save["mob"] >> src.mob
save["x"] >> src.mob.x
save["y"] >> src.mob.y
save["z"] >> src.mob.z
save["Version"] >> V
src.mob.OldVersion=V
else return


Problem description: The problem is that first slot loads up to correct location but second and third loads up all stats but not the location.

You have "else return" after each if() statement in the load proc there. I'm not sure how that will cause the exact results you are having, but it's possibly related. You need to make each if() statement after the first an "else if" instead.