world
mob = /mob/other/choosing_character
view = 8
client/proc/SaveMob()
var/savefile/F = new("players.sav")
var/char_ckey = cKey(src.mob.name)
F["/[ckey]/[char_ckey]"] << src.mob
client/proc/LoadMob(char_ckey)
var/mob/new_mob
var/savefile/F = new("players.sav")
F["/[ckey]/[char_ckey]"] >> new_mob
if (!new_mob)
return 0
else
src.mob = new_mob
return 1
client/Del()
if (istype(src.mob, /mob/other/choosing_character))
return ..()
src.SaveMob()
return ..()
mob/other/choosing_character
Login()
spawn()
src.ChooseCharacter()
proc
ChooseCharacter()
var/list/characters = src.CharacterList()
var/newCharacterChoice = "Create new character"
var/DeleteCharacterChoice = "Delete a character"
var/list/menu = new()
menu += characters
menu += newCharacterChoice
menu += DeleteCharacterChoice
var/result = input("Choose a character or create a new one", "Who do you want to be today?") in menu
if (result == newCharacterChoice)
src.CreateNewCharacter()
if (result == DeleteCharacterChoice)
src.DeleteCharacter()
src.ChooseCharacter()
else
var/success = src.client.LoadMob(result)
if (success)
del(src)
else
alert("Sorry, unable to load that character!")
src.ChooseCharacter()
CharacterList()
var/savefile/F = new("players.sav")
F.cd = "/[ckey]"
var/list/characters = F.dir
return characters
proc
DeleteCharacter()
var/savefile/F = new("players.sav")
F.cd = "/[ckey]"
var/list/characters = F.dir
var/CancelCharacterDeletion = "Cancel"
var/list/menu = new()
menu += characters
menu += CancelCharacterDeletion
var/result = input("deleting a character", null, "Which character do you want to delete?") in menu
if (result)
F.cd = "/[ckey]"
F.dir.Remove(result)
if (result == CancelCharacterDeletion)
src.ChooseCharacter()
else
src.ChooseCharacter()
mob/other/choosing_character/proc/CreateNewCharacter()
world << "[usr] is creating a new character."
usr << "<b>Welcome to Castle of The Winds Online."
var/prompt_title = "New Character"
var/help_text = "What do you want to name the character?"
var/default_value = key
var/char_name = input(src, help_text, prompt_title, default_value) as null|text
if (!char_name)
src.ChooseCharacter()
return
var/ckey_name = ckey(char_name)
var/list/characters = CharacterList()
if (characters.Find(ckey_name))
alert("You already have a character named that. Please choose another name.")
src.CreateNewCharacter()
return
var/list/races = list("Original","Purple","Blue","Green")
help_text = "Choose your character:"
default_value = "Original"
var/char_race = input(src, help_text, prompt_title, default_value) in races
var/mob/new_mob
switch(char_race)
if ("Original")
world << "[usr] has chosen to use the Origonal COTW player. Wise choice."
new_mob = new /mob/You/Original()
if ("Purple")
world << "[usr] has chosen to use the Purple COTW player."
new_mob = new /mob/You/Purple()
if ("Blue")
world << "[usr] has chosen to use the Blue COTW player."
new_mob = new /mob/You/Blue()
if ("Green")
world << "[usr] has chosen to use the Green COTW player."
new_mob = new /mob/You/Green()
new_mob.name = char_name
src.client.mob = new_mob
del(src)
mob
Login()
..()
if (!istype(src, /mob/other/choosing_character))
sample_report()
Write(savefile/F)
..()
F["last_x"] << x
F["last_y"] << y
F["last_z"] << z
Read(savefile/F)
..()
var/last_x
var/last_y
var/last_z
F["last_x"] >> last_x
F["last_y"] >> last_y
F["last_z"] >> last_z
loc = locate(last_x, last_y, last_z)
proc
sample_report()
src << "<b>You have logged in as [src]."
world << "<b>[src] has just joined us."
usr.loc = locate(69,8,1)
mob/You/Original
icon='player.dmi'
icon_state="Original"
level = 1
Mexp = 150
Exp = 0
HP = 30
MHP = 30
MP = 30
MMP = 30
constitution = 30
dexterity = 30
copper = 100
strength = 30
mob/You/Purple
icon='player.dmi'
icon_state="Purple"
HP = 30
MHP = 30
MP = 30
MMP = 30
constitution = 30
strength = 30
mob/You/Blue
icon='player.dmi'
icon_state="Blue"
HP = 30
MHP = 30
MP = 30
MMP = 30
constitution = 30
strength = 30
mob/You/Green
icon='player.dmi'
icon_state="Green"
HP = 30
MHP = 30
MP = 30
MMP = 30
constitution = 30
strength = 30