ID:264281
 
1. When I load, the src.LoadSave() proc gives me a bunch of errors with whatever it's trying to do.

2. When I load with/without the src.LoadSave() line, there's a copy of me sitting at the default coords upon login. Upon right clicking I found that there's also a null icon with the name of my key there.

mob/proc
LoadSave()
var/savefile/F = new("Players/[ckey(key)].sav")
Read(F)
src.loc = locate(Sx,Sy,Sz)
world<<output("<center><b>World:</b> <font color=silver>[src]</font> (<font color=silver>[src.key]</font>) is now <font color=green>online</font>!","World")
OnlinePlayers += src
src.HealthHUDUpdate()
src.ChakraHUDUpdate()
src.StaminaHUDUpdate()
src.ExperienceHUDUpdate()
src.LoginStuff()
src.verbs -= typesof("/mob/Logging/verb")
winset(src,"default","is-disabled=false;focus=true")
winset(src,"MainMenu","is-visible=false")

mob/Logging/verb
LoadCharacter()
set hidden = 1
if(fexists("Players/[ckey(key)].sav"))
client.CharacterSelect()
src.LoadSave()

client/proc
SaveCharacter()
var/list/L = Savefiles()
var/savefile/S = new("Players/[ckey(key)].sav")
S["/saves/[mob.name]"] << mob
S["coords"] << locate(mob.x,mob.y,mob.z)
S["verbs"] << mob.verbs
if(!(mob.name in L))
L.Add(mob.name)
S["/saveList"] << L

LoadCharacter(File)
var/list/L = Savefiles()
var/savefile/S = new("Players/[ckey(key)].sav")
var/mob/M
if(!(File in L)) return 0
S["/saves/[File]"] >> M
M.loc = S["coords"]
M.verbs = S["verbs"]
return M

Savefiles()
var/list/L
var/savefile/S = new("Players/[ckey(key)].sav")
S["/saveList"] >> L
if(!L) L=new/list
return L

DeleteCharacter()
var/file = input("Which character would you like to delete?","Delete") in Savefiles()
switch(alert("You are about to permanently delete [file]. Are you sure?","Confirmation","No","Yes"))
if("Yes") fdel(file)

CharacterSelect()
var/file = input("Which character would you like to load?","Load") in Savefiles()
mob = LoadCharacter(file)
Bunch of errors as in ?

And why are you using that piece of code if you don't even know what it does?
This isn't the solution, but did you know there's a ckey variable for mobs and clients?
In response to Andre-g1
I do know what it does. It allows me to have multiple saves on a single key rather than having to use different keys for different saves. I just have a couple add-on errors I need to get looked at so that it works properly :)

Errors:
    LoadSave()
var/savefile/F = new("Players/[ckey
(key)].sav")
Read(F)
src.loc = locate(Sx,Sy,Sz)
world<<output("<center><b>World:</b> <font color=silver>[src]</font> (<font color=silver>[src.key]</font>) is now <font color=green>online</font>!","World")
OnlinePlayers += src
src.HealthHUDUpdate()
src.ChakraHUDUpdate()
src.StaminaHUDUpdate()
src.ExperienceHUDUpdate()
src.verbs -= typesof("/mob/Logging/verb")
winset(src,"default","is-disabled=false;focus=true")
winset(src,"MainMenu","is-visible=false")
src.icon_state = ""
src.CanSave = 1
src.CanMove = 1
src.Muted()


runtime error: Cannot write to atom.verbs.
proc name: LoadCharacter (/client/proc/LoadCharacter)
usr: Mizukouken Ketsu (/mob)
src: Mizukouken Ketsu (/client)
call stack:
Mizukouken Ketsu (/client): LoadCharacter("Brian")
Mizukouken Ketsu (/client): CharacterSelect()
Mizukouken Ketsu (/mob): Load()
runtime error: bad client
proc name: HealthHUDUpdate (/mob/proc/HealthHUDUpdate)
usr: Mizukouken Ketsu (/mob)
src: Mizukouken Ketsu (/mob)
call stack:
Mizukouken Ketsu (/mob): HealthHUDUpdate()
Mizukouken Ketsu (/mob): LoadSave()
Mizukouken Ketsu (/mob): Load()
runtime error: bad client
proc name: ChakraHUDUpdate (/mob/proc/ChakraHUDUpdate)
usr: Mizukouken Ketsu (/mob)
src: Mizukouken Ketsu (/mob)
call stack:
Mizukouken Ketsu (/mob): ChakraHUDUpdate()
Mizukouken Ketsu (/mob): LoadSave()
Mizukouken Ketsu (/mob): Load()
runtime error: bad client
proc name: StaminaHUDUpdate (/mob/proc/StaminaHUDUpdate)
usr: Mizukouken Ketsu (/mob)
src: Mizukouken Ketsu (/mob)
call stack:
Mizukouken Ketsu (/mob): StaminaHUDUpdate()
Mizukouken Ketsu (/mob): LoadSave()
Mizukouken Ketsu (/mob): Load()
runtime error: bad client
proc name: ExperienceHUDUpdate (/mob/proc/ExperienceHUDUpdate)
usr: Mizukouken Ketsu (/mob)
src: Mizukouken Ketsu (/mob)
call stack:
Mizukouken Ketsu (/mob): ExperienceHUDUpdate()
Mizukouken Ketsu (/mob): LoadSave()
Mizukouken Ketsu (/mob): Load()
runtime error: bad client
proc name: LoadSave (/mob/proc/LoadSave)
usr: Mizukouken Ketsu (/mob)
src: Mizukouken Ketsu (/mob)
call stack:
Mizukouken Ketsu (/mob): LoadSave()
Mizukouken Ketsu (/mob): Load()
In response to Mizukouken Ketsu
Use the actual client variable since those procs are for clients. And I don't think I know what the first runtime error is about, but you should remake that save/load system. It's not hard to make what you want, and if you made it, you would understand it better.

And you didn't seem like you knew from your statements on the original post.
In response to Andre-g1
They're not client procs though. They're mob procs.
In response to Mizukouken Ketsu
Oh right, my bad. Misread.
In response to Andre-g1
The loading should be simple lol...

Clock load button which is assigned to the Load() verb (I changed it in my coding)

Load verb calls the client proc LoadCHaracter()
Load verb THEN calls the mob proc LoadSave()
LoadSave() proc updates the bar elements (HUDs) and sets the CanMove mob variable to 1 (true), allowing them to move.

Well I can't even move at the end of that error.
In response to Mizukouken Ketsu
Working on a library that does what you want, will be posted as soon as I finish the documentation.
In response to Andre-g1
Thanks! :D
In response to Mizukouken Ketsu