> CHAR_DATA *tmp; > bool found; > char argbuf[MAX_INPUT_LENGTH]; > char abuf[MAX_INPUT_LENGTH]; > char buf2[MAX_INPUT_LENGTH]; > char bbuf[MAX_INPUT_LENGTH]; > strcpy(bbuf, argument); > argument = one_argument(argument, argbuf); > for ( vch = ch->in_room->first_person; vch; vch = vch->next_in_room ) > { > if (argbuf[0] != '\0' && !str_cmp(argbuf, vch->name)) { > found = TRUE; > tmp = vch; > break; > } > else > found = FALSE; > } < < > if (found==TRUE && !str_cmp(argbuf, vch->name)) { > strcpy(abuf,argbuf); > sbuf = argument; > } > else if (!found){ > strcpy(argument, bbuf); > strcpy(sbuf, bbuf); > argbuf[0] = '\0'; > abuf[0] = '\0'; > } < act( AT_SAY, "$n says '$t'", ch, sbuf, vch, TO_VICT ); > if(found && str_cmp(argbuf, vch->name)){ > sprintf(buf2, "%s '%s'", tmp->name, sbuf); > act( AT_SAY, "$n says to $t", ch, buf2, vch, TO_VICT ); > } > else if(found && !str_cmp(argbuf, vch->name)) > act( AT_SAY, "$n says to you '$t'", ch, sbuf, vch, TO_VICT ); > else > act( AT_SAY, "$n says '$t'", ch, sbuf, vch, TO_VICT ); < act( AT_SAY, "You say '$T'", ch, NULL, drunk_speech( argument, ch ), TO_CHAR ); > if (found) { > sprintf(buf2, "%s '%s'", tmp->name, drunk_speech( argument, ch )); > act( AT_SAY, "You say to $T", ch, NULL, buf2, TO_CHAR); > } > else > act( AT_SAY, "You say '$T'", ch, NULL, drunk_speech( argument, ch ), TO_CHAR ); > AREA_DATA *tarea; > ROOM_INDEX_DATA *troom; > char * sect; < if ( !IS_NPC(ch) && xIS_SET(ch->act, PLR_HOLYLIGHT) ) < ch_printf(ch,"[%d] ",ch->in_room->vnum); > switch( ch->in_room->sector_type ) { > default: sect = "???!"; break; > case SECT_INSIDE: sect = "Inside"; break; > case SECT_CITY: sect = "City"; break; > case SECT_FIELD: sect = "Field"; break; > case SECT_FOREST: sect = "Forest"; break; > case SECT_HILLS: sect = "Hills"; break; > case SECT_MOUNTAIN: sect = "Mountains"; break; > case SECT_WATER_SWIM: sect = "Swim"; break; > case SECT_WATER_NOSWIM: sect = "Noswim"; break; > case SECT_UNDERWATER: sect = "Underwater"; break; > case SECT_AIR: sect = "Air"; break; > case SECT_DESERT: sect = "Desert"; break; > case SECT_OCEANFLOOR: sect = "Oceanfloor"; break; > case SECT_UNDERGROUND: sect = "Underground"; break; > } > troom = ch->in_room; > tarea = troom->area; > > if ( !IS_NPC(ch) && xIS_SET(ch->act, PLR_HOLYLIGHT) ) { > ch_printf(ch,"&Y[&W %d",troom->vnum); > ch_printf(ch,"&Y |&W %s",tarea->filename); > ch_printf(ch,"&Y |&G %s",flag_string(tarea->flags, area_flags)); > ch_printf(ch,"&Y |&R %s",sect); > ch_printf(ch,"&Y |&G %s&Y ]&w\n\r",flag_string(troom->room_flags,r_flags)); > } > sprintf(buf, "%s is a %s and %s, %s %s haired, %s eyed %s with %s skin.\n\r", victim->sex == 0 > ? "It" : victim->sex == 1 ? "He" : "She", victim->bl, victim->bu, victim->hl, victim->hc, > victim->ec, race_table[victim->race]->race_name, victim->st); > send_to_char( buf, ch ); 3336c3367,3372 < pager_printf( ch, "&w%20.20s", skill_table[sn]->name ); > if ( ch->pcdata->learned[sn] == 0) > pager_printf( ch, "&W%20.20s", skill_table[sn]->name ); > else if ( ch->pcdata->learned[sn] > 0 && ch->pcdata->learned[sn] < skill_table[sn]->skill_adept[ch->class]) > pager_printf( ch, "&Y%20.20s", skill_table[sn]->name ); > else if ( ch->pcdata->learned[sn] > 0) > pager_printf( ch, "&R%20.20s", skill_table[sn]->name ); < pager_printf(ch, "\n\r'&W%s%s%s.'\n\r %s is a %s level %d %s %s, %d years of age.\n\r", > pager_printf(ch, "\n\r'&W%s %s%s.'\n\r %s is a %s level %d %s %s, %d years of age.\n\r", > sprintf(buf, " &C%s&W is a &C%s&W and &C%s&W, &C%s %s&W haired, &C%s&W eyed &C%s&W with &C%s&W skin.\n\r", victim->sex == 0 > ? "It" : victim->sex == 1 ? "He" : "She", victim->bl, victim->bu, victim->hl, victim->hc, > victim->ec, race_table[victim->race]->race_name, victim->st); > send_to_pager( buf, ch ); < char buf2[20]; > char buf2[MAX_STRING_LENGTH]; < sprintf(buf, "&Y%s&w\r\n", (ch->pcdata && ch->pcdata->bamfout[0] != '\0') ? ch->pcdata->bamfout < : buf2); > sprintf(buf, "&Y%s&w\r\n", (ch->pcdata && ch->pcdata->bamfout[0] != '\0') ? ch->pcdata->bamfout : buf2); < sprintf(buf2, "%s appears in a swirling mist.", ch->name); > sprintf(buf2, "&Y%s appears in a swirling mist.&w", ch->name); < sprintf(buf, "&Y%s&w\r\n", (ch->pcdata && ch->pcdata->bamfin[0] != '\0') < ? ch->pcdata->bamfin : buf2); > sprintf(buf, "%s\r\n", (ch->pcdata && ch->pcdata->bamfin[0] != '\0') ? ch->pcdata->bamfin : buf2); > write_to_buffer( d, echo_on_str, 0 ); > write_to_buffer( d, "\n\rSelect a Hair Color:\n\r", 0 ); > write_to_buffer( d, "(A) Black\n\r", 0 ); > write_to_buffer( d, "(B) White\n\r", 0 ); > write_to_buffer( d, "(C) Gray\n\r", 0 ); > write_to_buffer( d, "(D) Brown\n\r", 0 ); > write_to_buffer( d, "(E) Light Brown\n\r", 0 ); > write_to_buffer( d, "(F) Dark Brown\n\r", 0 ); > write_to_buffer( d, "(G) Blond\n\r", 0 ); > write_to_buffer( d, "(H) Light Blond\n\r", 0 ); > write_to_buffer( d, "(I) Dark Blond\n\r", 0 ); > write_to_buffer( d, "(J) Golden Blond\n\r", 0 ); > write_to_buffer( d, "(K) Brown Blond\n\r", 0 ); > write_to_buffer( d, "(L) Red\n\r", 0 ); > write_to_buffer( d, "(M) Red Brown\n\r", 0 ); > write_to_buffer( d, "(N) Red Blond\n\r", 0 ); > write_to_buffer( d, "(O) Blood Red\n\r", 0 ); > write_to_buffer( d, "(P) Orange Red\n\r", 0 ); > write_to_buffer( d, "Enter your selection: ", 0 ); > d->connected = CON_GET_HAIR_COLOR; > break; > case CON_GET_HAIR_COLOR: > switch ( argument[0] ) > { > case 'a': case 'A': ch->hc = "Black"; break; > case 'b': case 'B': ch->hc = "White"; break; > case 'c': case 'C': ch->hc = "Gray"; break; > case 'd': case 'D': ch->hc = "Brown"; break; > case 'e': case 'E': ch->hc = "Light Brown"; break; > case 'f': case 'F': ch->hc = "Dark Brown"; break; > case 'g': case 'G': ch->hc = "Blond"; break; > case 'h': case 'H': ch->hc = "Light Blond"; break; > case 'i': case 'I': ch->hc = "Dark Blond"; break; > case 'j': case 'J': ch->hc = "Golden Blond"; break; > case 'k': case 'K': ch->hc = "Brown Blond"; break; > case 'l': case 'L': ch->hc = "Red"; break; > case 'm': case 'M': ch->hc = "Red Brown"; break; > case 'n': case 'N': ch->hc = "Red Blond"; break; > case 'o': case 'O': ch->hc = "Blood Red"; break; > case 'p': case 'P': ch->hc = "Orange Red"; break; > default: > write_to_buffer( d, "That's not a hair color.\n\rWhat IS your hair color?", 0 ); > return; > } > write_to_buffer( d, echo_on_str, 0 ); > write_to_buffer( d, "\n\rSelect a Hair length:\n\r", 0 ); > write_to_buffer( d, "(S) Short\n\r", 0 ); > write_to_buffer( d, "(M) Medium\n\r", 0 ); > write_to_buffer( d, "(L) Long\n\r", 0 ); > write_to_buffer( d, "Enter your selection: ", 0 ); > d->connected = CON_GET_HAIR_LENGTH; > break; > case CON_GET_HAIR_LENGTH: > switch ( argument[0] ) > { > case 's': case 'S': ch->hl = "Short"; break; > case 'm': case 'M': ch->hl = "Medium"; break; > case 'l': case 'L': ch->hl = "Long"; break; > default: > write_to_buffer( d, "That's not a hair length.\n\rWhat IS your hair length?", 0 ); > return; > } > write_to_buffer( d, echo_on_str, 0 ); > write_to_buffer( d, "\n\rSelect a eye color:\n\r", 0 ); > write_to_buffer( d, "(A) Brown.\n\r", 0 ); > write_to_buffer( d, "(B) Green.\n\r", 0 ); > write_to_buffer( d, "(C) Teal.\n\r", 0 ); > write_to_buffer( d, "(D) Blue-Green.\n\r", 0 ); > write_to_buffer( d, "(E) Hazel.\n\r", 0 ); > write_to_buffer( d, "(F) Blue.\n\r", 0 ); > write_to_buffer( d, "(G) Hazel-Blue.\n\r", 0 ); > write_to_buffer( d, "(H) Hazel-Green.\n\r", 0 ); > write_to_buffer( d, "(I) Light Brown.\n\r", 0 ); > write_to_buffer( d, "(J) Baby Blue.\n\r", 0 ); > write_to_buffer( d, "(K) Jade.\n\r", 0 ); > write_to_buffer( d, "(L) Red.\n\r", 0 ); > write_to_buffer( d, "(M) Blood-Red.\n\r", 0 ); > write_to_buffer( d, "Enter your selection: ", 0 ); > d->connected = CON_GET_EYE_COLOR; > break; > case CON_GET_EYE_COLOR: > switch ( argument[0] ) > { > case 'a': case 'A': ch->ec = "Brown"; break; > case 'b': case 'B': ch->ec = "Green"; break; > case 'c': case 'C': ch->ec = "Teal"; break; > case 'd': case 'D': ch->ec = "Blue Green"; break; > case 'e': case 'E': ch->ec = "Hazel"; break; > case 'f': case 'F': ch->ec = "Blue"; break; > case 'g': case 'G': ch->ec = "Hazel Blue"; break; > case 'h': case 'H': ch->ec = "Hazel Green"; break; > case 'i': case 'I': ch->ec = "Light Brown"; break; > case 'j': case 'J': ch->ec = "Baby Blue"; break; > case 'k': case 'K': ch->ec = "Jade"; break; > case 'l': case 'L': ch->ec = "Red"; break; > case 'm': case 'M': ch->ec = "Blood Red"; break; > default: > write_to_buffer( d, "That's not a color.\n\rWhat IS your eye color?", 0 ); > return; > } > > write_to_buffer( d, echo_on_str, 0 ); > write_to_buffer( d, "\n\rSelect a Skin Tone:\n\r", 0 ); > write_to_buffer( d, "(A) Brown.\n\r", 0 ); > write_to_buffer( d, "(B) Pale.\n\r", 0 ); > write_to_buffer( d, "(C) Red.\n\r", 0 ); > write_to_buffer( d, "(D) White.\n\r", 0 ); > write_to_buffer( d, "(E) Yellow.\n\r", 0 ); > write_to_buffer( d, "(F) Tan.\n\r", 0 ); > write_to_buffer( d, "Enter your selection: ", 0 ); > d->connected = CON_GET_SKIN_TONE; > break; > case CON_GET_SKIN_TONE: > switch ( argument[0] ) > { > case 'a': case 'A': ch->st = "Brown"; break; > case 'b': case 'B': ch->st = "Pale"; break; > case 'c': case 'C': ch->st = "Red"; break; > case 'd': case 'D': ch->st = "White"; break; > case 'e': case 'E': ch->st = "Yellow"; break; > case 'f': case 'F': ch->st = "Tan"; break; > default: > write_to_buffer( d, "That's not a skin tone.\n\rWhat IS your skin tone?", 0 ); > return; > } > write_to_buffer( d, echo_on_str, 0 ); > write_to_buffer( d, "\n\rSelect a Build:\n\r", 0 ); > write_to_buffer( d, "(A) Bone.\n\r", 0 ); > write_to_buffer( d, "(B) Thin.\n\r", 0 ); > write_to_buffer( d, "(C) Medium.\n\r", 0 ); > write_to_buffer( d, "(D) Large.\n\r", 0 ); > write_to_buffer( d, "(E) Buff.\n\r", 0 ); > write_to_buffer( d, "Enter your selection: ", 0 ); > d->connected = CON_GET_BUILD; > break; > case CON_GET_BUILD: > switch ( argument[0] ) > { > case 'a': case 'A': ch->bu = "Bone"; break; > case 'b': case 'B': ch->bu = "Thin"; break; > case 'c': case 'C': ch->bu = "Medium"; break; > case 'd': case 'D': ch->bu = "Large"; break; > case 'e': case 'E': ch->bu = "Buff"; break; > default: > write_to_buffer( d, "That's not a build.\n\rWhat IS your build?", 0 ); > return; > } > write_to_buffer( d, echo_on_str, 0 ); > write_to_buffer( d, "\n\rSelect a Height:\n\r", 0 ); > write_to_buffer( d, "(A) Midget.\n\r", 0 ); > write_to_buffer( d, "(B) Short.\n\r", 0 ); > write_to_buffer( d, "(C) Medium.\n\r", 0 ); > write_to_buffer( d, "(D) Tall.\n\r", 0 ); > write_to_buffer( d, "(E) Towering.\n\r", 0 ); > write_to_buffer( d, "Enter your selection: ", 0 ); > d->connected = CON_GET_HEIGHT; > break; > case CON_GET_HEIGHT: > switch ( argument[0] ) > { > case 'a': case 'A': ch->bl = "Midget"; break; > case 'b': case 'B': ch->bl = "Short"; break; > case 'c': case 'C': ch->bl = "Medium"; break; > case 'd': case 'D': ch->bl = "Tall"; break; > case 'e': case 'E': ch->bl = "Towering"; break; > default: > write_to_buffer( d, "That's not a height.\n\rWhat IS your height?", 0 ); > return; > } > if ( get_trust(ch) < victim->ghost_level && ch->in_room == victim->in_room) > return FALSE; > if (ch->level < victim->incog_level && ch->in_room != victim->in_room) > return FALSE; < #define IMC_VERSIONID "UCMM + World IMC Network Headquarters" > #define IMC_VERSIONID "imc2-1.03g RM4.0" < CON_ANSI /* Josh */ > CON_ANSI, /* Josh */ > CON_GET_HAIR_COLOR, /* Josh */ > CON_GET_HAIR_LENGTH, /* Josh */ > CON_GET_EYE_COLOR, /* Josh */ > CON_GET_SKIN_TONE, /* Josh */ > CON_GET_BUILD, /* Josh */ > CON_GET_HEIGHT /* Josh */ < > char * hc; > char * ec; > char * st; > char * bu; > char * hl; > char * bl; > fprintf( fp, "HC %s~\n", ch->hc ); > fprintf( fp, "HL %s~\n", ch->hl ); > fprintf( fp, "EC %s~\n", ch->ec ); > fprintf( fp, "ST %s~\n", ch->st ); > fprintf( fp, "BU %s~\n", ch->bu ); > fprintf( fp, "BL %s~\n", ch->bl ); > fprintf( fp, "GhostLevel %d\n", ch->ghost_level ); > KEY( "BU", ch->bu, fread_string( fp ) ); > KEY( "BL", ch->bl, fread_string( fp ) ); > KEY( "GhostLevel", ch->ghost_level, fread_number( fp ) ); < > KEY( "HC", ch->hc, fread_string( fp ) ); > KEY( "HL", ch->hl, fread_string( fp ) ); > KEY( "ST", ch->st, fread_string( fp ) ); > KEY( "EC", ch->ec, fread_string( fp ) );