ID:150287
 
Ok I did not mean to be mean are nothing I just wanted help and i was agrivated because some forum's were pushing mine where you couldn't see it. All I wan is a little help please. I am not a dummy I now how to code. I almost have my A+ certification. I just need help with this please. I want to make it where when my players login if they chose Create New char They get things that I added especially for newbie's. And here is my saving system.


#include

#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"


// Implementation
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 // Is this mob allowed to be saved?
var/list/base_saved_verbs // If we're saving verbs they are stored here.

proc/base_InitFromSavefile()
return

mob/BaseCamp
base_save_allowed = 0 // BaseCamp mobs are for admin only.

Login()
RemoveVerbs()
return

Stat()
return

Logout()
return

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

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


mob/BaseCamp/ChoosingCharacter
Login()
// spawn to make sure all administrative tasks are over.
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)
// If only one character allowed, jump right to creating character.
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)
// Kick them off.
del(src)
return

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

if (BASE_MENU_DELETE_CHARACTER)
// Give them a chance to delete something, but then they need to choose.
DeleteCharacter()
ChooseCharacter()
return

// They must have chosen a character, so load it.
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)
// Kick them off.
del(src)
return

if (BASE_MENU_CANCEL)
return

// They chose a character to delete.
client.base_DeleteMob(result)
ChooseCharacter()
return



client
var/tmp/savefile/_base_player_savefile

New()
// Let them choose/create a character.
if (base_autoload_character)
base_ChooseCharacter()
base_Initialize()
return
return ..()

Del()
// Save character.
if (base_autosave_character)
base_SaveMob()

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


proc/base_PlayerSavefile()
if (!_base_player_savefile)
// Put in players/[first_initial]/[ckey].sav
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()
// Switches the player to a choosing character mob.
// In case switching in middle of game, save previous mob.
base_SaveMob()

var/mob/BaseCamp/ChoosingCharacter/chooser

// Do they have any characters to choose from?
var/list/names = base_CharacterNames()
if (!length(names))
// They must be a first time player.
var/result = base_FirstTimePlayer()
if (!result)
// They weren't approved, so boot 'em.
del(src)
return

// Okay let them create their first character.
chooser = new()
mob = chooser
return

// If only one character is allowed, try to just load it.
if (base_num_characters_allowed == 1)
base_LoadMob(names[1])
return

chooser = new()
mob = chooser
return


proc/base_CharacterNames()
// Get the full names of all this player's characters.
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()
// Give the player a standard mob.
// First save existing mob if necessary.
base_SaveMob()
var/mob/new_mob
new_mob = new world.mob()
new_mob.name = key
new_mob.gender = gender
mob = new_mob
// new_mob.base_Initialize()

// Clear out the savefile to keep it from staying open.
_base_player_savefile = null
return new_mob


proc/base_SaveMob()
// Saves the player's current mob based on the ckey of its name.
if (!mob || !mob.base_save_allowed)
return

// If we're saving verbs, move them over now.
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)
// Look for a character with the ckey version of this name.
// If found, load it, set the client mob to it, and return it.
// Otherwise return null.
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 we're doing verbs, set them now.
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)
// Look for a character with the ckey version of this name.
// If found, delete it.
var/char_ckey = ckey(char_name)
var/savefile/F = base_PlayerSavefile()

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



</<></<>
That's better, first off you need to find where they get the attributes and add everything you need there for adding verbs look up verbs in the reference, for stats look up the += operator and the = operator.
In response to Nadrew
Ok I know how to add what I want. This is what I am having problems with.This is part of the Saving code.
There are no errors.It asks me who I want t be.But....It just doesn't do anything after that.You still get into the game but you have no Icon are the attacks that I put in here. So can you please help me?


if (BASE_MENU_CREATE_CHARACTER)
var/race = input("What race?") in list ("Goku","Gohan")
switch(race)
if("Goku")
icon='goku2.dmi'
usr.KI=MaxKI
usr.Health=MaxHealth
usr << "<font color=red><font size=3> Welcome to DBZ Forever We do not need any more help, Freeker has done ALL the coding so far"
world << " [usr] Has Entered!"
verbs += /mob/proc/credits
usr.Move(locate(2,2,1))
verbs += /mob/proc/PowerUp
verbs += /mob/proc/KIBlast
verbs += /mob/proc/SuperSajin
if("Gohan")
icon='gohan.dmi'
usr.KI=MaxKI
usr.Health=MaxHealth
usr << "<font color=red><font size=3> Welcome to DBZ Forever We do not need any more help"
world << " [usr] Has Entered!"
verbs += /mob/proc/credits
usr.Move(locate(2,2,1))
verbs += /mob/proc/PowerUp
verbs += /mob/proc/SSJ
verbs += /mob/proc/KIBlast
else
..()
client.base_NewMob()
del(src)
return
In response to FreekerChild
Your indentation is wrong. Read the Guide and you will find the answer to your problem...

~X