DalekenMUD 1.12 documentation.
Updated 9 November 2000.

Player File Information

Player files are ASCII files. These are in the format described in files.html, you should read this file before continuing here.

A player file contains a single player section, named Char, that in turn contains one or more object sections.

An old Internet dictum says 'be conservative in what you send and liberal in what you accept'. Thus Daleken writes player files in a fixed order, but accepts flexible ordering, partial files, et cetera. Standard rules apply to assigning default values and chaining linked lists (see files.html).

Players are saved with their equipment off. This differs with the orginal Envy and means that modifications to objects can be made between times the player is logged on without adverse effects like having to clear the character's affects. Special care is taken that the correct race and sex are saved as these can be modified. The upshot of this is that only permanent attributes are saved in a player's file, all modifiers are applied after loading.

Within an Obj section all the object values, including the object's current wear location are saved. Objects which have been 'oset' retain all of their values. Here editing an object which is currently being worn requires no extra care; the corresponding Char state will be changed accordingly.

Object nesting is handled specially using a simple inclusion within the {} block of the container object. Thus the position of curly braces is critical in determining how objects are nested.

You may add new fields to players and objects. Because of the line-oriented ASCII format, changing a structure size in types.h will never invalidate a player file. Naturally, you must ensure that when an old file which does not contain a line for a new field is read in, the new field is set to some reasonable default value. This is done by using the database reading structures properly (see files.html for more information).

How to Add a New Character Field

  1. Add the field to the appropriate structure in merc.h.
  2. Initialize the field in create_char or clear_char in db.c.
  3. Add fields to the data description tables in db_io.c
  4. If necessary implement the special Read/Write/Fix function for the data.
  5. Use the field.

How to Add a New Object Fields

  1. Add the field to the appropriate structure in types.h.
  2. Initialize the field in create_object in db.c.
  3. Add fields to the data description tables in db_io.c
  4. If necessary implement the special Read/Write/Fix function for the data.

Immortal Commands

This is a complete list of what can be saved for a player character. Note that some of these fields will be missing in a file, as they are default.

Char {
Name
The name of the character (number).
Level
The level of the character (number).
Trust
The immortal level of the character (number).
SubLevel
The sublevel of the character (number).
Race
The immortal level of the character (number:race).
Class
The class of the character (number:class).
ShortDesc
A short description, setname. (string).
LongDesc
A longer description. (string).
Desc
The longest description. (string).
Sex
The sex of the character (number:sex).
InRoom
Where the character is. (number).
Recall
The character's recall point. (number).
Played
Time played in seconds. (number).
Hp
Hits. (number).
MaxHp
Maximum hits. (number).
Mana
Mana array. (number).
MaxMana
Maximum mana array. (number).
Move
Moves. (number).
MaxMove
Maximum moves. (number).
Gold
Gold amount carried. (number).
Tnl
To Next Level experience. (number).
Pos
Position. (number:position).
Prac
Number of unspent practices. (number).
Align
Alignment. (number).
Wimpy
Flee threshold. (number).
Deaf
Bits for blocking channels. (number:channel).
Parts
Body parts. (number:limbs).
Damaged
Damaged body parts. (number:limbs).
Wimpy
Flee threshold. (number).
Act
Config flags. (number/vector:act).
Affect {
Composite object affects.
Name
Skill number (number:skill).
Duration
Remaining time (number).
Level
Caster level/spell power (number).
Location
What the affect applys to (number:apply).
Modifier
How much affect it has (number).
Bits
Bit affects (number/vector:affect).
}
Event {
Impending events.
When
Time remaining (number).
Type
Event type (number:event).
Flags
Event flags (number:evextra).
Text
Additional saved string (string).
Data
Additional saved numbers (number).
}
PcData {
Player character only information.
Title
Character's title (string).
Prompt
Prompt (string).
Password
Encrypted password (string).
ImmName
Special immortal title (string).
Bamfin
Goto arrival message (string).
Bamfout
Goto leave message (string).
Setmin
Arrival message (string).
Setmout
Leave message (string).
ImmSkill
Access to immortal commands (string).
Familiar
Familiar's hitpoints (number).
Bounty
Gold bounty (number).
Killed
Number of kills (number).
Died
Number of deaths (number).
Strength
Strength attribute (number).
Intelligence
Intelligence attribute (number).
Wisdom
Wisdom attribute (number).
Dexterity
Dexterity attribute (number).
Constitution
Constitution attribute (number).
Magic
Magic attribute by sphere (number).
Thirst
Need to drink (number).
Full
Stomach level (number).
Drunk
Inebriation level (number).
Bank
Bank account balance (number).
Page
Pager length (number).
Security
OLC Security (number).
Language
What language is spoken (number:language).
Quest {
Complex quest object.
Time
Time remaining (number).
Score
Quest points (number).
}
Board
Last note read by board (number).
Religion
Player's religion (special).
Clan
Player's clan/guild/order (special).
Multiclass
Skill in each class (number).
Skill
Skill level by skill (number).
Alias {
Compex alias object list.
Name
Name/Keyword (string).
Command
Command list (string).
}
}
Obj {
Objects that are carried.
Vnum
Object's virtual number (number).
Key
The unique key for the object (number).
Name
Name/keywords (string).
ShortDesc
Short description (string).
Desc
Long description (string).
Action
Action message (string).
Required
Required skill (number:skill).
Extra
Extra flags (number:extra).
Wear
Possible wear locations (number:wear).
Location
Current wear location (number:wear-loc).
Type
Object type (number:type).
Level
Object level (number).
Weight
Weight (number).
Cost
Base gold cost (number).
Condition
Condition/1000 (number).
Affect {
Complex affect - same as for Char, but without Duration. }
ExDesc {
An extra description.
Keyword
Name/Keywords (string).
Text
Description text (string).
}
Event {
Complex event - same as for Char. }
Values
Array of type specific values (number).
Obj {
Nested objects, this has the same format as here. }

Immortal Commands

Immortal commands in Daleken are considered Skills. Each command is stored as a string in the field Immskill. Each immortal must have the level and the string in the field Immskill in order to use that particular imm command. This allows for customized immortals with customized skills.

To give an immortal a particular imm skill, edit the playerfile with your favorite text editor and add in the Char|PcData section:

Immskill	"wizhelp";

As an example:

Char {
Name		"Kahn";
...
PcData {
Immskill	"imtlset mset sset advance";
...

};
};