Channels Command v2.0 What this does: In stock SWR when you type channels you see a very plain and boring list of the channels you are or are not listening to. I decided to give it a more informative look. This isn't a hard thing to do, and your players and immortals should like the way it looks. ;) What you will need to change: act_info.c *Always remember to backup the files you will change incase of an error with installation, or an error with the code. cp .bak What you will need to add: Nothing. ------------------------------------------------------------------------------------------------- act_info.c Find, void do_channels( CHAR_DATA *ch, char *argument ) Comment out the entire function(even the toggling part) or you can delete it and then add this, void do_channels( CHAR_DATA *ch, char *argument ) { char arg[MAX_INPUT_LENGTH]; int count = 0; one_argument( argument, arg ); if ( arg[0] == '\0' ) { if ( !IS_NPC(ch) && IS_SET(ch->act, PLR_SILENCE) ) { send_to_char( "You are silenced.\n\r", ch ); return; } send_to_char( "&CChannels&B: &G+ &C= &COn &R- &C= &COff &Y* &C= &CNot Available\n\r", ch ); /* Next Line */ send_to_char( "&B---------------------------------------------------------------------&z&W\n\r", ch ); send_to_char( !IS_SET(ch->deaf, CHANNEL_CHAT) ? " &B[&G+&B] &CNEWBIE " : " &B[&R-&B] &CNEWBIE ", ch ); count++; if ( count == 5 ) { count = 0; send_to_char( "&G&W\n\r", ch ); /* Next Line */ } send_to_char( !IS_SET(ch->deaf, CHANNEL_OOC) ? " &B[&G+&B] &COOC " : " &B[&R-&B] &COOC ", ch ); count++; if ( count == 5 ) { count = 0; send_to_char( "&G&W\n\r", ch ); /* Next Line */ } send_to_char( !IS_SET(ch->deaf, CHANNEL_QUEST) ? " &B[&G+&B] &CQUEST " : " &B[&R-&B] &CQUEST ", ch ); count++; if ( count == 5 ) { count = 0; send_to_char( "&G&W\n\r", ch ); /* Next Line */ } send_to_char( !IS_SET( ch->deaf, CHANNEL_TELLS ) ? " &B[&G+&B] &CTELLS " : " &B[&R-&B] &CTELLS ", ch ); count++; if ( count == 5 ) { count = 0; send_to_char( "&G&W\n\r", ch ); /* Next Line */ } if ( !IS_NPC( ch ) && !ch->pcdata->clan ) send_to_char( " &B[&Y*&B] &CWARTALK ", ch ); else send_to_char( !IS_SET( ch->deaf, CHANNEL_WARTALK ) ? " &B[&G+&B] &CWARTALK " : " &B[&R-&B] &CWARTALK ", ch ); count++; if ( count == 5 ) { count = 0; send_to_char( "&G&W\n\r", ch ); /* Next Line */ } if ( !IS_HERO(ch) ) send_to_char( " &B[&Y*&B] &CAVATAR ", ch ); else send_to_char( !IS_SET(ch->deaf, CHANNEL_AVTALK) ? " &B[&G+&B] &CAVATAR " : " &B[&R-&B] &CAVATAR ", ch ); count++; if ( count == 5 ) { count = 0; send_to_char( "&G&W\n\r", ch ); /* Next Line */ } send_to_char( !IS_SET(ch->deaf, CHANNEL_MUSIC) ? " &B[&G+&B] &CMUSIC " : " &B[&R-&B] &CMUSIC ", ch ); count++; if ( count == 5 ) { count = 0; send_to_char( "&G&W\n\r", ch ); /* Next Line */ } send_to_char( !IS_SET(ch->deaf, CHANNEL_ASK) ? " &B[&G+&B] &CASK " : " &B[&R-&B] &CASK ", ch ); count++; if ( count == 5 ) { count = 0; send_to_char( "&G&W\n\r", ch ); /* Next Line */ } send_to_char( !IS_SET(ch->deaf, CHANNEL_SHOUT) ? " &B[&G+&B] &CSHOUT " : " &B[&R-&B] &CSHOUT ", ch ); count++; if ( count == 5 ) { count = 0; send_to_char( "&G&W\n\r", ch ); /* Next Line */ } send_to_char( !IS_SET(ch->deaf, CHANNEL_YELL) ? " &B[&G+&B] &CYELL " : " &B[&R-&B] &CYELL ", ch ); count++; if ( count == 5 ) { count = 0; send_to_char( "&G&W\n\r", ch ); /* Next Line */ } send_to_char( !IS_SET(ch->deaf, CHANNEL_NEWBIE) ? " &B[&G+&B] &CNEWBIE " : " &B[&R-&B] &CNEWBIE ", ch ); count++; if ( count == 5 ) { count = 0; send_to_char( "&G&W\n\r", ch ); /* Next Line */ } if ( !IS_NPC( ch ) && !ch->pcdata->clan ) send_to_char( " &B[&Y*&B] &CCLAN ", ch ); else send_to_char( !IS_SET(ch->deaf, CHANNEL_CLAN) ? " &B[&G+&B] &CCLAN " : " &B[&R-&B] &CCLAN ", ch ); count++; if ( count == 5 ) { count = 0; send_to_char( "&G&W\n\r", ch ); /* Next Line */ } if ( NOT_AUTHED( ch ) ) send_to_char( " &B[&Y*&B] &CAUCTION ", ch ); else send_to_char( !IS_SET(ch->deaf, CHANNEL_AUCTION) ? " &B[&G+&B] &CAUCTION " : " &B[&R-&B] &CAUCTION ", ch ); count++; if ( count == 5 ) { count = 0; send_to_char( "&G&W\n\r", ch ); /* Next Line */ } if ( IS_IMMORTAL(ch) ) { send_to_char( "\n\r&B---------------------------------------------------------------------&z&W\n\r", ch ); count = 0; ch_printf( ch, "\n\r&CIMM Channels&B:\n\r" ); /* Next Line */ send_to_char( !IS_SET(ch->deaf, CHANNEL_IMMTALK) ? " &B[&G+&B] &CIMMTALK " : " &B[&R-&B] &CIMMTALK ", ch ); send_to_char( !IS_SET(ch->deaf, CHANNEL_LOG) ? " &B[&G+&B] &CLOG " : " &B[&R-&B] &CLOG ", ch ); send_to_char( !IS_SET(ch->deaf, CHANNEL_BUILD) ? " &B[&G+&B] &CBUILD " : " &B[&R-&B] &CBUILD ", ch ); send_to_char( !IS_SET(ch->deaf, CHANNEL_COMM) ? " &B[&G+&B] &CCOMM " : " &B[&R-&B] &CCOMM ", ch ); } send_to_char( "\n\r", ch ); send_to_char( "&B---------------------------------------------------------------------&z&W\n\r", ch ); } else { bool fClear; bool ClearAll; int bit; bit=0; ClearAll = FALSE; if ( arg[0] == '+' ) fClear = TRUE; else if ( arg[0] == '-' ) fClear = FALSE; else { send_to_char( "Channels -channel or +channel?\n\r", ch ); return; } if ( !str_cmp( arg+1, "auction" ) ) bit = CHANNEL_AUCTION; else if ( !str_cmp( arg+1, "chat" ) ) bit = CHANNEL_CHAT; else if ( !str_cmp( arg+1, "ooc" ) ) bit = CHANNEL_OOC; else if ( !str_cmp( arg+1, "clan" ) ) bit = CHANNEL_CLAN; else if ( !str_cmp( arg+1, "guild" ) ) bit = CHANNEL_GUILD; else if ( !str_cmp( arg+1, "quest" ) ) bit = CHANNEL_QUEST; else if ( !str_cmp( arg+1, "tells" ) ) bit = CHANNEL_TELLS; else if ( !str_cmp( arg+1, "immtalk" ) ) bit = CHANNEL_IMMTALK; else if ( !str_cmp( arg+1, "log" ) ) bit = CHANNEL_LOG; else if ( !str_cmp( arg+1, "build" ) ) bit = CHANNEL_BUILD; else if ( !str_cmp( arg+1, "pray" ) ) bit = CHANNEL_PRAY; else if ( !str_cmp( arg+1, "avatar" ) ) bit = CHANNEL_AVTALK; else if ( !str_cmp( arg+1, "monitor" ) ) bit = CHANNEL_MONITOR; else if ( !str_cmp( arg+1, "newbie" ) ) bit = CHANNEL_NEWBIE; else if ( !str_cmp( arg+1, "music" ) ) bit = CHANNEL_MUSIC; else if ( !str_cmp( arg+1, "ask" ) ) bit = CHANNEL_ASK; else if ( !str_cmp( arg+1, "shout" ) ) bit = CHANNEL_SHOUT; else if ( !str_cmp( arg+1, "yell" ) ) bit = CHANNEL_YELL; else if ( !str_cmp( arg+1, "comm" ) ) bit = CHANNEL_COMM; else if ( !str_cmp( arg+1, "order" ) ) bit = CHANNEL_ORDER; else if ( !str_cmp( arg+1, "wartalk" ) ) bit = CHANNEL_WARTALK; else if ( !str_cmp( arg+1, "all" ) ) ClearAll = TRUE; else { send_to_char( "Set or clear which channel?\n\r", ch ); return; } if (( fClear ) && ( ClearAll )) { REMOVE_BIT (ch->deaf, CHANNEL_AUCTION); REMOVE_BIT (ch->deaf, CHANNEL_CHAT); REMOVE_BIT (ch->deaf, CHANNEL_QUEST); REMOVE_BIT (ch->deaf, CHANNEL_PRAY); REMOVE_BIT (ch->deaf, CHANNEL_MUSIC); REMOVE_BIT (ch->deaf, CHANNEL_ASK); REMOVE_BIT (ch->deaf, CHANNEL_SHOUT); REMOVE_BIT (ch->deaf, CHANNEL_YELL); if (ch->top_level >= LEVEL_IMMORTAL) REMOVE_BIT (ch->deaf, CHANNEL_AVTALK); if (ch->top_level >= sysdata.log_level ) REMOVE_BIT (ch->deaf, CHANNEL_COMM); } else if ((!fClear) && (ClearAll)) { SET_BIT (ch->deaf, CHANNEL_AUCTION); 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_YELL); if (ch->top_level >= LEVEL_IMMORTAL) SET_BIT (ch->deaf, CHANNEL_AVTALK); if (ch->top_level >= sysdata.log_level) SET_BIT (ch->deaf, CHANNEL_COMM); } else if (fClear) { REMOVE_BIT (ch->deaf, bit); } else { SET_BIT (ch->deaf, bit); } send_to_char( "Ok.\n\r", ch ); } return; } ------------------------------------------------------------------------------------------------- make clean make copyover/reboot mud Any problems please contact me at the provided email address, -,,,.,,,,- _'Diablo'_ Star Wars Development '''''' [*]------------------------------------------------[*] ||| If you have any problems please contact me at: ||| ||| crazy_mike_316@hotmail.com ||| [*]------------------------------------------------[*]