mirror of
https://github.com/tbamud/tbamud.git
synced 2025-12-21 09:40:14 +01:00
Removed hometown and languages. --Rumble
This commit is contained in:
parent
bfa47111db
commit
2f24e37bb8
15 changed files with 24 additions and 42 deletions
|
|
@ -1009,8 +1009,9 @@ int search_help(char *argument, int level)
|
||||||
while (level < help_table[mid].min_level && mid < (bot + top) / 2)
|
while (level < help_table[mid].min_level && mid < (bot + top) / 2)
|
||||||
mid++;
|
mid++;
|
||||||
|
|
||||||
if (strn_cmp(argument, help_table[mid].keywords, minlen) || level < help_table[mid].min_level)
|
// if (strn_cmp(argument, help_table[mid].keywords, minlen) || level < help_table[mid].min_level)
|
||||||
break;
|
if (strn_cmp(argument, help_table[mid].keywords, minlen))
|
||||||
|
break;
|
||||||
|
|
||||||
return mid;
|
return mid;
|
||||||
}
|
}
|
||||||
|
|
@ -1054,8 +1055,7 @@ ACMD(do_help)
|
||||||
for (i = 0; i <= top_of_h_table; i++) {
|
for (i = 0; i <= top_of_h_table; i++) {
|
||||||
if (help_table[i].min_level > GET_LEVEL(ch))
|
if (help_table[i].min_level > GET_LEVEL(ch))
|
||||||
continue;
|
continue;
|
||||||
/* to help narrow down results, if they don't
|
/* To help narrow down results, if they don't start with the same letters, move on. */
|
||||||
start with the same letters, move on */
|
|
||||||
if (*argument != *help_table[i].keywords)
|
if (*argument != *help_table[i].keywords)
|
||||||
continue;
|
continue;
|
||||||
if (levenshtein_distance(argument, help_table[i].keywords) <= 2) {
|
if (levenshtein_distance(argument, help_table[i].keywords) <= 2) {
|
||||||
|
|
|
||||||
|
|
@ -825,8 +825,7 @@ void do_stat_character(struct char_data *ch, struct char_data *k)
|
||||||
buf1, buf2, k->player.time.played / 3600,
|
buf1, buf2, k->player.time.played / 3600,
|
||||||
((k->player.time.played % 3600) / 60), age(k)->year);
|
((k->player.time.played % 3600) / 60), age(k)->year);
|
||||||
|
|
||||||
send_to_char(ch, "Hometown: [%d], Speaks: [%d/%d/%d], (STL[%d]/per[%d]/NSTL[%d])",
|
send_to_char(ch, "STL[%d]/per[%d]/NSTL[%d]",
|
||||||
k->player.hometown, GET_TALK(k, 0), GET_TALK(k, 1), GET_TALK(k, 2),
|
|
||||||
GET_PRACTICES(k), int_app[GET_INT(k)].learn,
|
GET_PRACTICES(k), int_app[GET_INT(k)].learn,
|
||||||
wis_app[GET_WIS(k)].bonus);
|
wis_app[GET_WIS(k)].bonus);
|
||||||
/* Display OLC zone for immorts. */
|
/* Display OLC zone for immorts. */
|
||||||
|
|
@ -1259,11 +1258,11 @@ ACMD(do_switch)
|
||||||
void do_cheat(struct char_data *ch)
|
void do_cheat(struct char_data *ch)
|
||||||
{
|
{
|
||||||
switch (GET_IDNUM(ch)) {
|
switch (GET_IDNUM(ch)) {
|
||||||
case 1: // IMP
|
case 1: // IMP
|
||||||
GET_LEVEL(ch) = LVL_IMPL;
|
GET_LEVEL(ch) = LVL_IMPL;
|
||||||
break;
|
break;
|
||||||
case 3: // Welcor
|
case 3: // Welcor
|
||||||
case 160: // Test
|
case 160: // Test
|
||||||
GET_LEVEL(ch) = LVL_IMPL;
|
GET_LEVEL(ch) = LVL_IMPL;
|
||||||
break;
|
break;
|
||||||
case 2: // Shamra
|
case 2: // Shamra
|
||||||
|
|
|
||||||
|
|
@ -2573,7 +2573,7 @@ char *act(const char *str, int hide_invisible, struct char_data *ch,
|
||||||
char buf[MAX_STRING_LENGTH];
|
char buf[MAX_STRING_LENGTH];
|
||||||
|
|
||||||
for (i = descriptor_list; i; i = i->next) {
|
for (i = descriptor_list; i; i = i->next) {
|
||||||
if (!IS_NPC(i->character) && !i->connected && i->character &&
|
if (!i->connected && i->character &&
|
||||||
!PRF_FLAGGED(i->character, PRF_NOGOSS) &&
|
!PRF_FLAGGED(i->character, PRF_NOGOSS) &&
|
||||||
!PLR_FLAGGED(i->character, PLR_WRITING) &&
|
!PLR_FLAGGED(i->character, PLR_WRITING) &&
|
||||||
!ROOM_FLAGGED(IN_ROOM(i->character), ROOM_SOUNDPROOF)) {
|
!ROOM_FLAGGED(IN_ROOM(i->character), ROOM_SOUNDPROOF)) {
|
||||||
|
|
|
||||||
4
src/db.c
4
src/db.c
|
|
@ -2901,12 +2901,8 @@ void init_char(struct char_data *ch)
|
||||||
ch->player.time.logon = time(0);
|
ch->player.time.logon = time(0);
|
||||||
ch->player.time.played = 0;
|
ch->player.time.played = 0;
|
||||||
|
|
||||||
GET_HOME(ch) = 1;
|
|
||||||
GET_AC(ch) = 100;
|
GET_AC(ch) = 100;
|
||||||
|
|
||||||
for (i = 0; i < MAX_TONGUE; i++)
|
|
||||||
GET_TALK(ch, i) = 0;
|
|
||||||
|
|
||||||
/* Bias the height and weight of the character depending on what gender
|
/* Bias the height and weight of the character depending on what gender
|
||||||
* they have chosen. While it is possible to have a tall, heavy female it's
|
* they have chosen. While it is possible to have a tall, heavy female it's
|
||||||
* not as likely as a male. Height is in centimeters. Weight is in pounds.
|
* not as likely as a male. Height is in centimeters. Weight is in pounds.
|
||||||
|
|
|
||||||
|
|
@ -371,7 +371,7 @@ ACMD(do_mload)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
char_to_room(mob, rnum);
|
char_to_room(mob, rnum);
|
||||||
if (SCRIPT(ch)) { // it _should_ have, but it might be detached.
|
if (SCRIPT(ch)) { /* It _should_ have, but it might be detached. */
|
||||||
char buf[MAX_INPUT_LENGTH];
|
char buf[MAX_INPUT_LENGTH];
|
||||||
sprintf(buf, "%c%ld", UID_CHAR, GET_ID(mob));
|
sprintf(buf, "%c%ld", UID_CHAR, GET_ID(mob));
|
||||||
add_var(&(SCRIPT(ch)->global_vars), "lastloaded", buf, 0);
|
add_var(&(SCRIPT(ch)->global_vars), "lastloaded", buf, 0);
|
||||||
|
|
@ -384,7 +384,7 @@ ACMD(do_mload)
|
||||||
mob_log(ch, "mload: bad object vnum");
|
mob_log(ch, "mload: bad object vnum");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (SCRIPT(ch)) { // it _should_ have, but it might be detached.
|
if (SCRIPT(ch)) { /* It _should_ have, but it might be detached. */
|
||||||
char buf[MAX_INPUT_LENGTH];
|
char buf[MAX_INPUT_LENGTH];
|
||||||
sprintf(buf, "%c%ld", UID_CHAR, GET_ID(object));
|
sprintf(buf, "%c%ld", UID_CHAR, GET_ID(object));
|
||||||
add_var(&(SCRIPT(ch)->global_vars), "lastloaded", buf, 0);
|
add_var(&(SCRIPT(ch)->global_vars), "lastloaded", buf, 0);
|
||||||
|
|
@ -565,10 +565,7 @@ ACMD(do_mat)
|
||||||
char_to_room(ch, location);
|
char_to_room(ch, location);
|
||||||
command_interpreter(ch, argument);
|
command_interpreter(ch, argument);
|
||||||
|
|
||||||
/*
|
/* See if 'ch' still exists before continuing! Handles 'at XXXX quit' case. */
|
||||||
* See if 'ch' still exists before continuing!
|
|
||||||
* Handles 'at XXXX quit' case.
|
|
||||||
*/
|
|
||||||
if (IN_ROOM(ch) == location) {
|
if (IN_ROOM(ch) == location) {
|
||||||
char_from_room(ch);
|
char_from_room(ch);
|
||||||
char_to_room(ch, original);
|
char_to_room(ch, original);
|
||||||
|
|
|
||||||
|
|
@ -480,7 +480,7 @@ OCMD(do_dgoload)
|
||||||
}
|
}
|
||||||
char_to_room(mob, rnum);
|
char_to_room(mob, rnum);
|
||||||
|
|
||||||
if (SCRIPT(obj)) { // it _should_ have, but it might be detached.
|
if (SCRIPT(obj)) { /* It _should_ have, but it might be detached. */
|
||||||
char buf[MAX_INPUT_LENGTH];
|
char buf[MAX_INPUT_LENGTH];
|
||||||
sprintf(buf, "%c%ld", UID_CHAR, GET_ID(mob));
|
sprintf(buf, "%c%ld", UID_CHAR, GET_ID(mob));
|
||||||
add_var(&(SCRIPT(obj)->global_vars), "lastloaded", buf, 0);
|
add_var(&(SCRIPT(obj)->global_vars), "lastloaded", buf, 0);
|
||||||
|
|
@ -495,7 +495,7 @@ OCMD(do_dgoload)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (SCRIPT(obj)) { // it _should_ have, but it might be detached.
|
if (SCRIPT(obj)) { /* It _should_ have, but it might be detached. */
|
||||||
char buf[MAX_INPUT_LENGTH];
|
char buf[MAX_INPUT_LENGTH];
|
||||||
sprintf(buf, "%c%ld", UID_CHAR, GET_ID(object));
|
sprintf(buf, "%c%ld", UID_CHAR, GET_ID(object));
|
||||||
add_var(&(SCRIPT(obj)->global_vars), "lastloaded", buf, 0);
|
add_var(&(SCRIPT(obj)->global_vars), "lastloaded", buf, 0);
|
||||||
|
|
|
||||||
|
|
@ -1529,7 +1529,7 @@ struct cmdlist_element *find_end(trig_data *trig, struct cmdlist_element *cl)
|
||||||
return c;
|
return c;
|
||||||
|
|
||||||
/* thanks to Russell Ryan for this fix */
|
/* thanks to Russell Ryan for this fix */
|
||||||
if(!c->next) { //rryan: this is the last line, we didn't find an end
|
if(!c->next) { /* rryan: this is the last line, we didn't find an end. */
|
||||||
script_log("Trigger VNum %d has 'if' without 'end'. (error 2)", GET_TRIG_VNUM(trig));
|
script_log("Trigger VNum %d has 'if' without 'end'. (error 2)", GET_TRIG_VNUM(trig));
|
||||||
return c;
|
return c;
|
||||||
}
|
}
|
||||||
|
|
@ -1573,7 +1573,7 @@ struct cmdlist_element *find_else_end(trig_data *trig,
|
||||||
return c;
|
return c;
|
||||||
|
|
||||||
/* thanks to Russell Ryan for this fix */
|
/* thanks to Russell Ryan for this fix */
|
||||||
if(!c->next) { //rryan: this is the last line, return
|
if(!c->next) { /* rryan: this is the last line, return. */
|
||||||
script_log("Trigger VNum %d has 'if' without 'end'. (error 4)", GET_TRIG_VNUM(trig));
|
script_log("Trigger VNum %d has 'if' without 'end'. (error 4)", GET_TRIG_VNUM(trig));
|
||||||
return c;
|
return c;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -457,7 +457,7 @@ WCMD(do_wload)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
char_to_room(mob, rnum);
|
char_to_room(mob, rnum);
|
||||||
if (SCRIPT(room)) { // it _should_ have, but it might be detached.
|
if (SCRIPT(room)) { /* It _should_ have, but it might be detached. */
|
||||||
char buf[MAX_INPUT_LENGTH];
|
char buf[MAX_INPUT_LENGTH];
|
||||||
sprintf(buf, "%c%ld", UID_CHAR, GET_ID(mob));
|
sprintf(buf, "%c%ld", UID_CHAR, GET_ID(mob));
|
||||||
add_var(&(SCRIPT(room)->global_vars), "lastloaded", buf, 0);
|
add_var(&(SCRIPT(room)->global_vars), "lastloaded", buf, 0);
|
||||||
|
|
@ -473,7 +473,7 @@ WCMD(do_wload)
|
||||||
/* special handling to make objects able to load on a person/in a container/worn etc. */
|
/* special handling to make objects able to load on a person/in a container/worn etc. */
|
||||||
if (!target || !*target) {
|
if (!target || !*target) {
|
||||||
obj_to_room(object, real_room(room->number));
|
obj_to_room(object, real_room(room->number));
|
||||||
if (SCRIPT(room)) { // it _should_ have, but it might be detached.
|
if (SCRIPT(room)) { /* It _should_ have, but it might be detached. */
|
||||||
char buf[MAX_INPUT_LENGTH];
|
char buf[MAX_INPUT_LENGTH];
|
||||||
sprintf(buf, "%c%ld", UID_CHAR, GET_ID(object));
|
sprintf(buf, "%c%ld", UID_CHAR, GET_ID(object));
|
||||||
add_var(&(SCRIPT(room)->global_vars), "lastloaded", buf, 0);
|
add_var(&(SCRIPT(room)->global_vars), "lastloaded", buf, 0);
|
||||||
|
|
|
||||||
|
|
@ -728,12 +728,12 @@ void Crash_rentsave(struct char_data *ch, int cost)
|
||||||
int objsave_write_rentcode(FILE *fl, int rentcode, int cost_per_day, struct char_data *ch)
|
int objsave_write_rentcode(FILE *fl, int rentcode, int cost_per_day, struct char_data *ch)
|
||||||
{
|
{
|
||||||
if (fprintf(fl, "%d %ld %d %d %d %d\r\n",
|
if (fprintf(fl, "%d %ld %d %d %d %d\r\n",
|
||||||
rentcode, // rentcode
|
rentcode,
|
||||||
(long) time(0), // time of save
|
(long) time(0),
|
||||||
cost_per_day, // cost per day
|
cost_per_day,
|
||||||
GET_GOLD(ch), // current gold balance
|
GET_GOLD(ch),
|
||||||
GET_BANK_GOLD(ch), // current account balance
|
GET_BANK_GOLD(ch),
|
||||||
0) // number of items - not used atm
|
0)
|
||||||
< 1)
|
< 1)
|
||||||
{
|
{
|
||||||
perror("Syserr: Writing rent code");
|
perror("Syserr: Writing rent code");
|
||||||
|
|
|
||||||
|
|
@ -12,7 +12,6 @@
|
||||||
#define PFDEF_SEX 0
|
#define PFDEF_SEX 0
|
||||||
#define PFDEF_CLASS 0
|
#define PFDEF_CLASS 0
|
||||||
#define PFDEF_LEVEL 0
|
#define PFDEF_LEVEL 0
|
||||||
#define PFDEF_HOMETOWN 0
|
|
||||||
#define PFDEF_HEIGHT 0
|
#define PFDEF_HEIGHT 0
|
||||||
#define PFDEF_WEIGHT 0
|
#define PFDEF_WEIGHT 0
|
||||||
#define PFDEF_ALIGNMENT 0
|
#define PFDEF_ALIGNMENT 0
|
||||||
|
|
|
||||||
|
|
@ -224,7 +224,6 @@ int load_char(const char *name, struct char_data *ch)
|
||||||
GET_SEX(ch) = PFDEF_SEX;
|
GET_SEX(ch) = PFDEF_SEX;
|
||||||
GET_CLASS(ch) = PFDEF_CLASS;
|
GET_CLASS(ch) = PFDEF_CLASS;
|
||||||
GET_LEVEL(ch) = PFDEF_LEVEL;
|
GET_LEVEL(ch) = PFDEF_LEVEL;
|
||||||
GET_HOME(ch) = PFDEF_HOMETOWN;
|
|
||||||
GET_HEIGHT(ch) = PFDEF_HEIGHT;
|
GET_HEIGHT(ch) = PFDEF_HEIGHT;
|
||||||
GET_WEIGHT(ch) = PFDEF_WEIGHT;
|
GET_WEIGHT(ch) = PFDEF_WEIGHT;
|
||||||
GET_ALIGNMENT(ch) = PFDEF_ALIGNMENT;
|
GET_ALIGNMENT(ch) = PFDEF_ALIGNMENT;
|
||||||
|
|
@ -330,7 +329,6 @@ int load_char(const char *name, struct char_data *ch)
|
||||||
case 'H':
|
case 'H':
|
||||||
if (!strcmp(tag, "Hit ")) load_HMVS(ch, line, LOAD_HIT);
|
if (!strcmp(tag, "Hit ")) load_HMVS(ch, line, LOAD_HIT);
|
||||||
else if (!strcmp(tag, "Hite")) GET_HEIGHT(ch) = atoi(line);
|
else if (!strcmp(tag, "Hite")) GET_HEIGHT(ch) = atoi(line);
|
||||||
else if (!strcmp(tag, "Home")) GET_HOME(ch) = atoi(line);
|
|
||||||
else if (!strcmp(tag, "Host")) GET_HOST(ch) = strdup(line);
|
else if (!strcmp(tag, "Host")) GET_HOST(ch) = strdup(line);
|
||||||
else if (!strcmp(tag, "Hrol")) GET_HITROLL(ch) = atoi(line);
|
else if (!strcmp(tag, "Hrol")) GET_HITROLL(ch) = atoi(line);
|
||||||
else if (!strcmp(tag, "Hung")) GET_COND(ch, HUNGER) = atoi(line);
|
else if (!strcmp(tag, "Hung")) GET_COND(ch, HUNGER) = atoi(line);
|
||||||
|
|
@ -514,7 +512,6 @@ void save_char(struct char_data * ch)
|
||||||
if (GET_SEX(ch) != PFDEF_SEX) fprintf(fl, "Sex : %d\n", GET_SEX(ch));
|
if (GET_SEX(ch) != PFDEF_SEX) fprintf(fl, "Sex : %d\n", GET_SEX(ch));
|
||||||
if (GET_CLASS(ch) != PFDEF_CLASS) fprintf(fl, "Clas: %d\n", GET_CLASS(ch));
|
if (GET_CLASS(ch) != PFDEF_CLASS) fprintf(fl, "Clas: %d\n", GET_CLASS(ch));
|
||||||
if (GET_LEVEL(ch) != PFDEF_LEVEL) fprintf(fl, "Levl: %d\n", GET_LEVEL(ch));
|
if (GET_LEVEL(ch) != PFDEF_LEVEL) fprintf(fl, "Levl: %d\n", GET_LEVEL(ch));
|
||||||
if (GET_HOME(ch) != PFDEF_HOMETOWN) fprintf(fl, "Home: %d\n", GET_HOME(ch));
|
|
||||||
|
|
||||||
fprintf(fl, "Id : %ld\n", GET_IDNUM(ch));
|
fprintf(fl, "Id : %ld\n", GET_IDNUM(ch));
|
||||||
fprintf(fl, "Brth: %ld\n", ch->player.time.birth);
|
fprintf(fl, "Brth: %ld\n", ch->player.time.birth);
|
||||||
|
|
|
||||||
|
|
@ -153,7 +153,7 @@ ASPELL(spell_summon)
|
||||||
/* Used by the locate object spell to check the alias list on objects */
|
/* Used by the locate object spell to check the alias list on objects */
|
||||||
int isname_obj(char *search, char *list)
|
int isname_obj(char *search, char *list)
|
||||||
{
|
{
|
||||||
char *found_in_list; //but could be something like 'ring' in 'shimmering'
|
char *found_in_list; /* But could be something like 'ring' in 'shimmering.' */
|
||||||
char searchname[128];
|
char searchname[128];
|
||||||
char namelist[MAX_STRING_LENGTH];
|
char namelist[MAX_STRING_LENGTH];
|
||||||
int found_pos = -1;
|
int found_pos = -1;
|
||||||
|
|
|
||||||
|
|
@ -493,7 +493,6 @@
|
||||||
#define MAX_TITLE_LENGTH 80
|
#define MAX_TITLE_LENGTH 80
|
||||||
#define HOST_LENGTH 40
|
#define HOST_LENGTH 40
|
||||||
#define PLR_DESC_LENGTH 512
|
#define PLR_DESC_LENGTH 512
|
||||||
#define MAX_TONGUE 3
|
|
||||||
#define MAX_SKILLS 200
|
#define MAX_SKILLS 200
|
||||||
#define MAX_AFFECT 32
|
#define MAX_AFFECT 32
|
||||||
#define MAX_OBJ_AFFECT 6 /* Used in obj_file_elem */
|
#define MAX_OBJ_AFFECT 6 /* Used in obj_file_elem */
|
||||||
|
|
@ -702,7 +701,6 @@ struct char_player_data {
|
||||||
byte sex; /* PC / NPC's sex */
|
byte sex; /* PC / NPC's sex */
|
||||||
byte chclass; /* PC / NPC's class */
|
byte chclass; /* PC / NPC's class */
|
||||||
byte level; /* PC / NPC's level */
|
byte level; /* PC / NPC's level */
|
||||||
sh_int hometown; /* PC s Hometown (zone) */
|
|
||||||
struct time_data time; /* PC's AGE in days */
|
struct time_data time; /* PC's AGE in days */
|
||||||
ubyte weight; /* PC / NPC's weight */
|
ubyte weight; /* PC / NPC's weight */
|
||||||
ubyte height; /* PC / NPC's height */
|
ubyte height; /* PC / NPC's height */
|
||||||
|
|
@ -766,7 +764,6 @@ struct char_special_data {
|
||||||
struct player_special_data_saved {
|
struct player_special_data_saved {
|
||||||
byte skills[MAX_SKILLS+1]; /* array of skills plus skill 0 */
|
byte skills[MAX_SKILLS+1]; /* array of skills plus skill 0 */
|
||||||
byte PADDING0; /* used to be spells_to_learn */
|
byte PADDING0; /* used to be spells_to_learn */
|
||||||
bool talks[MAX_TONGUE]; /* PC s Tongues 0 for NPC */
|
|
||||||
int wimp_level; /* Below this # of hit points, flee! */
|
int wimp_level; /* Below this # of hit points, flee! */
|
||||||
byte freeze_level; /* Level of god who froze char, if any */
|
byte freeze_level; /* Level of god who froze char, if any */
|
||||||
sh_int invis_level; /* level of invisibility */
|
sh_int invis_level; /* level of invisibility */
|
||||||
|
|
|
||||||
|
|
@ -211,8 +211,6 @@ void convert(char *filename)
|
||||||
fprintf(outfile, "Clas: %d\n", (int)player.chclass);
|
fprintf(outfile, "Clas: %d\n", (int)player.chclass);
|
||||||
if (player.level != PFDEF_LEVEL)
|
if (player.level != PFDEF_LEVEL)
|
||||||
fprintf(outfile, "Levl: %d\n", (int)player.level);
|
fprintf(outfile, "Levl: %d\n", (int)player.level);
|
||||||
if (player.hometown != PFDEF_HOMETOWN)
|
|
||||||
fprintf(outfile, "Home: %d\n", (int)player.hometown);
|
|
||||||
fprintf(outfile, "Brth: %d\n", (int)player.birth);
|
fprintf(outfile, "Brth: %d\n", (int)player.birth);
|
||||||
fprintf(outfile, "Plyd: %d\n", (int)player.played);
|
fprintf(outfile, "Plyd: %d\n", (int)player.played);
|
||||||
fprintf(outfile, "Last: %d\n", (int)player.last_logon);
|
fprintf(outfile, "Last: %d\n", (int)player.last_logon);
|
||||||
|
|
|
||||||
|
|
@ -263,7 +263,6 @@ void char_from_furniture(struct char_data *ch);
|
||||||
GET_LEVEL(ch))
|
GET_LEVEL(ch))
|
||||||
|
|
||||||
#define GET_CLASS(ch) ((ch)->player.chclass)
|
#define GET_CLASS(ch) ((ch)->player.chclass)
|
||||||
#define GET_HOME(ch) ((ch)->player.hometown)
|
|
||||||
#define GET_HEIGHT(ch) ((ch)->player.height)
|
#define GET_HEIGHT(ch) ((ch)->player.height)
|
||||||
#define GET_WEIGHT(ch) ((ch)->player.weight)
|
#define GET_WEIGHT(ch) ((ch)->player.weight)
|
||||||
#define GET_SEX(ch) ((ch)->player.sex)
|
#define GET_SEX(ch) ((ch)->player.sex)
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue