diff -i smaug14/src/act_info.c smaug18/src/act_info.c 8c8 < * Tricops and Fireblade | * --- > * Tricops, Fireblade, Edmond, Conran | * 33a34,51 > char *const imm_badge[15] = { > "&G&r(&wSupreme Entity&r)", > "&G&r(&wInfinite&G&r)", > "&G&r(&wEternal&G&r)", > "&G&r(&wAncient&G&r)", > "&G&r(&wExalted God&G&r)", > "&G(&wAscendant God&G)", > "&G(&wGreater God&G)", > "&G(&wGod&G)", > "&G(&wLesser God&G)", > "&G(&wImmortal&G)", > "&G(&wDemi God&G)", > "&G(&WSavior&G)", > "&G(&WCreator&G)", > "&G(&WAcolyte&G)", > "&G&W(Neophyte)" > }; > 35,58c53,76 < "<used as light> ", < "<worn on finger> ", < "<worn on finger> ", < "<worn around neck> ", < "<worn around neck> ", < "<worn on body> ", < "<worn on head> ", < "<worn on legs> ", < "<worn on feet> ", < "<worn on hands> ", < "<worn on arms> ", < "<worn as shield> ", < "<worn about body> ", < "<worn about waist> ", < "<worn around wrist> ", < "<worn around wrist> ", < "<wielded> ", < "<held> ", < "<dual wielded> ", < "<worn on ears> ", < "<worn on eyes> ", < "<missile wielded> ", < "<worn on back> ", < "<worn over face> ", --- > "<used as light> ", > "<worn on finger> ", > "<worn on finger> ", > "<worn around neck> ", > "<worn around neck> ", > "<worn on body> ", > "<worn on head> ", > "<worn on legs> ", > "<worn on feet> ", > "<worn on hands> ", > "<worn on arms> ", > "<worn as shield> ", > "<worn about body> ", > "<worn about waist> ", > "<worn around wrist> ", > "<worn around wrist> ", > "<wielded> ", > "<held> ", > "<dual wielded> ", > "<worn on ears> ", > "<worn on eyes> ", > "<missile wielded> ", > "<worn on back> ", > "<worn over face> ", 75a94,101 > //Similar Helpfile Snippet Declarations > sh_int str_similarity( const char *astr, const char *bstr ); > sh_int str_prefix_level( const char *astr, const char *bstr ); > void similar_help_files( CHAR_DATA * ch, char *argument ); > > extern bool in_same_house args( ( CHAR_DATA * ch, CHAR_DATA * vch ) ); > > 134c160 < if ( IS_AFFECTED( ch, AFF_DETECTTRAPS ) && is_trapped( obj ) ) --- > if ( ( IS_AFFECTED( ch, AFF_DETECTTRAPS ) || xIS_SET( ch->act, PLR_HOLYLIGHT ) ) && is_trapped( obj ) ) 148c174 < if ( obj->description ) --- > else if ( obj->description ) 256a283 > * Memory leak reported by robet@wirehead.com - fixed --Shaddai 279c306 < return strdup( buf_new ); --- > return buf_new; 435a463,466 > case ITEM_CORPSE_PC: > case ITEM_CORPSE_NPC: > set_char_color( AT_ORANGE, ch ); > break; 445a477 > case ITEM_PUDDLE: 549a582 > TIMER *timer; 582,583c615,701 < if ( IS_IMMORTAL( victim ) && victim->level > 50 ) < send_to_char_color( "&P(&WImmortal&P) ", ch ); --- > int ilevel = victim->level; > > switch ( ilevel ) > { > case MAX_LEVEL - 0: > send_to_char_color( "&G&r(&wSupreme Entity&G&r)&P ", ch ); > break; > case MAX_LEVEL - 1: > send_to_char_color( "&G&r(&wInfinite&G&r)&P ", ch ); > break; > case MAX_LEVEL - 2: > send_to_char_color( "&G&r(&wEternal&G&r)&P ", ch ); > break; > case MAX_LEVEL - 3: > send_to_char_color( "&G&r(&wAncient&G&r)&P ", ch ); > break; > case MAX_LEVEL - 4: > if ( victim->sex == 2 ) > send_to_char_color( "&G&r(&wExalted Goddess&G&r)&P ", ch ); > else > send_to_char_color( "&G&r(&wExalted God&G&r)&P ", ch ); > break; > case MAX_LEVEL - 5: > if ( victim->sex == 2 ) > send_to_char_color( "&G(&wAscendant Goddess&G)&P ", ch ); > else > send_to_char_color( "&G(&wAscendant God&G)&P ", ch ); > break; > case MAX_LEVEL - 6: > if ( victim->sex == 2 ) > send_to_char_color( "&G(&wGreater Goddess&G)&P ", ch ); > else > send_to_char_color( "&G(&wGreater God&G)&P ", ch ); > break; > case MAX_LEVEL - 7: > if ( victim->sex == 2 ) > send_to_char_color( "&G(&wGoddess&G)&P ", ch ); > else > send_to_char_color( "&G(&wGod&G)&P ", ch ); > break; > case MAX_LEVEL - 8: > if ( victim->sex == 2 ) > send_to_char_color( "&G(&wLesser Goddess&G)&P ", ch ); > else > send_to_char_color( "&G(&wLesser God&G)&P ", ch ); > break; > case MAX_LEVEL - 9: > send_to_char_color( "&G(&wImmortal&G)&P ", ch ); > break; > case MAX_LEVEL - 10: > if ( victim->sex == 2 ) > send_to_char_color( "&G(&wDemi Goddess&G)&P ", ch ); > else > send_to_char_color( "&G(&wDemi God&G)&P ", ch ); > break; > case MAX_LEVEL - 11: > send_to_char_color( "&G(&WSavior&G)&P ", ch ); > break; > case MAX_LEVEL - 12: > send_to_char_color( "&G(&WCreator&G)&P ", ch ); > break; > case MAX_LEVEL - 13: > send_to_char_color( "&G(&WAcolyte&G)&P ", ch ); > break; > case MAX_LEVEL - 14: > send_to_char_color( "&G&W(Neophyte)&P ", ch ); > break; > default: > break; > } > > /* > if ( !IS_IMMORTAL( victim ) && !IS_NPC( victim ) && IS_IMMORTAL( ch ) ) > { > if ( xIS_SET( victim->act, PLR_SILENCE ) > || xIS_SET( victim->act, PLR_FREEZE ) > || IS_SET( victim->pcdata->flags, PCFLAG_NOBIO ) > || IS_SET( victim->pcdata->flags, PCFLAG_NODESC ) > || IS_SET( victim->pcdata->flags, PCFLAG_NOBECKON ) > || xIS_SET( victim->act, PLR_NO_EMOTE ) ) > ch_printf_color( ch, "&G&P(Mulct) " ); > } > */ > if ( !IS_IMMORTAL( victim ) > && ch->level < 26 > && victim->pcdata->council && !str_cmp( victim->pcdata->council->name, "Newbie Council" ) ) > ch_printf_color( ch, "&P&W<&PNew Player Advisor&W>&P " ); 588c706 < ch_printf_color( ch, "%s ", victim->pcdata->clan->badge ); --- > ch_printf_color( ch, "&P%s ", victim->pcdata->clan->badge ); 612a731,732 > if ( IS_AFFECTED( victim, AFF_GRAPPLE ) ) > strcat( buf, "(Grappling) " ); 653c773 < send_to_char( buf, ch ); --- > send_to_char_color( buf, ch ); /* Blod color */ 668c788 < switch ( victim->position ) --- > if ( ( timer = get_timerptr( victim, TIMER_DO_FUN ) ) != NULL ) 670,754c790,881 < case POS_DEAD: < strcat( buf, " is DEAD!!" ); < break; < case POS_MORTAL: < strcat( buf, " is mortally wounded." ); < break; < case POS_INCAP: < strcat( buf, " is incapacitated." ); < break; < case POS_STUNNED: < strcat( buf, " is lying here stunned." ); < break; < case POS_SLEEPING: < if ( ch->position == POS_SITTING || ch->position == POS_RESTING ) < strcat( buf, " is sleeping nearby." ); < else < strcat( buf, " is deep in slumber here." ); < break; < case POS_RESTING: < if ( ch->position == POS_RESTING ) < strcat( buf, " is sprawled out alongside you." ); < else if ( ch->position == POS_MOUNTED ) < strcat( buf, " is sprawled out at the foot of your mount." ); < else < strcat( buf, " is sprawled out here." ); < break; < case POS_SITTING: < if ( ch->position == POS_SITTING ) < strcat( buf, " sits here with you." ); < else if ( ch->position == POS_RESTING ) < strcat( buf, " sits nearby as you lie around." ); < else < strcat( buf, " sits upright here." ); < break; < case POS_STANDING: < if ( IS_IMMORTAL( victim ) ) < strcat( buf, " is here before you." ); < else if ( ( victim->in_room->sector_type == SECT_UNDERWATER ) < && !IS_AFFECTED( victim, AFF_AQUA_BREATH ) && !IS_NPC( victim ) ) < strcat( buf, " is drowning here." ); < else if ( victim->in_room->sector_type == SECT_UNDERWATER ) < strcat( buf, " is here in the water." ); < else if ( ( victim->in_room->sector_type == SECT_OCEANFLOOR ) < && !IS_AFFECTED( victim, AFF_AQUA_BREATH ) && !IS_NPC( victim ) ) < strcat( buf, " is drowning here." ); < else if ( victim->in_room->sector_type == SECT_OCEANFLOOR ) < strcat( buf, " is standing here in the water." ); < else if ( IS_AFFECTED( victim, AFF_FLOATING ) || IS_AFFECTED( victim, AFF_FLYING ) ) < strcat( buf, " is hovering here." ); < else < strcat( buf, " is standing here." ); < break; < case POS_SHOVE: < strcat( buf, " is being shoved around." ); < break; < case POS_DRAG: < strcat( buf, " is being dragged around." ); < break; < case POS_MOUNTED: < strcat( buf, " is here, upon " ); < if ( !victim->mount ) < strcat( buf, "thin air???" ); < else if ( victim->mount == ch ) < strcat( buf, "your back." ); < else if ( victim->in_room == victim->mount->in_room ) < { < strcat( buf, PERS( victim->mount, ch ) ); < strcat( buf, "." ); < } < else < strcat( buf, "someone who left??" ); < break; < case POS_FIGHTING: < case POS_EVASIVE: < case POS_DEFENSIVE: < case POS_AGGRESSIVE: < case POS_BERSERK: < strcat( buf, " is here, fighting " ); < if ( !victim->fighting ) < { < strcat( buf, "thin air???" ); < < /* < * some bug somewhere.... kinda hackey fix -h < */ --- > if ( timer->do_fun == do_meditate ) > strcat( buf, " is in a meditative state." ); > else if ( timer->do_fun == do_cast ) > strcat( buf, " is here chanting." ); > else if ( timer->do_fun == do_dig ) > strcat( buf, " is here digging." ); > else if ( timer->do_fun == do_trance ) > strcat( buf, " is in a deep trance." ); > else if ( timer->do_fun == do_search ) > strcat( buf, " is searching the area for something." ); > else if ( timer->do_fun == do_detrap ) > strcat( buf, " is working with the trap here." ); > else > strcat( buf, " is looking rather lost." ); > } > else > { > switch ( victim->position ) > { > case POS_DEAD: > strcat( buf, " is DEAD!!" ); > break; > case POS_MORTAL: > strcat( buf, " is mortally wounded." ); > break; > case POS_INCAP: > strcat( buf, " is incapacitated." ); > break; > case POS_STUNNED: > strcat( buf, " is lying here stunned." ); > break; > case POS_SLEEPING: > if ( ch->position == POS_SITTING || ch->position == POS_RESTING ) > strcat( buf, " is sleeping nearby." ); > else > strcat( buf, " is deep in slumber here." ); > break; > case POS_RESTING: > if ( ch->position == POS_RESTING ) > strcat( buf, " is sprawled out alongside you." ); > else if ( ch->position == POS_MOUNTED ) > strcat( buf, " is sprawled out at the foot of your mount." ); > else > strcat( buf, " is sprawled out here." ); > break; > case POS_SITTING: > if ( ch->position == POS_SITTING ) > strcat( buf, " sits here with you." ); > else if ( ch->position == POS_RESTING ) > strcat( buf, " sits nearby as you lie around." ); > else > strcat( buf, " sits upright here." ); > break; > case POS_STANDING: > if ( IS_IMMORTAL( victim ) ) > strcat( buf, " radiates with a godly light." ); > else if ( ( victim->in_room->sector_type == SECT_UNDERWATER ) > && !IS_AFFECTED( victim, AFF_AQUA_BREATH ) && !IS_NPC( victim ) ) > strcat( buf, " is drowning here." ); > else if ( victim->in_room->sector_type == SECT_UNDERWATER ) > strcat( buf, " is here in the water." ); > else if ( ( victim->in_room->sector_type == SECT_OCEANFLOOR ) > && !IS_AFFECTED( victim, AFF_AQUA_BREATH ) && !IS_NPC( victim ) ) > strcat( buf, " is drowning here." ); > else if ( victim->in_room->sector_type == SECT_OCEANFLOOR ) > strcat( buf, " is standing here in the water." ); > else if ( IS_AFFECTED( victim, AFF_FLOATING ) || IS_AFFECTED( victim, AFF_FLYING ) ) > if ( victim->stance > STANCE_NONE ) > { > strcat( buf, " is hovering here in a " ); > strcat( buf, get_stance_name( victim->stance ) ); > strcat( buf, " stance." ); > } > else > strcat( buf, " is hovering here." ); > else if ( victim->stance > STANCE_NONE ) > { > strcat( buf, " is standing here in a " ); > strcat( buf, get_stance_name( victim->stance ) ); > strcat( buf, " stance." ); > } > else > strcat( buf, " is standing here." ); > break; > case POS_SHOVE: > strcat( buf, " is being shoved around." ); > break; > case POS_DRAG: > strcat( buf, " is being dragged around." ); > break; > case POS_MOUNTED: > strcat( buf, " is here, upon " ); 756c883,890 < victim->position = POS_STANDING; --- > strcat( buf, "thin air???" ); > else if ( victim->mount == ch ) > strcat( buf, "your back." ); > else if ( victim->in_room == victim->mount->in_room ) > { > strcat( buf, PERS( victim->mount, ch ) ); > strcat( buf, "." ); > } 758,770c892,902 < victim->position = POS_MOUNTED; < } < else if ( who_fighting( victim ) == ch ) < strcat( buf, "YOU!" ); < else if ( victim->in_room == victim->fighting->who->in_room ) < { < strcat( buf, PERS( victim->fighting->who, ch ) ); < strcat( buf, "." ); < } < else < strcat( buf, "someone who left??" ); < break; < } --- > strcat( buf, "someone who left??" ); > break; > case POS_FIGHTING: > case POS_EVASIVE: > case POS_DEFENSIVE: > case POS_AGGRESSIVE: > case POS_BERSERK: > strcat( buf, " is here, fighting " ); > if ( !victim->fighting ) > { > strcat( buf, "thin air???" ); 771a904,923 > /* > * some bug somewhere.... kinda hackey fix -h > */ > if ( !victim->mount ) > victim->position = POS_STANDING; > else > victim->position = POS_MOUNTED; > } > else if ( who_fighting( victim ) == ch ) > strcat( buf, "YOU!" ); > else if ( victim->in_room == victim->fighting->who->in_room ) > { > strcat( buf, PERS( victim->fighting->who, ch ) ); > strcat( buf, "." ); > } > else > strcat( buf, "someone who left??" ); > break; > } > } 774c926 < send_to_char( buf, ch ); --- > send_to_char_color( buf, ch ); /* Blod color */ 814a967,975 > /* > * Show stance they are in if someone looks at them. SHADDAI > */ > if ( victim->stance > STANCE_NORMAL ) > { > ch_printf( ch, "\n\r%s is in a %s fighting stance.\n\r", > capitalize( PERS( victim, ch ) ), get_stance_name( victim->stance ) ); > } > 964a1126,1137 > char dir_n[50]; > char dir_e[50]; > char dir_s[50]; > char dir_w[50]; > char dir_u[50]; > char dir_d[50]; > char dir_ne[50]; > char dir_nw[50]; > char dir_se[50]; > char dir_sw[50]; > char dir_sm[50]; > char *exitcolor; 972a1146 > int len = colorlen( ch->in_room->name, 50 ); 1021,1027c1195,1207 < /* < * 'look' or 'look auto' < */ < set_char_color( AT_RMNAME, ch ); < send_to_char( ch->in_room->name, ch ); < send_to_char( "\n\r", ch ); < set_char_color( AT_RMDESC, ch ); --- > if ( xIS_SET( ch->act, PLR_COMPASS ) ) > { > strcpy( dir_n, "&z-" ); > strcpy( dir_e, "&z-" ); > strcpy( dir_s, "&z-" ); > strcpy( dir_w, "&z-" ); > strcpy( dir_u, "&z-" ); > strcpy( dir_d, "&z-" ); > strcpy( dir_ne, "&z \\" ); > strcpy( dir_nw, "&z/ " ); > strcpy( dir_se, "&z /" ); > strcpy( dir_sw, "&z\\ " ); > strcpy( dir_sm, "&z-" ); 1028a1209,1292 > for ( pexit = ch->in_room->first_exit; pexit; pexit = pexit->next ) > { > if ( ( pexit->to_room > && !IS_SET( pexit->exit_info, EX_HIDDEN ) && !IS_SET( pexit->exit_info, EX_SECRET ) ) ) > > /* || (IS_SET (pexit->exit_info, EX_SECRET) > && !IS_SET (pexit->exit_info, EX_CLOSED))) > */ > { > exitcolor = "&Y&G"; > if ( IS_SET( pexit->exit_info, EX_WINDOW ) ) > exitcolor = "&C"; > if ( IS_SET( pexit->exit_info, EX_SECRET ) ) > exitcolor = "&b"; > if ( IS_SET( pexit->exit_info, EX_CLOSED ) ) > exitcolor = "&g"; > if ( IS_SET( pexit->exit_info, EX_LOCKED ) ) > exitcolor = "&r"; > if ( pexit->vdir == DIR_NORTH ) > sprintf( dir_n, "%sN", exitcolor ); > if ( pexit->vdir == DIR_EAST ) > sprintf( dir_e, "%sE", exitcolor ); > if ( pexit->vdir == DIR_SOUTH ) > sprintf( dir_s, "%sS", exitcolor ); > if ( pexit->vdir == DIR_WEST ) > sprintf( dir_w, "%sW", exitcolor ); > if ( pexit->vdir == DIR_UP ) > sprintf( dir_u, "%sU", exitcolor ); > if ( pexit->vdir == DIR_DOWN ) > sprintf( dir_d, "%sD", exitcolor ); > if ( pexit->vdir == DIR_NORTHEAST ) > sprintf( dir_ne, "%sNE", exitcolor ); > if ( pexit->vdir == DIR_NORTHWEST ) > sprintf( dir_nw, "%sNW", exitcolor ); > if ( pexit->vdir == DIR_SOUTHEAST ) > sprintf( dir_se, "%sSE", exitcolor ); > if ( pexit->vdir == DIR_SOUTHWEST ) > sprintf( dir_sw, "%sSW", exitcolor ); > } > } > > send_to_char( "\n\r", ch ); > set_char_color( AT_RMNAME, ch ); > /* ch_printf( ch, "%-50.50s", ch->in_room->name ); */ > if ( xIS_SET( ch->in_room->room_flags, ROOM_COLOR ) ) > ch_printf_color( ch, "%-*.*s", len, len, ch->in_room->name ); > else > ch_printf( ch, "%-50.50s", ch->in_room->name ); > strcat( dir_nw, " " ); > ch_printf_color( ch, " %s ", dir_nw ); > strcat( dir_n, " " ); > ch_printf_color( ch, " %s", dir_n ); > ch_printf_color( ch, " %s\n\r", dir_ne ); > send_to_char_color( "&z------------------------------------------------------- ", ch ); > strcat( dir_w, "" ); > ch_printf_color( ch, " %s", dir_w ); > send_to_char_color( "&z -", ch ); > strcat( dir_u, "&z-&g(&Y&G+&g)&z" ); > ch_printf_color( ch, "%s", dir_u ); > strcat( dir_d, "&z-" ); > send_to_char_color( "&z-", ch ); > ch_printf_color( ch, "%s", dir_d ); > send_to_char_color( "&z ", ch ); > ch_printf_color( ch, "%s\n\r", dir_e ); > send_to_char( " ", ch ); > strcat( dir_sw, " " ); > ch_printf_color( ch, " %s ", dir_sw ); > strcat( dir_s, " " ); > ch_printf_color( ch, " %s", dir_s ); > ch_printf_color( ch, " %s", dir_se ); > send_to_char( "\n\r", ch ); > > } > else > { > set_char_color( AT_RMNAME, ch ); > if ( xIS_SET( ch->in_room->room_flags, ROOM_COLOR ) ) > send_to_char_color( ch->in_room->name, ch ); > else > send_to_char( ch->in_room->name, ch ); > send_to_char( "\n\r", ch ); > } > > set_char_color( AT_RMDESC, ch ); 1030c1294,1309 < send_to_char( ch->in_room->description, ch ); --- > { > if ( xIS_SET( ch->in_room->room_flags, ROOM_COLOR ) ) > send_to_char_color( ch->in_room->description, ch ); > else > send_to_char( ch->in_room->description, ch ); > } > > /* > if ( !IS_NPC(ch) && xIS_SET(ch->act, PLR_AUTOMAP) ) > { > if(ch->in_room->map != NULL) > { > do_lookmap(ch, NULL); > } > } > */ 1032c1311,1314 < if ( !IS_NPC( ch ) && xIS_SET( ch->act, PLR_AUTOMAP ) ) /* maps */ --- > /* > * Testing automapper snippet - 2002 > */ > if ( !IS_NPC( ch ) && xIS_SET( ch->act, PLR_AUTOMAP ) ) 1034,1037c1316,1322 < if ( ch->in_room->map != NULL ) < { < do_lookmap( ch, NULL ); < } --- > ch_printf_color( ch, > "&w_____________________________________________________________________________\n\r" ); > if ( IS_IMMORTAL( ch ) ) > do_lookmap( ch, "auto" ); > ch_printf_color( ch, > "&w_____________________________________________________________________________\n\r" ); > 1039a1325 > 1048a1335,1348 > if ( !str_cmp( arg1, "sky" ) ) > { > if ( !IS_OUTSIDE( ch ) ) > { > send_to_char( "You can't see the sky indoors.\n\r", ch ); > return; > } > else > { > look_sky( ch ); > return; > } > } > 1128c1428,1430 < obj->value[1] < 3 * obj->value[0] / 4 ? "about" : "more than", liq_table[obj->value[2]].liq_color ); --- > obj->value[1] < 3 * obj->value[0] / 4 > ? "about" : "more than", > ( obj->value[2] >= LIQ_MAX ? "clear" : liq_table[obj->value[2]].liq_color ) ); 1196c1498,1505 < act( AT_PLAIN, "The $d is closed.", ch, NULL, pexit->keyword, TO_CHAR ); --- > { > if ( pexit->keyword[strlen( pexit->keyword ) - 1] == 's' > || ( pexit->keyword[strlen( pexit->keyword ) - 1] == '\'' > && pexit->keyword[strlen( pexit->keyword ) - 2] == 's' ) ) > act( AT_RED, "The $d are closed.", ch, NULL, pexit->keyword, TO_CHAR ); > else > act( AT_RED, "The $d is closed.", ch, NULL, pexit->keyword, TO_CHAR ); > } 1200c1509,1516 < act( AT_RED, "The $d has been bashed from its hinges!", ch, NULL, pexit->keyword, TO_CHAR ); --- > { > if ( pexit->keyword[strlen( pexit->keyword ) - 1] == 's' > || ( pexit->keyword[strlen( pexit->keyword ) - 1] == '\'' > && pexit->keyword[strlen( pexit->keyword ) - 2] == 's' ) ) > act( AT_RED, "The $d have been bashed from their hinges.", ch, NULL, pexit->keyword, TO_CHAR ); > else > act( AT_RED, "The $d has been bashed from its hinges.", ch, NULL, pexit->keyword, TO_CHAR ); > } 1307a1624,1626 > if ( obj->item_type == ITEM_PUDDLE ) > ch_printf( ch, "It's a puddle of %s liquid.\n\r", > ( obj->value[2] >= LIQ_MAX ? "clear" : liq_table[obj->value[2]].liq_color ) ); 1348a1668,1670 > if ( obj->item_type == ITEM_PUDDLE ) > ch_printf( ch, "It's a puddle of %s liquid.\n\r", > ( obj->value[2] >= LIQ_MAX ? "clear" : liq_table[obj->value[2]].liq_color ) ); 1626a1949,1963 > case ITEM_JOURNAL: > { > sh_int count = 0; > EXTRA_DESCR_DATA *ed; > > for ( ed = obj->first_extradesc; ed; ed = ed->next ) > count++; > > ch_printf( ch, "%s has %d %s written in out of a possible %d.\n\r", > obj->short_descr, count, count == 1 ? "page" : "pages", obj->value[0] ); > > break; > } > > 1630c1967 < if ( dam == 0 ) --- > if ( dam <= 0 ) 1665c2002,2005 < else if ( dam == 1 ) --- > /* > * Changed to 2, bug caught by Keith Howell > */ > else if ( dam == 2 ) 1785d2124 < 1793d2131 < set_char_color( AT_EXITS, ch ); 1800,1801c2138,2139 < strcpy( buf, fAuto ? "Exits:" : "Obvious exits:\n\r" ); < --- > set_char_color( AT_EXITS, ch ); > ch_printf_color( ch, "%s", fAuto ? "Exits: " : "Obvious exits:\n\r" ); 1806c2144 < && !IS_SET( pexit->exit_info, EX_CLOSED ) --- > /* && !IS_SET(pexit->exit_info, EX_CLOSED) */ 1808c2146,2148 < || IS_SET( pexit->exit_info, EX_ISDOOR ) ) && !IS_SET( pexit->exit_info, EX_HIDDEN ) ) --- > || IS_SET( pexit->exit_info, EX_ISDOOR ) ) > && !IS_SET( pexit->exit_info, EX_SECRET ) > && !IS_SET( pexit->exit_info, EX_HIDDEN ) && !IS_SET( pexit->exit_info, EX_DIG ) ) 1813,1814c2153,2168 < strcat( buf, " " ); < strcat( buf, dir_name[pexit->vdir] ); --- > if ( IS_SET( pexit->exit_info, EX_CLOSED ) ) > { > if ( pexit->keyword > && ( !str_cmp( "door", pexit->keyword ) > || !str_cmp( "gate", pexit->keyword ) || pexit->keyword[0] == '\0' ) ) > { > strcat( buf, "[" ); > strcat( buf, dir_name[pexit->vdir] ); > strcat( buf, "] " ); > } > } > else > { > strcat( buf, dir_name[pexit->vdir] ); > strcat( buf, " " ); > } 1826c2180 < strcat( buf, fAuto ? " none.\n\r" : "None.\n\r" ); --- > strcat( buf, fAuto ? "none\n\r" : "None\n\r" ); 1828,1829c2182,2183 < strcat( buf, ".\n\r" ); < send_to_char( buf, ch ); --- > strcat( buf, "\n\r" ); > send_to_char_color( buf, ch ); 1832a2187 > 1970c2325,2328 < argument = argnew; --- > if ( strcmp( argument, argnew ) ) > argument = argnew; > else > lev = -2; 1999a2358,2377 > void do_nanny_help( CHAR_DATA * ch, char *argument ) > { > HELP_DATA *pHelp; > char buf[MAX_STRING_LENGTH]; > > sprintf( buf, "nanny_%s", argument ); > > if ( ( pHelp = get_help( ch, buf ) ) == NULL ) > return; > > if ( pHelp->level >= 0 ) > { > send_to_pager( "\n\r", ch ); > set_pager_color( AT_GREY, ch ); > } > > send_to_pager_color( pHelp->text + ( pHelp->text[0] == '.' ? 1 : 0 ), ch ); > return; > } > 2016,2019c2394,2396 < /* < * Now this is cleaner < */ < void do_help( CHAR_DATA * ch, char *argument ) --- > // Ranks by number of matches between two whole words. Coded for the Similar Helpfiles > // Snippet by Senir. > sh_int str_similarity( const char *astr, const char *bstr ) 2021c2398 < HELP_DATA *pHelp; --- > sh_int matches = 0; 2023c2400,2403 < if ( ( pHelp = get_help( ch, argument ) ) == NULL ) --- > if ( !astr || !bstr ) > return matches; > > for ( ; *astr; astr++ ) 2025,2026c2405,2409 < send_to_char( "No help on that word.\n\r", ch ); < return; --- > if ( LOWER( *astr ) == LOWER( *bstr ) ) > matches++; > > if ( ++bstr == '\0' ) > return matches; 2029,2033c2412,2413 < /* < * Make newbies do a help start. --Shaddai < */ < if ( !IS_NPC( ch ) && !str_cmp( argument, "start" ) ) < SET_BIT( ch->pcdata->flags, PCFLAG_HELPSTART ); --- > return matches; > } 2035c2415,2424 < if ( pHelp->level >= 0 && str_cmp( argument, "imotd" ) ) --- > // Ranks by number of matches until there's a nonmatching character between two words. > // Coded for the Similar Helpfiles Snippet by Senir. > sh_int str_prefix_level( const char *astr, const char *bstr ) > { > sh_int matches = 0; > > if ( !astr || !bstr ) > return matches; > > for ( ; *astr; astr++ ) 2037,2038c2426,2432 < send_to_pager( pHelp->keyword, ch ); < send_to_pager( "\n\r", ch ); --- > if ( LOWER( *astr ) == LOWER( *bstr ) ) > matches++; > else > return matches; > > if ( ++bstr == '\0' ) > return matches; 2041,2048c2435 < /* < * Strip leading '.' to allow initial blanks. < */ < if ( pHelp->text[0] == '.' ) < send_to_pager_color( pHelp->text + 1, ch ); < else < send_to_pager_color( pHelp->text, ch ); < return; --- > return matches; 2051c2438,2444 < void do_news( CHAR_DATA * ch, char *argument ) --- > // Main function of Similar Helpfiles Snippet by Senir. It loops through all of the > // helpfiles, using the string matching function defined to find the closest matching > // helpfiles to the argument. It then checks for singles. Then, if matching helpfiles > // are found at all, it loops through and prints out the closest matching helpfiles. > // If its a single(there's only one), it opens the helpfile. > > void similar_help_files( CHAR_DATA * ch, char *argument ) 2053,2055c2446,2450 < set_pager_color( AT_NOTE, ch ); < do_help( ch, "news" ); < } --- > HELP_DATA *pHelp = NULL; > char buf[MAX_STRING_LENGTH]; > char *extension; > sh_int lvl = 0; > bool single = FALSE; 2057d2451 < extern char *help_greeting; /* so we can edit the greeting online */ 2059,2064c2453 < /* < * Help editor -Thoric < */ < void do_hedit( CHAR_DATA * ch, char *argument ) < { < HELP_DATA *pHelp; --- > send_to_pager_color( "&C&RSimilar Help Files:\n\r", ch ); 2066c2455 < if ( !ch->desc ) --- > for ( pHelp = first_help; pHelp; pHelp = pHelp->next ) 2068c2457,2595 < send_to_char( "You have no descriptor.\n\r", ch ); --- > buf[0] = '\0'; > extension = pHelp->keyword; > > if ( pHelp->level > get_trust( ch ) ) > continue; > > while ( extension[0] != '\0' ) > { > extension = one_argument( extension, buf ); > > if ( str_similarity( argument, buf ) > lvl ) > { > lvl = str_similarity( argument, buf ); > single = TRUE; > } > else if ( str_similarity( argument, buf ) == lvl && lvl > 0 ) > { > single = FALSE; > } > } > } > > if ( lvl == 0 ) > { > send_to_pager_color( "&C&RNo similar help files.\n\r", ch ); > return; > } > > for ( pHelp = first_help; pHelp; pHelp = pHelp->next ) > { > buf[0] = '\0'; > extension = pHelp->keyword; > > while ( extension[0] != '\0' ) > { > extension = one_argument( extension, buf ); > > if ( str_similarity( argument, buf ) >= lvl && pHelp->level <= get_trust( ch ) ) > { > if ( single ) > { > send_to_pager_color( "&C&WOpening only similar helpfile.&C\n\r", ch ); > do_help( ch, buf ); > return; > } > > pager_printf_color( ch, "&C&W %s\n\r", pHelp->keyword ); > break; > > } > > } > } > return; > } > > > > /* Mods by Luc to alleviate some pager color bleeding */ > void do_help( CHAR_DATA * ch, char *argument ) > { > HELP_DATA *pHelp; > > if ( ( pHelp = get_help( ch, argument ) ) == NULL ) > { > /* > * Write this to a file so we can see what people > * are looking for. --Shaddai > */ > char buf[MAX_STRING_LENGTH]; > > sprintf( buf, "%s : %s", argument, ch->name ); > append_to_file( NOHELP_FILE, buf ); > > // Looks better printing out the missed argument before going to similar > // helpfiles. - Senir > pager_printf_color( ch, "&C&RNo help on \'%s\' found.\n\r", argument ); > similar_help_files( ch, argument ); > return; > } > /* > * Make newbies do a help start. --Shaddai > */ > if ( !IS_NPC( ch ) && !str_cmp( argument, "start" ) ) > SET_BIT( ch->pcdata->flags, PCFLAG_HELPSTART ); > if ( pHelp->level >= 0 && str_cmp( argument, "imotd" ) ) > { > set_pager_color( AT_RED, ch ); > send_to_pager( pHelp->keyword, ch ); > send_to_pager( "\n\r", ch ); > set_pager_color( AT_GREY, ch ); > } > /* > * Strip leading '.' to allow initial blanks. > */ > send_to_pager_color( pHelp->text + ( pHelp->text[0] == '.' ? 1 : 0 ), ch ); > } > > void do_changes( CHAR_DATA * ch, char *argument ) > { > > if ( IS_NPC( ch ) ) > return; > send_to_char_color( "\n\r&gChanges to the Realms ...\n\r", ch ); > show_file( ch, CHANGE_FILE ); > send_to_char_color( "&G&g... type &G'&gnews&G'&g for recent updates.\n\r", ch ); > if ( IS_IMMORTAL( ch ) ) > send_to_char_color( "&G&gImmortals should also check &G'&gimmnews&G'&g.\n\r", ch ); > return; > } > > /* Replaced with extended news snippet > void do_news( CHAR_DATA *ch, char *argument ) > { > > if ( IS_NPC( ch ) ) > return; > send_to_char_color( "\n\r&gNews of the Realms ...\n\r", ch ); > show_file( ch, NEWS_FILE ); > send_to_char_color( "&G&g... type &G'&gchanges&G'&g for other or older updates.\n\r", ch ); > if ( IS_IMMORTAL( ch ) ) > send_to_char_color( "&G&gImmortals should also check &G'&gimmnews&G'&g.\n\r", ch ); > return; > } > */ > > > extern char *help_greeting; /* so we can edit the greeting online */ > > /* > * Help editor -Thoric > */ > void do_hedit( CHAR_DATA * ch, char *argument ) > { > HELP_DATA *pHelp; > > if ( !ch->desc ) > { > send_to_char( "You have no descriptor.\n\r", ch ); 2400,2415c2927,3543 < /* < * Now for those who have leaders.. < */ < while ( wc < dc ) < for ( d = last_descriptor; d; d = d->prev ) < { < if ( d->connected != CON_PLAYING && d->connected != CON_EDITING ) < continue; < if ( find_whogr( d, first_whogr ) ) < continue; < wch = ( d->original ? d->original : d->character ); < if ( wch->leader && wch->leader != wch && wch->leader->desc && < !IS_NPC( wch->leader ) && !IS_IMMORTAL( wch ) && < !IS_IMMORTAL( wch->leader ) && ( whogr_t = find_whogr( wch->leader->desc, first_whogr ) ) ) < { < CREATE( whogr, struct whogr_s, 1 ); --- > /* > * Now for those who have leaders.. > */ > while ( wc < dc ) > for ( d = last_descriptor; d; d = d->prev ) > { > if ( d->connected != CON_PLAYING && d->connected != CON_EDITING ) > continue; > if ( find_whogr( d, first_whogr ) ) > continue; > wch = ( d->original ? d->original : d->character ); > if ( wch->leader && wch->leader != wch && wch->leader->desc && > !IS_NPC( wch->leader ) && !IS_IMMORTAL( wch ) && > !IS_IMMORTAL( wch->leader ) && ( whogr_t = find_whogr( wch->leader->desc, first_whogr ) ) ) > { > CREATE( whogr, struct whogr_s, 1 ); > > if ( !whogr_t->l_follow ) > whogr_t->follower = whogr_t->l_follow = whogr; > else > { > whogr_t->l_follow->next = whogr; > whogr_t->l_follow = whogr; > } > whogr->next = NULL; > whogr->follower = whogr->l_follow = NULL; > whogr->d = d; > whogr->indent = 0; > ++wc; > } > } > /* > * Set up indentation levels > */ > indent_whogr( looker, first_whogr, 0 ); > > /* > * And now to linear link them.. > */ > for ( whogr_t = NULL, whogr = first_whogr; whogr; ) > if ( whogr->l_follow ) > { > whogr->l_follow->next = whogr; > whogr->l_follow = NULL; > if ( whogr_t ) > whogr_t->next = whogr = whogr->follower; > else > first_whogr = whogr = whogr->follower; > } > else > { > whogr_t = whogr; > whogr = whogr->next; > } > } > > void do_who( CHAR_DATA * ch, char *argument ) > { > char buf[MAX_STRING_LENGTH]; > char clan_name[MAX_INPUT_LENGTH]; > char council_name[MAX_INPUT_LENGTH]; > char invis_str[MAX_INPUT_LENGTH]; > char char_name[MAX_INPUT_LENGTH]; > char *extra_title; > char class_text[MAX_INPUT_LENGTH]; > struct whogr_s *whogr, *whogr_p; > DESCRIPTOR_DATA *d; > int iClass, iRace; > int iLevelLower; > int iLevelUpper; > int nNumber; > int nMatch; > bool rgfClass[MAX_CLASS]; > bool rgfRace[MAX_RACE]; > bool fClassRestrict; > bool fRaceRestrict; > bool fImmortalOnly; > bool fLeader; > bool fPkill; > bool fShowHomepage; > bool fRetired = FALSE; > bool fClanMatch; /* SB who clan (order),who guild, and who council */ > bool fCouncilMatch; > bool fDeityMatch; > bool fGroup; > CLAN_DATA *pClan = NULL; > COUNCIL_DATA *pCouncil = NULL; > DEITY_DATA *pDeity = NULL; > FILE *whoout = NULL; > > /* > * #define WT_IMM 0; > * #define WT_MORTAL 1; > * #define WT_DEADLY 2; > */ > > WHO_DATA *cur_who = NULL; > WHO_DATA *next_who = NULL; > WHO_DATA *first_mortal = NULL; > WHO_DATA *first_imm = NULL; > WHO_DATA *first_deadly = NULL; > WHO_DATA *first_grouped = NULL; > WHO_DATA *first_groupwho = NULL; > > > /* > * Set default arguments. > */ > iLevelLower = 0; > iLevelUpper = MAX_LEVEL; > fClassRestrict = FALSE; > fRaceRestrict = FALSE; > fImmortalOnly = FALSE; > fPkill = FALSE; > fShowHomepage = FALSE; > fClanMatch = FALSE; /* SB who clan (order), who guild, who council */ > fCouncilMatch = FALSE; > fDeityMatch = FALSE; > fGroup = FALSE; /* Alty who group */ > fLeader = FALSE; > for ( iClass = 0; iClass < MAX_CLASS; iClass++ ) > rgfClass[iClass] = FALSE; > for ( iRace = 0; iRace < MAX_RACE; iRace++ ) > rgfRace[iRace] = FALSE; > > #ifdef REQWHOARG > /* > * The who command must have at least one argument because we often > * have up to 500 players on. Too much spam if a player accidentally > * types "who" with no arguments. --Gorog > */ > if ( ch && argument[0] == '\0' ) > { > send_to_char_color( "\n\r&GYou must specify at least one argument.\n\r", ch ); > send_to_char_color( "Use 'who 1' to view the entire who list. Other arguments:\n\r", ch ); > send_to_char_color > ( " ... nc = new player advisors\n\r ... deadly = deadly players\n\r ... group = grouped players\n\r", ch ); > send_to_char_color( "\n\rFor additional arguments or help, type 'help who'.\n\r", ch ); > return; > } > #endif > > /* > * Parse arguments. > */ > nNumber = 0; > for ( ;; ) > { > char arg[MAX_STRING_LENGTH]; > > argument = one_argument( argument, arg ); > if ( arg[0] == '\0' ) > break; > > if ( is_number( arg ) ) > { > switch ( ++nNumber ) > { > case 1: > iLevelLower = atoi( arg ); > break; > case 2: > iLevelUpper = atoi( arg ); > break; > default: > send_to_char( "Only two level numbers allowed.\n\r", ch ); > return; > } > } > else > { > if ( strlen( arg ) < 2 ) > { > send_to_char( "Arguments must be longer than that.\n\r", ch ); > return; > } > > if ( !str_cmp( arg, "nc" ) || !str_cmp( arg, "newbie" ) || !str_cmp( arg, "advisor" ) ) > { > do_who( ch, "\'newbie council\'" ); > return; > } > > /* > * Look for classes to turn on. > */ > if ( !str_cmp( arg, "deadly" ) || !str_cmp( arg, "pkill" ) ) > fPkill = TRUE; > else if ( !str_cmp( arg, "imm" ) || !str_cmp( arg, "gods" ) ) > fImmortalOnly = TRUE; > else if ( !str_cmp( arg, "leader" ) ) > fLeader = TRUE; > else > /* > if ( !str_cmp( arg, "nc" ) || !str_cmp( arg, "advisor" ) || !str_cmp( arg, "newbie" ) ) > fShowAdvisor = TRUE; > else > */ > if ( !str_cmp( arg, "www" ) ) > fShowHomepage = TRUE; > else if ( !str_cmp( arg, "retired" ) ) > fRetired = TRUE; > else if ( !str_cmp( arg, "group" ) && ch ) > fGroup = TRUE; > else /* SB who clan (order), guild, council */ if ( ( pClan = get_clan( arg ) ) ) > fClanMatch = TRUE; > else if ( ( pCouncil = get_council( arg ) ) ) > fCouncilMatch = TRUE; > else if ( ( pDeity = get_deity( arg ) ) ) > fDeityMatch = TRUE; > else > { > for ( iClass = 0; iClass < MAX_CLASS; iClass++ ) > { > if ( !str_cmp( arg, class_table[iClass]->who_name ) ) > { > rgfClass[iClass] = TRUE; > break; > } > } > if ( iClass != MAX_CLASS ) > fClassRestrict = TRUE; > > for ( iRace = 0; iRace < MAX_RACE; iRace++ ) > { > if ( !str_cmp( arg, race_table[iRace]->race_name ) ) > { > rgfRace[iRace] = TRUE; > break; > } > } > if ( iRace != MAX_RACE ) > fRaceRestrict = TRUE; > > if ( iClass == MAX_CLASS && iRace == MAX_RACE > && fClanMatch == FALSE && fRetired == FALSE && fCouncilMatch == FALSE && fDeityMatch == FALSE ) > { > send_to_char( "That\'s not a class, race, order, guild," " council or deity.\n\r", ch ); > return; > } > } > } > } > > /* > * Now find matching chars. > */ > nMatch = 0; > buf[0] = '\0'; > if ( ch ) > set_pager_color( AT_GREEN, ch ); > else > { > if ( fShowHomepage ) > whoout = fopen( WEBWHO_FILE, "w" ); > else > whoout = fopen( WHO_FILE, "w" ); > if ( !whoout ) > { > bug( "do_who: cannot open who file!" ); > return; > } > } > > /* start from last to first to get it in the proper order */ > if ( fGroup ) > { > create_whogr( ch ); > whogr = first_whogr; > d = whogr->d; > } > else > { > whogr = NULL; > d = last_descriptor; > } > whogr_p = NULL; > for ( ; d; whogr_p = whogr, whogr = ( fGroup ? whogr->next : NULL ), > d = ( fGroup ? ( whogr ? whogr->d : NULL ) : d->prev ) ) > { > CHAR_DATA *wch; > char const *class; > > if ( ( d->connected != CON_PLAYING && d->connected != CON_EDITING ) > || !can_see( ch, d->character ) || d->original ) > continue; > wch = d->original ? d->original : d->character; > if ( wch->level < iLevelLower || wch->level > iLevelUpper || ( fPkill && !CAN_PKILL( wch ) ) > /* > || ( fShowAdvisor && wch->pcdata->council && !str_cmp( "Newbie Council", wch->pcdata->council->name ) ) > */ > || ( fRetired && !IS_RETIRED( wch ) ) || ( fImmortalOnly && wch->level < LEVEL_IMMORTAL ) || ( fClassRestrict && !rgfClass[wch->class] ) || ( fRaceRestrict && !rgfRace[wch->race] ) || ( fClanMatch && ( pClan != wch->pcdata->clan ) ) /* SB */ > || ( fCouncilMatch && ( pCouncil != wch->pcdata->council ) ) /* SB */ > || ( fDeityMatch && ( pDeity != wch->pcdata->deity ) ) ) > continue; > if ( fLeader && !( wch->pcdata->council && > ( ( wch->pcdata->council->head2 && > !str_cmp( wch->pcdata->council->head2, wch->name ) ) || > ( wch->pcdata->council->head && > !str_cmp( wch->pcdata->council->head, wch->name ) ) ) ) && > !( wch->pcdata->clan && ( ( wch->pcdata->clan->deity && > !str_cmp( wch->pcdata->clan->deity, wch->name ) ) > || ( wch->pcdata->clan->leader > && !str_cmp( wch->pcdata->clan->leader, wch->name ) ) > || ( wch->pcdata->clan->number1 > && !str_cmp( wch->pcdata->clan->number1, wch->name ) ) > || ( wch->pcdata->clan->number2 && !str_cmp( wch->pcdata->clan->number2, wch->name ) ) ) ) ) > continue; > > if ( fGroup && !wch->leader && > !IS_SET( wch->pcdata->flags, PCFLAG_GROUPWHO ) && ( !whogr_p || !whogr_p->indent ) ) > continue; > > nMatch++; > > if ( fShowHomepage && wch->pcdata->homepage && wch->pcdata->homepage[0] != '\0' ) > sprintf( char_name, "<A HREF=\"%s\">%s</A>", show_tilde( wch->pcdata->homepage ), wch->name ); > else > strcpy( char_name, wch->name ); > > sprintf( class_text, "%s%2d %s", NOT_AUTHED( wch ) ? "N" : " ", wch->level, class_table[wch->class]->who_name ); > class = class_text; > switch ( wch->level ) > { > default: > break; > case MAX_LEVEL - 0: > class = "Supreme Entity"; > break; > case MAX_LEVEL - 1: > class = "Infinite"; > break; > case MAX_LEVEL - 2: > class = "Eternal"; > break; > case MAX_LEVEL - 3: > class = "Ancient"; > break; > case MAX_LEVEL - 4: > class = "Exalted God"; > break; > case MAX_LEVEL - 5: > class = "Ascendant God"; > break; > case MAX_LEVEL - 6: > class = "Greater God"; > break; > case MAX_LEVEL - 7: > class = "God"; > break; > case MAX_LEVEL - 8: > class = "Lesser God"; > break; > case MAX_LEVEL - 9: > class = "Immortal"; > break; > case MAX_LEVEL - 10: > class = "Demi God"; > break; > case MAX_LEVEL - 11: > class = "Savior"; > break; > case MAX_LEVEL - 12: > class = "Creator"; > break; > case MAX_LEVEL - 13: > class = "Acolyte"; > break; > case MAX_LEVEL - 14: > class = "Neophyte"; > break; > case MAX_LEVEL - 15: > class = "Avatar"; > break; > } > > if ( !str_cmp( wch->name, sysdata.guild_overseer ) ) > extra_title = " [Overseer of Guilds]"; > else if ( !str_cmp( wch->name, sysdata.guild_advisor ) ) > extra_title = " [Advisor to Guilds]"; > else > extra_title = ""; > > if ( IS_GUEST( wch ) ) > class = "Guest"; > else if ( wch->pcdata->clan > && !str_cmp( wch->name, wch->pcdata->clan->leader ) && wch->pcdata->clan->leadrank[0] != '\0' ) > class = wch->pcdata->clan->leadrank; > else if ( wch->pcdata->clan > && !str_cmp( wch->name, wch->pcdata->clan->number1 ) && wch->pcdata->clan->onerank[0] != '\0' ) > class = wch->pcdata->clan->onerank; > else if ( wch->pcdata->clan > && !str_cmp( wch->name, wch->pcdata->clan->number2 ) && wch->pcdata->clan->tworank[0] != '\0' ) > class = wch->pcdata->clan->tworank; > else if ( wch->pcdata->rank && wch->pcdata->rank[0] != '\0' ) > class = wch->pcdata->rank; > else if ( IS_RETIRED( wch ) ) > class = "Retired"; > > if ( wch->pcdata->clan ) > { > CLAN_DATA *pclan = wch->pcdata->clan; > > if ( pclan->clan_type == CLAN_GUILD ) > strcpy( clan_name, " <" ); > else > strcpy( clan_name, " (" ); > > if ( pclan->clan_type == CLAN_ORDER ) > { > if ( !str_cmp( wch->name, pclan->deity ) ) > strcat( clan_name, "Deity, Order of " ); > else if ( !str_cmp( wch->name, pclan->leader ) ) > strcat( clan_name, "Leader, Order of " ); > else if ( !str_cmp( wch->name, pclan->number1 ) ) > strcat( clan_name, "Number One, Order of " ); > else if ( !str_cmp( wch->name, pclan->number2 ) ) > strcat( clan_name, "Number Two, Order of " ); > else > strcat( clan_name, "Order of " ); > } > else if ( pclan->clan_type == CLAN_GUILD ) > { > if ( !str_cmp( wch->name, pclan->leader ) ) > strcat( clan_name, "Leader, " ); > if ( !str_cmp( wch->name, pclan->number1 ) ) > strcat( clan_name, "First, " ); > if ( !str_cmp( wch->name, pclan->number2 ) ) > strcat( clan_name, "Second, " ); > } > else > { > if ( !str_cmp( wch->name, pclan->deity ) ) > strcat( clan_name, "Deity of " ); > else if ( !str_cmp( wch->name, pclan->leader ) ) > strcat( clan_name, "Leader of " ); > else if ( !str_cmp( wch->name, pclan->number1 ) ) > strcat( clan_name, "Number One " ); > else if ( !str_cmp( wch->name, pclan->number2 ) ) > strcat( clan_name, "Number Two " ); > } > strcat( clan_name, pclan->name ); > if ( pclan->clan_type == CLAN_GUILD ) > strcat( clan_name, ">" ); > else > strcat( clan_name, ")" ); > } > else > clan_name[0] = '\0'; > > if ( wch->pcdata->council ) > { > strcpy( council_name, " [" ); > if ( wch->pcdata->council->head2 == NULL ) > { > if ( !str_cmp( wch->name, wch->pcdata->council->head ) ) > strcat( council_name, "Head of " ); > } > else > { > if ( !str_cmp( wch->name, wch->pcdata->council->head ) > || !str_cmp( wch->name, wch->pcdata->council->head2 ) ) > strcat( council_name, "Co-Head of " ); > } > strcat( council_name, wch->pcdata->council_name ); > strcat( council_name, "]" ); > } > else > council_name[0] = '\0'; > > if ( xIS_SET( wch->act, PLR_WIZINVIS ) ) > sprintf( invis_str, "(%d) ", wch->pcdata->wizinvis ); > else > invis_str[0] = '\0'; > sprintf( buf, "%*s%-15s %s%s%s%s%s%s%s%s.%s%s%s\n\r", > ( fGroup ? whogr->indent : 0 ), "", > class, > invis_str, > ( wch->desc && wch->desc->connected ) ? "[WRITING] " : "", > xIS_SET( wch->act, PLR_AFK ) ? "[AFK] " : "", > xIS_SET( wch->act, PLR_ATTACKER ) ? "(ATTACKER) " : "", > xIS_SET( wch->act, PLR_KILLER ) ? "(KILLER) " : "", > xIS_SET( wch->act, PLR_THIEF ) ? "(THIEF) " : "", > char_name, wch->pcdata->title, extra_title, clan_name, council_name ); > > /* > * This is where the old code would display the found player to the ch. > * What we do instead is put the found data into a linked list > */ > > /* > * First make the structure. > */ > CREATE( cur_who, WHO_DATA, 1 ); > cur_who->text = str_dup( buf ); > if ( wch->level > 50 && IS_IMMORTAL( wch ) ) > cur_who->type = WT_IMM; > else if ( fGroup ) > if ( wch->leader || ( whogr_p && whogr_p->indent ) ) > cur_who->type = WT_GROUPED; > else > cur_who->type = WT_GROUPWHO; > else if ( CAN_PKILL( wch ) ) > cur_who->type = WT_DEADLY; > else > cur_who->type = WT_MORTAL; > > /* > * Then put it into the appropriate list. > */ > switch ( cur_who->type ) > { > case WT_MORTAL: > cur_who->next = first_mortal; > first_mortal = cur_who; > break; > case WT_DEADLY: > cur_who->next = first_deadly; > first_deadly = cur_who; > break; > case WT_GROUPED: > cur_who->next = first_grouped; > first_grouped = cur_who; > break; > case WT_GROUPWHO: > cur_who->next = first_groupwho; > first_groupwho = cur_who; > break; > case WT_IMM: > cur_who->next = first_imm; > first_imm = cur_who; > break; > } > > } > > > /* > * Ok, now we have three separate linked lists and what remains is to > * * display the information and clean up. > */ > /* > * Two extras now for grouped and groupwho (wanting group). -- Alty > */ > > for ( cur_who = first_mortal; cur_who; cur_who = next_who ) > { > if ( !ch ) > fprintf( whoout, cur_who->text ); > else > send_to_pager( cur_who->text, ch ); > next_who = cur_who->next; > DISPOSE( cur_who->text ); > DISPOSE( cur_who ); > } > > if ( first_deadly ) > { > if ( !ch ) > fprintf( whoout, > "\n\r-------------------------------[ DEADLY CHARACTERS ]-------------------------\n\r\n\r" ); > else > send_to_pager_color > ( "\n\r-------------------------------[ &GDEADLY CHARACTERS&g ]--------------------------\n\r\n\r", > ch ); > } > > for ( cur_who = first_deadly; cur_who; cur_who = next_who ) > { > if ( !ch ) > fprintf( whoout, cur_who->text ); > else > send_to_pager( cur_who->text, ch ); > next_who = cur_who->next; > DISPOSE( cur_who->text ); > DISPOSE( cur_who ); > } > > if ( first_grouped ) > { > /* if ( !ch ) > fprintf( whoout, "\n\r-----------------------------[ GROUPED CHARACTERS ]---------------------------\n\r\n\r" ); > else*/ > send_to_pager_color > ( "\n\r-----------------------------[ &GGROUPED CHARACTERS&g ]---------------------------\n\r\n\r", ch ); > } > for ( cur_who = first_grouped; cur_who; cur_who = next_who ) > { > /* if ( !ch ) > fprintf( whoout, cur_who->text ); > else*/ > send_to_pager( cur_who->text, ch ); > next_who = cur_who->next; > DISPOSE( cur_who->text ); > DISPOSE( cur_who ); > } > > if ( first_groupwho ) > { > if ( !ch ) > fprintf( whoout, > "\n\r-------------------------------[ WANTING GROUP ]------------------------------\n\r\n\r" ); > else > send_to_pager_color > ( "\n\r-------------------------------[&G WANTING GROUP&g ]------------------------------\n\r\n\r", > ch ); > } > for ( cur_who = first_groupwho; cur_who; cur_who = next_who ) > { > if ( !ch ) > fprintf( whoout, cur_who->text ); > else > send_to_pager( cur_who->text, ch ); > next_who = cur_who->next; > DISPOSE( cur_who->text ); > DISPOSE( cur_who ); > } 2417,2434c3545,3554 < if ( !whogr_t->l_follow ) < whogr_t->follower = whogr_t->l_follow = whogr; < else < { < whogr_t->l_follow->next = whogr; < whogr_t->l_follow = whogr; < } < whogr->next = NULL; < whogr->follower = whogr->l_follow = NULL; < whogr->d = d; < whogr->indent = 0; < ++wc; < } < } < /* < * Set up indentation levels < */ < indent_whogr( looker, first_whogr, 0 ); --- > if ( first_imm ) > { > if ( !ch ) > fprintf( whoout, > "\n\r-----------------------------------[ IMMORTALS ]-----------------------------\n\r\n\r" ); > else > send_to_pager_color > ( "\n\r-----------------------------------[&G IMMORTALS&g ]------------------------------\n\r\n\r", > ch ); > } 2436,2448c3556,3559 < /* < * And now to linear link them.. < */ < for ( whogr_t = NULL, whogr = first_whogr; whogr; ) < if ( whogr->l_follow ) < { < whogr->l_follow->next = whogr; < whogr->l_follow = NULL; < if ( whogr_t ) < whogr_t->next = whogr = whogr->follower; < else < first_whogr = whogr = whogr->follower; < } --- > for ( cur_who = first_imm; cur_who; cur_who = next_who ) > { > if ( !ch ) > fprintf( whoout, cur_who->text ); 2450,2453c3561,3576 < { < whogr_t = whogr; < whogr = whogr->next; < } --- > send_to_pager( cur_who->text, ch ); > next_who = cur_who->next; > DISPOSE( cur_who->text ); > DISPOSE( cur_who ); > } > > if ( !ch ) > { > fprintf( whoout, "%d player%s.\n\r", nMatch, nMatch == 1 ? "" : "s" ); > fclose( whoout ); > return; > } > > set_char_color( AT_YELLOW, ch ); > ch_printf( ch, "%d player%s.\n\r", nMatch, nMatch == 1 ? "" : "s" ); > return; 2456c3579,3580 < void do_who( CHAR_DATA * ch, char *argument ) --- > > void do_cwho( CHAR_DATA * ch, char *argument ) 2483a3608 > bool fRetired; 2516a3642 > fRetired = FALSE; 2532,2533c3658,3662 < send_to_pager_color < ( "\n\r&GYou must specify at least one argument.\n\rUse 'who 1' to view the entire who list.\n\r", ch ); --- > send_to_char_color( "\n\r&GYou must specify at least one argument.\n\r", ch ); > send_to_char_color( "Use 'who 1' to view the entire who list. Other arguments:\n\r", ch ); > send_to_char_color > ( " ... nc = new player advisors\n\r ... deadly = deadly players\n\r ... group = grouped players\n\r", ch ); > send_to_char_color( "\n\rFor additional arguments or help, type 'help who'.\n\r", ch ); 2567c3696 < if ( strlen( arg ) < 3 ) --- > if ( strlen( arg ) < 2 ) 2572c3701,3707 < --- > /* > if ( !str_cmp( arg, "nc" ) || !str_cmp( arg, "newbie" ) || !str_cmp( arg, "advisor" ) ) > { > do_who( ch, "\'newbie council\'" ); > return; > } > */ 2582c3717,3723 < else if ( !str_cmp( arg, "www" ) ) --- > else > /* > if ( !str_cmp( arg, "nc" ) || !str_cmp( arg, "advisor" ) || !str_cmp( arg, "newbie" ) ) > fShowAdvisor = TRUE; > else > */ > if ( !str_cmp( arg, "www" ) ) 2583a3725,3726 > else if ( !str_cmp( arg, "retired" ) ) > fRetired = TRUE; 2617c3760 < && fClanMatch == FALSE && fCouncilMatch == FALSE && fDeityMatch == FALSE ) --- > && fClanMatch == FALSE && fRetired == FALSE && fCouncilMatch == FALSE && fDeityMatch == FALSE ) 2669c3812,3816 < if ( wch->level < iLevelLower || wch->level > iLevelUpper || ( fPkill && !CAN_PKILL( wch ) ) || ( fImmortalOnly && wch->level < LEVEL_IMMORTAL ) || ( fClassRestrict && !rgfClass[wch->class] ) || ( fRaceRestrict && !rgfRace[wch->race] ) || ( fClanMatch && ( pClan != wch->pcdata->clan ) ) /* SB */ --- > if ( wch->level < iLevelLower || wch->level > iLevelUpper || ( fPkill && !CAN_PKILL( wch ) ) > /* > || ( fShowAdvisor && wch->pcdata->council && !str_cmp( "Newbie Council", wch->pcdata->council->name ) ) > */ > || ( fRetired && !IS_RETIRED( wch ) ) || ( fImmortalOnly && wch->level < LEVEL_IMMORTAL ) || ( fClassRestrict && !rgfClass[wch->class] ) || ( fRaceRestrict && !rgfRace[wch->race] ) || ( fClanMatch && ( pClan != wch->pcdata->clan ) ) /* SB */ 2755c3902 < extra_title = " [Overseer of Guilds]"; --- > extra_title = " &c[&WOverseer of Guilds&c]&G"; 2757c3904 < extra_title = " [Advisor to Guilds]"; --- > extra_title = " &c[&WAdvisor to Guilds&c]&G"; 2761,2763c3908 < if ( IS_RETIRED( wch ) ) < class = "Retired"; < else if ( IS_GUEST( wch ) ) --- > if ( IS_GUEST( wch ) ) 2775a3921,3922 > else if ( IS_RETIRED( wch ) ) > class = "Retired"; 2782c3929 < strcpy( clan_name, " <" ); --- > strcpy( clan_name, " &c<&W" ); 2784c3931 < strcpy( clan_name, " (" ); --- > strcpy( clan_name, " &c(&W" ); 2789c3936 < strcat( clan_name, "Deity, Order of " ); --- > strcat( clan_name, "Deity of " ); 2791c3938 < strcat( clan_name, "Leader, Order of " ); --- > strcat( clan_name, "Leader of " ); 2793c3940 < strcat( clan_name, "Number One, Order of " ); --- > strcat( clan_name, "Number One, " ); 2795c3942 < strcat( clan_name, "Number Two, Order of " ); --- > strcat( clan_name, "Number Two, " ); 2797c3944 < strcat( clan_name, "Order of " ); --- > strcat( clan_name, "" ); 2815c3962 < strcat( clan_name, "Number One " ); --- > strcat( clan_name, "Number One, " ); 2817c3964 < strcat( clan_name, "Number Two " ); --- > strcat( clan_name, "Number Two, " ); 2821c3968 < strcat( clan_name, ">" ); --- > strcat( clan_name, "&c>&G" ); 2823c3970 < strcat( clan_name, ")" ); --- > strcat( clan_name, "&c)&G" ); 2830c3977 < strcpy( council_name, " [" ); --- > strcpy( council_name, " &c[&W" ); 2843c3990 < strcat( council_name, "]" ); --- > strcat( council_name, "&c]&G" ); 2849c3996 < sprintf( invis_str, "(%d) ", wch->pcdata->wizinvis ); --- > sprintf( invis_str, "&g(&G%d&g)&G ", wch->pcdata->wizinvis ); 2852c3999 < sprintf( buf, "%*s%-15s %s%s%s%s%s%s%s%s.%s%s%s\n\r", --- > sprintf( buf, "&g%*s%-15s&G %s%s%s%s%s%s%s%s.%s%s%s\n\r", 2928c4075 < send_to_pager( cur_who->text, ch ); --- > send_to_pager_color( cur_who->text, ch ); 2940c4087,4088 < send_to_pager( "\n\r-------------------------------[ DEADLY CHARACTERS ]--------------------------\n\r\n\r", --- > send_to_pager_color > ( "\n\r&g-------------------------------[&G DEADLY CHARACTERS &g]--------------------------\n\r\n\r", 2949c4097 < send_to_pager( cur_who->text, ch ); --- > send_to_pager_color( cur_who->text, ch ); 2960,2961c4108,4109 < send_to_pager( "\n\r-----------------------------[ GROUPED CHARACTERS ]---------------------------\n\r\n\r", < ch ); --- > send_to_pager_color > ( "\n\r&g-----------------------------[ GROUPED CHARACTERS ]---------------------------\n\r\n\r", ch ); 2968c4116 < send_to_pager( cur_who->text, ch ); --- > send_to_pager_color( cur_who->text, ch ); 2980,2981c4128,4129 < send_to_pager( "\n\r-------------------------------[ WANTING GROUP ]------------------------------\n\r\n\r", < ch ); --- > send_to_pager_color > ( "\n\r&g-------------------------------[ WANTING GROUP ]------------------------------\n\r\n\r", ch ); 2988c4136 < send_to_pager( cur_who->text, ch ); --- > send_to_pager_color( cur_who->text, ch ); 3000c4148,4149 < send_to_pager( "\n\r-----------------------------------[ IMMORTALS ]------------------------------\n\r\n\r", --- > send_to_pager_color > ( "\n\r&g-----------------------------------[&G IMMORTALS&g ]------------------------------\n\r\n\r", 3009c4158 < send_to_pager( cur_who->text, ch ); --- > send_to_pager_color( cur_who->text, ch ); 3022c4171 < set_char_color( AT_YELLOW, ch ); --- > set_char_color( AT_NOTE, ch ); 3123,3124d4271 < < 3126a4274 > char buf[MAX_STRING_LENGTH]; 3130a4279 > bool PK_WHERE = FALSE; 3135,3136c4284,4285 < && ( victim = get_char_world( ch, arg ) ) && !IS_NPC( victim ) < && IS_SET( victim->pcdata->flags, PCFLAG_DND ) && get_trust( ch ) < get_trust( victim ) ) --- > && ( victim = get_char_world( ch, arg ) ) > && !IS_NPC( victim ) && IS_SET( victim->pcdata->flags, PCFLAG_DND ) && get_trust( ch ) < get_trust( victim ) ) 3138c4287 < act( AT_PLAIN, "You didn't find any $T.", ch, NULL, arg, TO_CHAR ); --- > pager_printf_color( ch, "&GYou didn't find any %s.\n\r", capitalize( argument ) ); 3142,3143c4291,4296 < set_pager_color( AT_PERSON, ch ); < if ( arg[0] == '\0' ) --- > if ( !str_cmp( arg, "pk" ) ) > PK_WHERE = TRUE; > > set_pager_color( AT_GREEN, ch ); > > if ( arg[0] == '\0' || PK_WHERE ) 3145c4298 < pager_printf( ch, "\n\rPlayers near you in %s:\n\r", ch->in_room->area->name ); --- > pager_printf_color( ch, "\n\r&G&gPlayers near you in %s:\n\r", ch->in_room->area->name ); 3148,3149c4301,4317 < if ( ( d->connected == CON_PLAYING || d->connected == CON_EDITING ) && ( victim = d->character ) != NULL && !IS_NPC( victim ) && victim->in_room && victim->in_room->area == ch->in_room->area && can_see( ch, victim ) && ( get_trust( ch ) >= get_trust( victim ) || !IS_SET( victim->pcdata->flags, PCFLAG_DND ) ) ) /* if victim has the DND flag ch must outrank them */ < --- > { > if ( ( d->connected == CON_PLAYING || d->connected == CON_EDITING ) > && ( victim = d->character ) != NULL > && !IS_NPC( victim ) > && victim->in_room > && ( ( victim->in_room->area == ch->in_room->area ) > && ( !xIS_SET( victim->in_room->room_flags, ROOM_HOUSE ) > || in_same_house( victim, ch ) ) ) > && can_see( ch, victim ) > && ( victim->in_room == ch->in_room > || IS_IMMORTAL( ch ) > || ( !IS_SET( ch->in_room->area->flags, AFLAG_NOWHERE ) > && !xIS_SET( victim->in_room->room_flags, ROOM_NOWHERE ) ) ) > && ( get_trust( ch ) >= get_trust( victim ) || !IS_SET( victim->pcdata->flags, PCFLAG_DND ) ) ) > /* > * if victim has the DND flag ch must outrank them > */ 3152,3160c4320,4336 < /* if ( CAN_PKILL( victim ) ) < set_pager_color( AT_PURPLE, ch ); < else < set_pager_color( AT_PERSON, ch ); < */ < pager_printf_color( ch, "&P%-13s ", victim->name ); < if ( IS_IMMORTAL( victim ) && victim->level > 50 ) < send_to_pager_color( "&P(&WImmortal&P)\t", ch ); < else if ( CAN_PKILL( victim ) && victim->pcdata->clan --- > if ( PK_WHERE && !IS_PKILL( victim ) ) > continue; > pager_printf_color( ch, "&g| &G%-13s&w ", victim->name ); > if ( IS_IMMORTAL( victim ) && victim->level > 50 && victim->level <= 65 ) > { > if ( imm_badge[MAX_LEVEL - victim->level] ) > { > sprintf( buf, "%-25.25s\t", imm_badge[MAX_LEVEL - victim->level] ); > send_to_pager_color( buf, ch ); > } > else > { > send_to_pager_color( "&W(Immortal)\t\t", ch ); > } > } > else if ( CAN_PKILL( victim ) > && victim->pcdata->clan 3162c4338,4342 < pager_printf_color( ch, "%-18s\t", victim->pcdata->clan->badge ); --- > { > int len = colorlen( victim->pcdata->clan->badge, 18 ); > > pager_printf_color( ch, "&G%-*.*s\t", len, len, victim->pcdata->clan->badge ); > } 3164c4344 < send_to_pager_color( "(&wUnclanned&P)\t", ch ); --- > send_to_pager_color( "&W(Unclanned)\t\t", ch ); 3167c4347 < pager_printf_color( ch, "&P%s\n\r", victim->in_room->name ); --- > pager_printf_color( ch, "&g| &w%s&w\n\r", victim->in_room->name ); 3168a4349 > } 3170c4351 < send_to_char( "None\n\r", ch ); --- > send_to_char_color( "&GNone\n\r", ch ); 3175a4357 > { 3178a4361,4364 > && ( ( !IS_SET( ch->in_room->area->flags, AFLAG_NOWHERE ) > && !xIS_SET( victim->in_room->room_flags, ROOM_NOWHERE ) ) > || IS_IMMORTAL( ch ) > || ch->in_room == victim->in_room ) 3182c4368,4369 < pager_printf( ch, "%-28s %s\n\r", PERS( victim, ch ), victim->in_room->name ); --- > pager_printf_color( ch, "&g| &G%s is currently at &w%s&w\n\r", > PERS( victim, ch ), victim->in_room->name ); 3184a4372 > } 3186c4374 < act( AT_PLAIN, "You didn't find any $T.", ch, NULL, arg, TO_CHAR ); --- > pager_printf_color( ch, "You didn't find any %s.\n\r", capitalize( argument ) ); 3188d4375 < 3192,3194d4378 < < < 3303a4488 > 3327,3329c4512,4522 < if ( !IS_IMMORTAL( ch ) < && ( skill_table[sn]->guild != CLASS_NONE < && ( !IS_GUILDED( ch ) || ( ch->pcdata->clan->class != skill_table[sn]->guild ) ) ) ) --- > /* Pkill only skill */ > if ( skill_table[sn]->guild != -1 && !IS_IMMORTAL( ch ) ) > { > if ( skill_table[sn]->guild == 99 && !IS_SET( ch->pcdata->flags, PCFLAG_DEADLY ) ) > continue; > else if ( skill_table[sn]->guild != 99 > && ( !IS_GUILDED( ch ) || ( ch->pcdata->clan->class != skill_table[sn]->guild ) ) ) > continue; > } > > if ( sysdata.magichell && ch->level > 35 && number_percent( ) < 30 ) 3356a4550 > char arg[MAX_INPUT_LENGTH]; 3382c4576,4577 < sn = skill_lookup( argument ); --- > argument = one_argument( argument, arg ); > sn = skill_lookup( arg ); 3425,3427d4619 < < if ( !IS_NPC(ch) && skill_table[sn]->guild != CLASS_NONE < && ch->pcdata->clan->class != skill_table[sn]->guild ) 3434c4626 < if ( !IS_NPC( ch ) && skill_table[sn]->guild != CLASS_NONE ) --- > if ( !IS_NPC( ch ) && skill_table[sn]->guild != CLASS_NONE && skill_table[sn]->guild != 99 ) 3439a4632,4636 > if ( !IS_NPC( ch ) && skill_table[sn]->guild == 99 && !IS_PKILL( ch ) ) > { > act( AT_TELL, "$n tells you 'Only deadlies may use that skill ...'", mob, NULL, ch, TO_VICT ); > return; > } 3522c4719,4722 < char *pArg; --- > > /* > * char *pArg; > */ 3525c4725,4728 < char cEnd; --- > > /* > * char cEnd; > */ 3529a4733 > #if 0 3570a4775,4778 > #endif > > argument = case_argument( argument, arg1 ); > argument = case_argument( argument, arg2 ); 3718,3724c4926,4932 < ch_printf_color( ch, "%s", !IS_SET( ch->deaf, CHANNEL_RACETALK ) ? " &G+RACETALK" : " &g-racetalk" ); < ch_printf_color( ch, "%s", !IS_SET( ch->deaf, CHANNEL_CHAT ) ? " &G+CHAT" : " &g-chat" ); < if ( get_trust( ch ) > 2 && !NOT_AUTHED( ch ) ) < ch_printf_color( ch, "%s", !IS_SET( ch->deaf, CHANNEL_AUCTION ) ? " &G+AUCTION" : " &g-auction" ); < ch_printf_color( ch, "%s", !IS_SET( ch->deaf, CHANNEL_TRAFFIC ) ? " &G+TRAFFIC" : " &g-traffic" ); < ch_printf_color( ch, "%s", !IS_SET( ch->deaf, CHANNEL_QUEST ) ? " &G+QUEST" : " &g-quest" ); < ch_printf_color( ch, "%s", !IS_SET( ch->deaf, CHANNEL_WARTALK ) ? " &G+WARTALK" : " &g-wartalk" ); --- > ch_printf_color( ch, "%s", !xIS_SET( ch->deaf, CHANNEL_RACETALK ) ? " &G+RACETALK" : " &g-racetalk" ); > ch_printf_color( ch, "%s", !xIS_SET( ch->deaf, CHANNEL_CHAT ) ? " &G+CHAT" : " &g-chat" ); > if ( get_trust( ch ) > 4 && !NOT_AUTHED( ch ) ) > ch_printf_color( ch, "%s", !xIS_SET( ch->deaf, CHANNEL_AUCTION ) ? " &G+AUCTION" : " &g-auction" ); > ch_printf_color( ch, "%s", !xIS_SET( ch->deaf, CHANNEL_TRAFFIC ) ? " &G+TRAFFIC" : " &g-traffic" ); > ch_printf_color( ch, "%s", !xIS_SET( ch->deaf, CHANNEL_QUEST ) ? " &G+QUEST" : " &g-quest" ); > ch_printf_color( ch, "%s", !xIS_SET( ch->deaf, CHANNEL_WARTALK ) ? " &G+WARTALK" : " &g-wartalk" ); 3726,3730c4934,4937 < ch_printf_color( ch, "%s", !IS_SET( ch->deaf, CHANNEL_AVTALK ) ? " &G+AVATAR" : " &g-avatar" ); < ch_printf_color( ch, "%s", !IS_SET( ch->deaf, CHANNEL_MUSIC ) ? " &G+MUSIC" : " &g-music" ); < ch_printf_color( ch, "%s", !IS_SET( ch->deaf, CHANNEL_ASK ) ? " &G+ASK" : " &g-ask" ); < ch_printf_color( ch, "%s", !IS_SET( ch->deaf, CHANNEL_SHOUT ) ? " &G+SHOUT" : " &g-shout" ); < ch_printf_color( ch, "%s", !IS_SET( ch->deaf, CHANNEL_YELL ) ? " &G+YELL" : " &g-yell" ); --- > ch_printf_color( ch, "%s", !xIS_SET( ch->deaf, CHANNEL_AVTALK ) ? " &G+AVATAR" : " &g-avatar" ); > ch_printf_color( ch, "%s", !xIS_SET( ch->deaf, CHANNEL_MUSIC ) ? " &G+MUSIC" : " &g-music" ); > ch_printf_color( ch, "%s", !xIS_SET( ch->deaf, CHANNEL_ASK ) ? " &G+ASK" : " &g-ask" ); > ch_printf_color( ch, "%s", !xIS_SET( ch->deaf, CHANNEL_YELL ) ? " &G+YELL" : " &g-yell" ); 3736,3737c4943,4944 < ch_printf_color( ch, "%s", !IS_SET( ch->deaf, CHANNEL_TELLS ) ? " &G+TELLS" : " &g-tells" ); < ch_printf_color( ch, "%s", !IS_SET( ch->deaf, CHANNEL_WHISPER ) ? " &G+WHISPER" : " &g-whisper" ); --- > ch_printf_color( ch, "%s", !xIS_SET( ch->deaf, CHANNEL_TELLS ) ? " &G+TELLS" : " &g-tells" ); > ch_printf_color( ch, "%s", !xIS_SET( ch->deaf, CHANNEL_WHISPER ) ? " &G+WHISPER" : " &g-whisper" ); 3741c4948 < send_to_char_color( !IS_SET( ch->deaf, CHANNEL_ORDER ) ? " &G+ORDER" : " &g-order", ch ); --- > send_to_char_color( !xIS_SET( ch->deaf, CHANNEL_ORDER ) ? " &G+ORDER" : " &g-order", ch ); 3744c4951 < send_to_char_color( !IS_SET( ch->deaf, CHANNEL_GUILD ) ? " &G+GUILD" : " &g-guild", ch ); --- > send_to_char_color( !xIS_SET( ch->deaf, CHANNEL_GUILD ) ? " &G+GUILD" : " &g-guild", ch ); 3746c4953 < send_to_char_color( !IS_SET( ch->deaf, CHANNEL_CLAN ) ? " &G+CLAN" : " &g-clan", ch ); --- > send_to_char_color( !xIS_SET( ch->deaf, CHANNEL_CLAN ) ? " &G+CLAN" : " &g-clan", ch ); 3749c4956 < ch_printf_color( ch, "%s", !IS_SET( ch->deaf, CHANNEL_NEWBIE ) ? " &G+NEWBIE" : " &g-newbie" ); --- > ch_printf_color( ch, "%s", !xIS_SET( ch->deaf, CHANNEL_NEWBIE ) ? " &G+NEWBIE" : " &g-newbie" ); 3751c4958,4960 < ch_printf_color( ch, "%s", !IS_SET( ch->deaf, CHANNEL_COUNCIL ) ? " &G+COUNCIL" : " &g-council" ); --- > ch_printf_color( ch, "%s", !xIS_SET( ch->deaf, CHANNEL_COUNCIL ) ? " &G+COUNCIL" : " &g-council" ); > if ( !IS_NPC( ch ) && IS_SET( ch->pcdata->flags, PCFLAG_RETIRED ) ) > ch_printf_color( ch, "%s", !xIS_SET( ch->deaf, CHANNEL_RETIRED ) ? " &G+RETIRED" : " &g-retired" ); 3759,3760c4968,4969 < send_to_char_color( !IS_SET( ch->deaf, CHANNEL_IMMTALK ) ? " &G+IMMTALK" : " &g-immtalk", ch ); < /* send_to_char_color( !IS_SET( ch->deaf, CHANNEL_PRAY ) ? --- > send_to_char_color( !xIS_SET( ch->deaf, CHANNEL_IMMTALK ) ? " &G+IMMTALK" : " &g-immtalk", ch ); > /* send_to_char_color( !xIS_SET( ch->deaf, CHANNEL_PRAY ) ? 3763,3765c4972,4976 < send_to_char_color( !IS_SET( ch->deaf, CHANNEL_HIGHGOD ) ? " &G+MUSE" : " &g-muse", ch ); < send_to_char_color( !IS_SET( ch->deaf, CHANNEL_MONITOR ) ? " &G+MONITOR" : " &g-monitor", ch ); < send_to_char_color( !IS_SET( ch->deaf, CHANNEL_AUTH ) ? " &G+AUTH" : " &g-auth", ch ); --- > send_to_char_color( !xIS_SET( ch->deaf, CHANNEL_HIGHGOD ) ? " &G+MUSE" : " &g-muse", ch ); > send_to_char_color( !xIS_SET( ch->deaf, CHANNEL_MONITOR ) ? " &G+MONITOR" : " &g-monitor", ch ); > send_to_char_color( !xIS_SET( ch->deaf, CHANNEL_DEATH ) ? " &G+DEATH" : " &g-death", ch ); > send_to_char_color( !xIS_SET( ch->deaf, CHANNEL_AUTH ) ? " &G+AUTH" : " &g-auth", ch ); > send_to_char_color( !xIS_SET( ch->deaf, CHANNEL_RETIRED ) ? " &G+RETIRED" : " &g-retired", ch ); 3769,3772c4980,4987 < send_to_char_color( !IS_SET( ch->deaf, CHANNEL_LOG ) ? " &G+LOG" : " &g-log", ch ); < send_to_char_color( !IS_SET( ch->deaf, CHANNEL_BUILD ) ? " &G+BUILD" : " &g-build", ch ); < send_to_char_color( !IS_SET( ch->deaf, CHANNEL_COMM ) ? " &G+COMM" : " &g-comm", ch ); < send_to_char_color( !IS_SET( ch->deaf, CHANNEL_WARN ) ? " &G+WARN" : " &g-warn", ch ); --- > send_to_char_color( !xIS_SET( ch->deaf, CHANNEL_LOG ) ? " &G+LOG" : " &g-log", ch ); > send_to_char_color( !xIS_SET( ch->deaf, CHANNEL_BUILD ) ? " &G+BUILD" : " &g-build", ch ); > send_to_char_color( !xIS_SET( ch->deaf, CHANNEL_COMM ) ? " &G+COMM" : " &g-comm", ch ); > send_to_char_color( !xIS_SET( ch->deaf, CHANNEL_WARN ) ? " &G+WARN" : " &g-warn", ch ); > /* > send_to_char_color( !xIS_SET(ch->deaf, CHANNEL_BUG) ? > " &G+BUG" : " &g-bug", ch); > */ 3774c4989,4991 < send_to_char_color( !IS_SET( ch->deaf, CHANNEL_HIGH ) ? " &G+HIGH" : " &g-high", ch ); --- > send_to_char_color( !xIS_SET( ch->deaf, CHANNEL_HIGH ) ? " &G+HIGH" : " &g-high", ch ); > if ( get_trust( ch ) >= 57 ) > send_to_char_color( !xIS_SET( ch->deaf, CHANNEL_BUG ) ? " &G+BUG" : " &g-bug", ch ); 3826a5044,5045 > else if ( !str_cmp( arg + 1, "death" ) ) > bit = CHANNEL_DEATH; 3837,3838d5055 < else if ( !str_cmp( arg + 1, "shout" ) ) < bit = CHANNEL_SHOUT; 3844a5062,5063 > else if ( !str_cmp( arg + 1, "bug" ) ) > bit = CHANNEL_BUG; 3852a5072,5073 > else if ( !str_cmp( arg + 1, "retired" ) ) > bit = CHANNEL_RETIRED; 3863,3873c5084,5093 < REMOVE_BIT( ch->deaf, CHANNEL_RACETALK ); < REMOVE_BIT( ch->deaf, CHANNEL_AUCTION ); < REMOVE_BIT( ch->deaf, CHANNEL_CHAT ); < REMOVE_BIT( ch->deaf, CHANNEL_QUEST ); < REMOVE_BIT( ch->deaf, CHANNEL_WARTALK ); < REMOVE_BIT( ch->deaf, CHANNEL_PRAY ); < REMOVE_BIT( ch->deaf, CHANNEL_TRAFFIC ); < REMOVE_BIT( ch->deaf, CHANNEL_MUSIC ); < REMOVE_BIT( ch->deaf, CHANNEL_ASK ); < REMOVE_BIT( ch->deaf, CHANNEL_SHOUT ); < REMOVE_BIT( ch->deaf, CHANNEL_YELL ); --- > xREMOVE_BIT( ch->deaf, CHANNEL_RACETALK ); > xREMOVE_BIT( ch->deaf, CHANNEL_AUCTION ); > xREMOVE_BIT( ch->deaf, CHANNEL_CHAT ); > xREMOVE_BIT( ch->deaf, CHANNEL_QUEST ); > xREMOVE_BIT( ch->deaf, CHANNEL_WARTALK ); > xREMOVE_BIT( ch->deaf, CHANNEL_PRAY ); > xREMOVE_BIT( ch->deaf, CHANNEL_TRAFFIC ); > xREMOVE_BIT( ch->deaf, CHANNEL_MUSIC ); > xREMOVE_BIT( ch->deaf, CHANNEL_ASK ); > xREMOVE_BIT( ch->deaf, CHANNEL_YELL ); 3877c5097 < * REMOVE_BIT (ch->deaf, CHANNEL_CLAN); --- > * xREMOVE_BIT (ch->deaf, CHANNEL_CLAN); 3880c5100 < * REMOVE_BIT (ch->deaf, CHANNEL_COUNCIL); --- > * xREMOVE_BIT (ch->deaf, CHANNEL_COUNCIL); 3883c5103 < * REMOVE_BIT (ch->deaf, CHANNEL_GUILD); --- > * xREMOVE_BIT (ch->deaf, CHANNEL_GUILD); 3886c5106 < REMOVE_BIT( ch->deaf, CHANNEL_AVTALK ); --- > xREMOVE_BIT( ch->deaf, CHANNEL_AVTALK ); 3890c5110 < * REMOVE_BIT (ch->deaf, CHANNEL_COMM); --- > * xREMOVE_BIT (ch->deaf, CHANNEL_COMM); 3896,3906c5116,5125 < SET_BIT( ch->deaf, CHANNEL_RACETALK ); < SET_BIT( ch->deaf, CHANNEL_AUCTION ); < SET_BIT( ch->deaf, CHANNEL_TRAFFIC ); < SET_BIT( ch->deaf, CHANNEL_CHAT ); < SET_BIT( ch->deaf, CHANNEL_QUEST ); < SET_BIT( ch->deaf, CHANNEL_PRAY ); < SET_BIT( ch->deaf, CHANNEL_MUSIC ); < SET_BIT( ch->deaf, CHANNEL_ASK ); < SET_BIT( ch->deaf, CHANNEL_SHOUT ); < SET_BIT( ch->deaf, CHANNEL_WARTALK ); < SET_BIT( ch->deaf, CHANNEL_YELL ); --- > xSET_BIT( ch->deaf, CHANNEL_RACETALK ); > xSET_BIT( ch->deaf, CHANNEL_AUCTION ); > xSET_BIT( ch->deaf, CHANNEL_TRAFFIC ); > xSET_BIT( ch->deaf, CHANNEL_CHAT ); > xSET_BIT( ch->deaf, CHANNEL_QUEST ); > xSET_BIT( ch->deaf, CHANNEL_PRAY ); > xSET_BIT( ch->deaf, CHANNEL_MUSIC ); > xSET_BIT( ch->deaf, CHANNEL_ASK ); > xSET_BIT( ch->deaf, CHANNEL_WARTALK ); > xSET_BIT( ch->deaf, CHANNEL_YELL ); 3910c5129 < * SET_BIT (ch->deaf, CHANNEL_CLAN); --- > * xSET_BIT (ch->deaf, CHANNEL_CLAN); 3913c5132 < * SET_BIT (ch->deaf, CHANNEL_COUNCIL); --- > * xSET_BIT (ch->deaf, CHANNEL_COUNCIL); 3916c5135 < * SET_BIT (ch->deaf, CHANNEL_GUILD); --- > * xSET_BIT (ch->deaf, CHANNEL_GUILD); 3919c5138 < SET_BIT( ch->deaf, CHANNEL_AVTALK ); --- > xSET_BIT( ch->deaf, CHANNEL_AVTALK ); 3923c5142 < * SET_BIT (ch->deaf, CHANNEL_COMM); --- > * xSET_BIT (ch->deaf, CHANNEL_COMM); 3929c5148 < REMOVE_BIT( ch->deaf, bit ); --- > xREMOVE_BIT( ch->deaf, bit ); 3933c5152 < SET_BIT( ch->deaf, bit ); --- > xSET_BIT( ch->deaf, bit ); 3943a5163,5171 > * display RETRIEDLIST file -Shaddai > */ > void do_retiredlist( CHAR_DATA * ch, char *argument ) > { > set_pager_color( AT_IMMORT, ch ); > show_file( ch, RETIREDLIST_FILE ); > } > > /* 3976c5204 < ch_printf( ch, "%-12s %-12s %-12s %-12s\n\r %-12s %-12s %-12s %-12s", --- > ch_printf( ch, "%-12s %-12s %-12s %-12s\n\r %-12s %-12s %-12s %-12s\n\r %-12s", 3990c5218,5220 < : "[-] ansi", xIS_SET( ch->act, PLR_RIP ) ? "[+] RIP" : "[-] rip" ); --- > : "[-] ansi", > xIS_SET( ch->act, PLR_RIP ) ? "[+] RIP" > : "[-] rip", xIS_SET( ch->act, PLR_COMPASS ) ? "[+] COMPASS" : "[-] compass" ); 4012a5243,5244 > else > ch_printf( ch, " %-12s", IS_SET( ch->pcdata->flags, PCFLAG_NOEXP ) ? "[+] NOEXP" : "[-] noexp" ); 4017c5249 < ch_printf( ch, "%-12s %-12s %-12s", --- > ch_printf( ch, "%-12s %-12s %-12s %-12s", 4021c5253,5255 < : "[-] groupwho", IS_SET( ch->pcdata->flags, PCFLAG_NOINTRO ) ? "[+] NOINTRO" : "[-] nointro" ); --- > : "[-] groupwho", > IS_SET( ch->pcdata->flags, PCFLAG_NOINTRO ) ? "[+] NOINTRO" > : "[-] nointro", IS_SET( ch->pcdata->flags, PCFLAG_BECKON ) ? "[+] BECKON" : "[-] beckon" ); 4026c5260,5261 < ch_printf_color( ch, "Pager Length (%d) Wimpy (&W%d&w)", ch->pcdata->pagerlen, ch->wimpy ); --- > ch_printf_color( ch, "Pager Length (%d) Wimpy (&W%d&w) Hints (%s)", > ch->pcdata->pagerlen, ch->wimpy, IS_SET( ch->pcdata->flags, PCFLAG_HINTS ) ? "ON" : "off" ); 4040c5275 < ch_printf( ch, "\n\r%s%s%s%s%s%s", --- > ch_printf( ch, "\n\r%s%s%s%s%s%s%s%s", 4051c5286,5290 < xIS_SET( ch->act, PLR_KILLER ) ? " For the crime of murder you are sentenced to death...\n\r" : "" ); --- > xIS_SET( ch->act, PLR_KILLER ) ? > " For the crime of murder you are sentenced to death...\n\r" : "", > xIS_SET( ch->act, PLR_NOHOMEPAGE ) ? > " You are not permitted to set your homepage.\n\r" : "", > IS_SET( ch->pcdata->flags, PCFLAG_NODESC ) ? " You are not permitted to set your description.\n\r" : "" ); 4087a5327,5328 > else if ( !str_prefix( arg + 1, "compass" ) ) > bit = PLR_COMPASS; 4102,4103c5343,5344 < if ( ( bit == PLR_FLEE || bit == PLR_NICE || bit == PLR_SHOVEDRAG ) < && IS_SET( ch->pcdata->flags, PCFLAG_DEADLY ) ) --- > if ( ( bit == PLR_FLEE > || bit == PLR_NICE || bit == PLR_SHOVEDRAG ) && IS_SET( ch->pcdata->flags, PCFLAG_DEADLY ) ) 4121a5363,5364 > else if ( !str_prefix( arg + 1, "beckon" ) ) > bit = PCFLAG_BECKON; 4129a5373,5376 > else if ( !str_prefix( arg + 1, "noexp" ) ) > bit = PCFLAG_NOEXP; > else if ( !str_prefix( arg + 1, "hints" ) ) > bit = PCFLAG_HINTS; 4136a5384,5390 > if ( bit ) > { > if ( ( bit == PCFLAG_NOSUMMON ) && IS_SET( ch->pcdata->flags, PCFLAG_DEADLY ) ) > { > send_to_char( "Pkill characters can not config that option.\n\r", ch ); > return; > } 4138,4141c5392,5395 < if ( fSet ) < SET_BIT( ch->pcdata->flags, bit ); < else < REMOVE_BIT( ch->pcdata->flags, bit ); --- > if ( fSet ) > SET_BIT( ch->pcdata->flags, bit ); > else > REMOVE_BIT( ch->pcdata->flags, bit ); 4143,4144c5397,5399 < send_to_char( "Ok.\n\r", ch ); < return; --- > send_to_char( "Ok.\n\r", ch ); > return; > } 4219,4222c5474,5477 < char *header_string1 = "\n\r Author | Area" < " | " "Recommended | Enforced\n\r"; < char *header_string2 = "-------------+-----------------" "---------------------+----" "---------+-----------\n\r"; < char *print_string = "%-12s | %-36s | %4d - %-4d | %3d - " "%-3d \n\r"; --- > char *header_string1 = "\n\r &c&GAuthor &Y|&G Area" > " &Y| " "&GRecommended &Y|\n\r"; > char *header_string2 = "-------------------+------------------" "---------------------+----" "---------+&w&G\n\r"; > char *print_string = "&c&G%-18.18s &Y| &z%-37s &Y|&W %4d - %-4d &Y|\n\r"; 4231a5487 > char *org = argument; 4242,4243c5498,5499 < send_to_pager( header_string1, ch ); < send_to_pager( header_string2, ch ); --- > send_to_pager_color( header_string1, ch ); > send_to_pager_color( header_string2, ch ); 4246,4248c5502,5505 < pager_printf( ch, print_string, < pArea->author, pArea->name, < pArea->low_soft_range, pArea->hi_soft_range, pArea->low_hard_range, pArea->hi_hard_range ); --- > if ( IS_SET( pArea->flags, AFLAG_HIDDEN ) ) > continue; /* Blod, 2000 */ > pager_printf_color( ch, print_string, > pArea->author, pArea->name, pArea->low_soft_range, pArea->hi_soft_range ); 4254,4255c5511,5523 < send_to_char( "Area may only be followed by numbers, or 'old'.\n\r", ch ); < return; --- > for ( pArea = first_area_name; pArea; pArea = pArea->next_sort_name ) > { > if ( !str_cmp( pArea->name, org ) ) > { > pager_printf_color( ch, "&CArea: &Y%s\n\r", pArea->name ); > pager_printf_color( ch, "&CAuthor: &Y%s\n\r", pArea->author ); > pager_printf_color( ch, "&CCredits: &Y%s\n\r", pArea->credits ); > pager_printf_color( ch, "&CLevel Range: &Y%d - %d\n\r\n\r", pArea->low_soft_range, > pArea->hi_soft_range ); > do_help( ch, pArea->name ); > return; > } > } 4256a5525,5527 > > send_to_char( "Area may only be followed by numbers, 'old', or an area name.\n\r", ch ); > return; 4292,4293c5563,5564 < send_to_pager( header_string1, ch ); < send_to_pager( header_string2, ch ); --- > send_to_pager_color( header_string1, ch ); > send_to_pager_color( header_string2, ch ); 4299,4301c5570,5573 < pager_printf( ch, print_string, < pArea->author, pArea->name, < pArea->low_soft_range, pArea->hi_soft_range, pArea->low_hard_range, pArea->hi_hard_range ); --- > if ( IS_SET( pArea->flags, AFLAG_HIDDEN ) ) > continue; /* Blod, 2000 */ > pager_printf_color( ch, print_string, > pArea->author, pArea->name, pArea->low_soft_range, pArea->hi_soft_range ); 4348c5620 < hilev = 50; --- > hilev = LEVEL_AVATAR; 4383a5656,5664 > if ( skill_table[sn]->guild != -1 && !IS_IMMORTAL( ch ) ) > { > if ( skill_table[sn]->guild == 99 && !IS_SET( ch->pcdata->flags, PCFLAG_DEADLY ) ) > continue; > else if ( skill_table[sn]->guild != 99 > && ( !IS_GUILDED( ch ) || ( ch->pcdata->clan->class != skill_table[sn]->guild ) ) ) > continue; > } > 4386a5668,5670 > if ( sysdata.magichell && ch->level > 35 && number_percent( ) < 30 ) > continue; > 4450a5735 > CLAN_DATA *pclan; 4458a5744,5745 > set_pager_color( AT_GREEN, ch ); > 4490c5777 < pager_printf( ch, " %s is a %sdeadly player", --- > pager_printf_color( ch, " %s is a %sdeadly player", 4494c5781 < if ( victim->pcdata->clan ) --- > if ( ( pclan = victim->pcdata->clan ) != NULL ) 4496,4502c5783,5821 < if ( victim->pcdata->clan->clan_type == CLAN_ORDER ) < send_to_pager( ", and belongs to the Order ", ch ); < else if ( victim->pcdata->clan->clan_type == CLAN_GUILD ) < send_to_pager( ", and belongs to the ", ch ); < else < send_to_pager( ", and belongs to Clan ", ch ); < send_to_pager( victim->pcdata->clan->name, ch ); --- > switch ( pclan->clan_type ) > { > default: > if ( !str_cmp( victim->name, pclan->deity ) ) > send_to_pager( ", and is Deity of ", ch ); > else if ( !str_cmp( victim->name, pclan->leader ) ) > send_to_pager( ", and is Leader of ", ch ); > else if ( !str_cmp( victim->name, pclan->number1 ) ) > send_to_pager( ", and is Number One of ", ch ); > else if ( !str_cmp( victim->name, pclan->number2 ) ) > send_to_pager( ", and is Number Two of ", ch ); > else > send_to_pager( ", and belongs to Clan ", ch ); > break; > case CLAN_ORDER: > if ( !str_cmp( victim->name, pclan->deity ) ) > send_to_pager( ", and is Deity of the Order of ", ch ); > else if ( !str_cmp( victim->name, pclan->leader ) ) > send_to_pager( ", and is Leader of the Order of ", ch ); > else if ( !str_cmp( victim->name, pclan->number1 ) ) > send_to_pager( ", and is Number One of the Order of ", ch ); > else if ( !str_cmp( victim->name, pclan->number2 ) ) > send_to_pager( ", and is Number Two of the Order of ", ch ); > else > send_to_pager( ", and belongs to the Order of ", ch ); > break; > case CLAN_GUILD: > if ( !str_cmp( victim->name, pclan->leader ) ) > pager_printf( ch, ", and is the %s of the ", > victim->sex == SEX_FEMALE ? "Guildmistress" : "Guildmaster" ); > else if ( !str_cmp( victim->name, pclan->number1 ) ) > send_to_pager( ", and is First of the ", ch ); > else if ( !str_cmp( victim->name, pclan->number2 ) ) > send_to_pager( ", and is Second of the ", ch ); > else > send_to_pager( ", and belongs to the ", ch ); > break; > } > send_to_pager( pclan->name, ch ); 4507,4508c5826,5851 < pager_printf( ch, " %s holds a seat on: %s\n\r", < victim->sex == SEX_MALE ? "He" : victim->sex == SEX_FEMALE ? "She" : "It", victim->pcdata->council->name ); --- > { > if ( !str_cmp( victim->name, victim->pcdata->council->head ) ) > pager_printf( ch, " %s is the %s of: %s\n\r", > victim->sex == SEX_MALE ? "He" : > victim->sex == SEX_FEMALE ? "She" : "It", > victim->pcdata->council->head2 == NULL ? "Head" : "Co-Head", victim->pcdata->council->name ); > else if ( victim->pcdata->council->head2 && !str_cmp( victim->name, victim->pcdata->council->head2 ) ) > pager_printf( ch, " %s is the Co-Head of: %s\n\r", > victim->sex == SEX_MALE ? "He" : > victim->sex == SEX_FEMALE ? "She" : "It", victim->pcdata->council->name ); > else > pager_printf( ch, " %s holds a seat on: %s\n\r", > victim->sex == SEX_MALE ? "He" : > victim->sex == SEX_FEMALE ? "She" : "It", victim->pcdata->council->name ); > } > > > pager_printf( ch, " %s has accumulated %d glory in %s lifetime.\n\r", > victim->name, > victim->pcdata->quest_accum, victim->sex == SEX_MALE ? "his" : victim->sex == SEX_FEMALE ? "her" : "its" ); > > if ( victim->level >= 50 ) > pager_printf( ch, " %s has %d honour and %s holds the rank of: %s\n\r", > victim->name, > victim->pcdata->honour, > victim->sex == SEX_MALE ? "he" : victim->sex == SEX_FEMALE ? "she" : "it", get_honour( victim ) ); 4518a5862,5871 > if ( victim->pcdata->email && victim->pcdata->email[0] != '\0' ) > pager_printf( ch, " %s email is: %s\n\r", > victim->sex == SEX_MALE ? "His" : > victim->sex == SEX_FEMALE ? "Her" : "Its", show_tilde( victim->pcdata->email ) ); > > if ( victim->pcdata->icq && victim->pcdata->icq[0] != '\0' ) > pager_printf( ch, " %s icq is %s\n\r", > victim->sex == SEX_MALE ? "His" : > victim->sex == SEX_FEMALE ? "Her" : "Its", show_tilde( victim->pcdata->icq ) ); > 4529,4530c5882,5887 < if ( victim->pcdata->authed_by && victim->pcdata->authed_by[0] != '\0' ) < pager_printf( ch, "%s was authorized by %s.\n\r", victim->name, victim->pcdata->authed_by ); --- > if ( get_trust( ch ) > LEVEL_GOD ) > { > if ( victim->pcdata->authed_by && victim->pcdata->authed_by[0] != '\0' ) > pager_printf( ch, "%s was authorized by %s.\n\r", victim->name, victim->pcdata->authed_by ); > } > 4564c5921,5927 < || xIS_SET( victim->act, PLR_KILLER ) ) --- > || xIS_SET( victim->act, PLR_KILLER ) || IS_SET( victim->pcdata->flags, PCFLAG_NOBECKON ) > || IS_SET( victim->pcdata->flags, PCFLAG_NODESC ) > || IS_SET( victim->pcdata->flags, PCFLAG_NOBIO ) > || IS_SET( victim->pcdata->flags, PCFLAG_NOTITLE ) > || IS_SET( victim->pcdata->flags, PCFLAG_NOHTTP ) > || xIS_SET( victim->act, PLR_NOHOMEPAGE ) > || xIS_SET( victim->act, PLR_LITTERBUG ) || xIS_SET( victim->act, PLR_FREEZE ) ) 4566c5929 < sprintf( buf2, "This player has the following flags set:" ); --- > sprintf( buf2, ">his character has the following sanctions: &Y" ); 4568a5932,5933 > if ( xIS_SET( victim->act, PLR_FREEZE ) ) > strcat( buf2, " frozen" ); 4576a5942,5955 > if ( xIS_SET( victim->act, PLR_LITTERBUG ) ) > strcat( buf2, " litterbug" ); > if ( IS_SET( victim->pcdata->flags, PCFLAG_NOBIO ) ) > strcat( buf2, " nobio" ); > if ( IS_SET( victim->pcdata->flags, PCFLAG_NODESC ) ) > strcat( buf2, " nodesc" ); > if ( IS_SET( victim->pcdata->flags, PCFLAG_NOBECKON ) ) > strcat( buf2, " nobeckon" ); > if ( xIS_SET( victim->act, PLR_NOHOMEPAGE ) ) > strcat( buf2, " nohomepage" ); > if ( IS_SET( victim->pcdata->flags, PCFLAG_NOTITLE ) ) > strcat( buf2, " notitle" ); > if ( IS_SET( victim->pcdata->flags, PCFLAG_NOHTTP ) ) > strcat( buf2, " nohttp" ); 4578c5957 < send_to_pager( buf2, ch ); --- > send_to_pager_color( buf2, ch ); 4579a5959 > set_char_color( AT_GREEN, ch ); 4587a5968,5972 > else if ( victim->pcdata->recent_site ) > { > sprintf( buf2, "%s's most recent IP: %s \n\r ", victim->name, victim->pcdata->recent_site ); > send_to_pager( buf2, ch ); > }