act_new change. add long flag at the end of function name after this if ( type == TO_NOTVICT && (to == ch || to == vch) ) continue; before this point = buf; str = format; add this // this will stop you from getting messages that are un-wanted. if(flag != 0 && IS_SET(ch->ignore_flag, flag)) continue; in macros.h change the act macro... #define act(format,ch,arg1,arg2,type)\ act_new((format),(ch),(arg1),(arg2),(type),POS_RESTING, 0) and add #define combat_act(format,ch,arg1,arg2,type, flag)\ act_new((format),(ch),(arg1),(arg2),(type),POS_RESTING, (flag)) add in prototypes.h to the act_new function... long flag add these to defines.h #define IGNORE_DODGE (A) #define IGNORE_PARRY (B) #define IGNORE_SHIELD (C) #define IGNORE_MISS (D) #define IGNORE_CASTING (E) #define IGNORE_SKILLS (F) in combat.c in check-parry change the act statements to.. combat_act, and at the end, add this. IGNORE_DODGE Go through and change all corosponding acts to the new system. in act_info.c add this. const struct flag_type filter_table[] = { { "dodge", IGNORE_DODGE, TRUE }, { "parry", IGNORE_PARRY, TRUE }, { "shield", IGNORE_SHIELD, TRUE }, { "cast", IGNORE_CASTING, TRUE }, { "skills", IGNORE_SKILLS, TRUE }, { NULL, 0, FALSE}, }; // for filtering what act messages you get (cuts back on combat-spam) // This can be used to filter out other things aswell But only time will tell how far we go with the filters! COMMAND(cmd_filters) { if(NullString(argument)) { int col = 0; for(int x = 0; filter_table[x].name != NULL; x++) { ch->Sendf("%15s (%3s)\t", filter_table[x].name, IS_SET(ch->ignore_flags, filter_table[x].bit) ? "On" : "Off"); col++; if(col == 3) { col = 0; ch->Sendf("\n\r"); } } ch->Sendf("Syntax: filter to toggle on/off!\n\r"); return; } for(int x = 0; filter_table[x].name != NULL; x++) { if(!str_cmp(argument, filter_table[x].name)) { if(IS_SET(ch->ignore_flags, filter_table[x].bit)) REMOVE_BIT(ch->ignore_flags, filter_table[x].bit); else SET_BIT(ch->ignore_flags, filter_table[x].bit); ch->Sendf("%s has been turned %s\r\n", filter_table[x].name, IS_SET(ch->ignore_flags, filter_table[x].bit) ? "On" : "Off"); return; } } ch->Sendf("That filter does not exist!\r\n"); return; }