-
I propose two things:
[b](1) Comment File[/b]
This is a way for imms to leave notes on players with regard to
punishments and rule violations. Each comment is basically just
a little note, editable with the string editor. They are all dated
and organized chronologically so that large amounts of data can
be managed easily.
Something like this should do:
typedef struct pc_comment_data;
struct pc_comment_data
{
PC_COMMENT_DATA *next;
time_t time; /* time the comment is filed */
char *author; /* author */
char *string; /* actual note containing punishment, etc */
};
in pc data struct (to save memory, since there is no need for
NPCs to have comment files)
{
...
PC_COMMENT_DATA *pc_comment;
...
}
In save_char and load_char_obj we will add two routines to print each
comment out and read it in, in the correct order. Not really a problem
at all.
Immortals will be able to make and edit comments using a comment file editor
of some sort. We could add an OLC editor "cedit" or something of the sort, and actually
expand these comments to other structures if needed (perhaps it would be useful to have comments on objects, rooms, and etc.)
[b](2) Object Tracking for Objs[/b]
This is something Ertai suggested. Keeping track of the last 5 people
who had the object.
We would need another new data struct, this time one that stores a string
and an IP:
typedef struct obj_tracker_data;
struct obj_tracker_data
{
char *name; /* character name */
char *host; /* IP */
};
We'll use a linked list instead of an array to save on memory,
since there are lots of objs.
(insert in obj_data)
{
...
OBJ_TRACKER_DATA *people_list;
...
};
When each object is saved, its list will be saved with it,
and re-loaded in the correct order.
That's about it for this post. I left out some of the code-specific
details (like functions to create and free these structures).