ID:147529
 
I made a login thingy where it asks you to pick a name. I changed my original opening because my character wasn't showing up. Now when I open the file in dreamseeker, I get a black screen and the name thingy doesnt come up! I think that the problem lies somewhere in the login file from Ham-Warrior400's demo. I cant decipher it however!
I could use help. Here is the login file's code:

#include <deadron/basecamp>

#define BASE_MENU_CREATE_CHARACTER "Create New Character"
#define BASE_MENU_DELETE_CHARACTER "Delete Character"
#define BASE_MENU_CANCEL "Cancel"
#define BASE_MENU_QUIT "Quit"


client/var/tmp
base_num_characters_allowed = 1
base_autoload_character = 1
base_autosave_character = 1
base_autodelete_mob = 1
base_save_verbs = 1

mob
var/tmp
base_save_allowed = 1
base_save_location = 1

var/list/base_saved_verbs

proc/base_InitFromSavefile()
return

Write(savefile/F)
..()

if (base_save_location && world.maxx)
F["last_x"] << x
F["last_y"] << y
F["last_z"] << z
return

Read(savefile/F)
..()

if (base_save_location && world.maxx)
var/last_x
var/last_y
var/last_z
F["last_x"] >> last_x
F["last_y"] >> last_y
F["last_z"] >> last_z
var/destination = locate(last_x, last_y, last_z)
Move(destination)
world<<"<B>[usr] has logged in!"
return

mob/BaseCamp
base_save_allowed = 0
Login()
RemoveVerbs()
return

Stat()
return

Logout()
del usr
return

proc/RemoveVerbs()
for (var/my_verb in verbs)
verbs -= my_verb

mob/BaseCamp/FirstTimePlayer
proc/FirstTimePlayer()
return 1

world
mob = /mob/BaseCamp/ChoosingCharacter

mob/BaseCamp/ChoosingCharacter
Login()
spawn()
ChooseCharacter()
return ..()

proc/ChooseCharacter()
var/list/available_char_names = client.base_CharacterNames()
var/list/menu = new()
menu += available_char_names

if (length(available_char_names) < client.base_num_characters_allowed)
if (client.base_num_characters_allowed == 1)
client.base_NewMob()
del(src)
return
else
menu += BASE_MENU_CREATE_CHARACTER

if (length(available_char_names))
menu += BASE_MENU_DELETE_CHARACTER

menu += BASE_MENU_QUIT

var/default = null
var/result = input(src, "Who do you want to be today?", "Welcome to [world.name]!", default) in menu

switch(result)
if (0, BASE_MENU_QUIT)
del(src)
return

if (BASE_MENU_CREATE_CHARACTER)
client.base_NewMob()
del(src)
return

if (BASE_MENU_DELETE_CHARACTER)
DeleteCharacter()
ChooseCharacter()
return

var/mob/Mob = client.base_LoadMob(result)
if (Mob)
del(src)
else
ChooseCharacter()

proc/DeleteCharacter()
var/list/available_char_names = client.base_CharacterNames()
var/list/menu = new()
menu += available_char_names

menu += BASE_MENU_CANCEL
menu += BASE_MENU_QUIT

var/default = null
var/result = input(src, "Which character do you want to delete?", "Deleting character", default) in menu

switch(result)
if (0, BASE_MENU_QUIT)
del(src)
return

if (BASE_MENU_CANCEL)
return

client.base_DeleteMob(result)
ChooseCharacter()
return



client
var/tmp/savefile/_base_player_savefile

New()
if (base_autoload_character)
base_ChooseCharacter()
base_Initialize()
return
return ..()

Del()
if (base_autosave_character)
base_SaveMob()

if (base_autodelete_mob)
del(mob)
return ..()


proc/base_PlayerSavefile()
if (!_base_player_savefile)
var/start = 1
var/end = 2
var/first_initial = copytext(ckey, start, end)
var/filename = "players/[first_initial]/[ckey].sav"
_base_player_savefile = new(filename)
return _base_player_savefile


proc/base_FirstTimePlayer()
var/mob/BaseCamp/FirstTimePlayer/first_mob = new()
first_mob.name = key
first_mob.gender = gender
mob = first_mob
return first_mob.FirstTimePlayer()


proc/base_ChooseCharacter()
base_SaveMob()

var/mob/BaseCamp/ChoosingCharacter/chooser

var/list/names = base_CharacterNames()
if (!length(names))
var/result = base_FirstTimePlayer()
if (!result)
del(src)
return

chooser = new()
mob = chooser
return

if (base_num_characters_allowed == 1)
base_LoadMob(names[1])
return

chooser = new()
mob = chooser
return


proc/base_CharacterNames()
var/list/names = new()
var/savefile/F = base_PlayerSavefile()

F.cd = "/players/[ckey]/mobs/"
var/list/characters = F.dir
var/char_name
for (var/entry in characters)
F["[entry]/name"] >> char_name
names += char_name
return names


proc/base_NewMob()
base_SaveMob()
var/mob/new_mob
new_mob = new world.mob()
new_mob.name = key
new_mob.gender = gender
mob = new_mob
_base_player_savefile = null
return new_mob


proc/base_SaveMob()
if (!mob || !mob.base_save_allowed)
return

if (base_save_verbs)
mob.base_saved_verbs = mob.verbs

var/savefile/F = base_PlayerSavefile()

var/mob_ckey = ckey(mob.name)

var/directory = "/players/[ckey]/mobs/[mob_ckey]"
F.cd = directory
F["name"] << mob.name
F["mob"] << mob
_base_player_savefile = null


proc/base_LoadMob(char_name)
var/mob/new_mob
var/char_ckey = ckey(char_name)
var/savefile/F = base_PlayerSavefile()
_base_player_savefile = null

F.cd = "/players/[ckey]/mobs/"
var/list/characters = F.dir
if (!characters.Find(char_ckey))
world.log << "[key]'s client.LoadCharacter() could not locate character [char_name]."
mob << "Unable to load [char_name]."
return null

F["[char_ckey]/mob"] >> new_mob
if (new_mob)
mob = new_mob
new_mob.base_InitFromSavefile()
if (base_save_verbs && new_mob.base_saved_verbs)
for (var/item in new_mob.base_saved_verbs)
new_mob.verbs += item
return new_mob
return null


proc/base_DeleteMob(char_name)
var/char_ckey = ckey(char_name)
var/savefile/F = base_PlayerSavefile()

F.cd = "/players/[ckey]/mobs/"
F.dir.Remove(char_ckey)


Please Help me decipher this!!