RPG Starter

by Falacy
An Open Source Demo/Game with everything you'll need to get started on your very own BYOND Game!
ID:292240
 
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.

There's no point in having identical code 3 times, and you can't change an object's x y or z when their location is null, you have to use locate() with all 3 coordinates at once.