This code makes a one way info channel. it is for the c code to broadcast informative messages to the populace. Messages CAN NOT be sent by a PC, NPC, or mob. it is fairly simple and is very easy to implement. all you need to do is: some where (i put it in act.comm.c) add void do_infonet(char *message, int level) { struct descriptor_data *i; /* first, set up string */ sprintf(buf, "Info-> '%s'", message); /* now send all the string out */ for(i=descriptor_list; i; i=i->next) { if(STATE(i)==CON_PLAYING && i->character && !PRF_FLAGGED(i->character, PRF_NOINFO) && !PLR_FLAGGED(i->character, PLR_WRITING) && !ROOM_FLAGGED(i->character->in_room, ROOM_SOUNDPROOF)) { switch(level) { case INFONET_IMP://implementor level if(GET_LEVEL(i->character)>=LVL_IMPL) { if(COLOR_LEV(i->character)>=C_SPR) send_to_char(KCYN, i->character); send_to_char(buf, i->character); if(COLOR_LEV(i->character)>=C_SPR) send_to_char(KNRM, i->character); } break; case INFONET_IMM://immortal and above if(GET_LEVEL(i->character)>=LVL_IMMORT) { if(COLOR_LEV(i->character)>=C_SPR) send_to_char(KCYN, i->character); send_to_char(buf, i->character); if(COLOR_LEV(i->character)>=C_SPR) send_to_char(KNRM, i->character); } break; case INFONET_ALL://all else if(COLOR_LEV(i->character)>=C_SPR) send_to_char(KCYN, i->character); send_to_char(buf, i->character); if(COLOR_LEV(i->character)>=C_SPR) send_to_char(KNRM, i->character); break; default: log("SYSERR: Unknown level %d in do_info.", level); return; } } } } and at the top of that file add void do_infonet(char *message, int level); add this to the command table in interpreter.c: { "noinfo" , POS_DEAD , do_gen_tog , 0, SCMD_NOINFO }, in structs.h add #define PRF_NOINFO (1 << 19) /* Can't hear infonet */ and /* Infonet levels */ #define INFONET_IMP 0 #define INFONET_IMM 1 #define INFONET_ALL 2 in do_gen_tog change {"Autoexits disabled.\r\n", "Autoexits enabled.\r\n"} to {"Autoexits disabled.\r\n", "Autoexits enabled.\r\n"}, {"Info Channel disabled.\r\n", "Info Channel enabled.\r\n"} and add case SCMD_NOINFO: result = PRF_TOG_CHK(ch, PRF_NOINFO); break; to the big switch statament now just type do_infonet(string_message_, infonet_level_define); and if you have not done so already put extern void do_infonet(char *message, int level); at the top of that file(unless it is the same file as the function body) two messages i send are sprintf(buf, "Meet a brand new player thief: %s. Why don't you greet him warmly...", GET_NAME(ch)); do_infonet(buf1,INFONET_ALL); and sprintf(buf, "Meet a brand new player killer: %s. Why don't you greet him hime a nice hand or a severe contusion...", GET_NAME(ch)); do_infonet(buf1,INFONET_ALL); /**************************************\ *Daniel Staudt/Galgotha/Rayden * *dstaudt@hotmail.com * *ArmageddonMUD(alpha)(no-site)(neverup)* \**************************************/