Small snip I wrote to help me identify help files that needed to be created for commands, skills, and areas. It's not too bright, in that it only compares literal names to help file keywords. This makes the output not wholly accurate. For example, it will return 'standard style' as not having a help file, even though it is covered, in 'help styles'. To fix it, add the keyword 'standard style' to the pre-existing 'styles' help file, etc. which is better, in my opinion anyway....all commands, areas, and skills SHOULD have help files whose keywords match the literal name of the command, area, skill, etc. At least, that's the first thing *I* type in, when trying a new mud. Any questions, email me at sadiq@a-znet.com INSTALLATION INSTRUCTIONS: -------------------------- Drop this function into the bottom of act_info.c: /* ********** Begin Code ********** */ /* Find non-existant help files. -Sadiq */ void do_nohelps(CHAR_DATA *ch, char *argument) { CMDTYPE *command; AREA_DATA *tArea; char arg[MAX_STRING_LENGTH]; int hash, col=0, sn=0; argument = one_argument( argument, arg ); if(!IS_IMMORTAL(ch) || IS_NPC(ch) ) { send_to_char("Huh?\n\r", ch); return; } if ( arg[0] == '\0' || !str_cmp(arg, "all") ) { do_nohelps(ch, "commands"); send_to_char( "\n\r", ch); do_nohelps(ch, "skills"); send_to_char( "\n\r", ch); do_nohelps(ch, "areas"); send_to_char( "\n\r", ch); return; } if(!str_cmp(arg, "commands") ) { send_to_char_color("&C&YCommands for which there are no help files:\n\r\n\r", ch); for ( hash = 0; hash < 126; hash++ ) { for ( command = command_hash[hash]; command; command = command->next ) { if(!get_help(ch, command->name) ) { ch_printf_color(ch, "&W%-15s", command->name); if ( ++col % 5 == 0 ) { send_to_char( "\n\r", ch ); } } } } send_to_char("\n\r", ch); return; } if(!str_cmp(arg, "skills") || !str_cmp(arg, "spells") ) { send_to_char_color("&CSkills/Spells for which there are no help files:\n\r\n\r", ch); for ( sn = 0; sn < top_sn && skill_table[sn] && skill_table[sn]->name; sn++ ) { if(!get_help(ch, skill_table[sn]->name)) { ch_printf_color(ch, "&W%-20s", skill_table[sn]->name); if ( ++col % 4 == 0 ) { send_to_char("\n\r", ch); } } } send_to_char("\n\r", ch); return; } if(!str_cmp(arg, "areas") ) { send_to_char_color("&GAreas for which there are no help files:\n\r\n\r", ch); for (tArea = first_area; tArea;tArea = tArea->next) { if(!get_help(ch, tArea->name) ) { ch_printf_color(ch, "&W%-35s", tArea->name); if ( ++col % 2 == 0 ) { send_to_char("\n\r", ch); } } } send_to_char( "\n\r", ch); return; } send_to_char("Syntax: nohelps \n\r", ch); return; } /* ********** End Code ********** */ Make the proper entries in tables.c Add the DECLARE_DO_FUN in mud.h Do a clean make. Start up the mud, and log on. Create the command by using CEDIT...don't forget to save the command table. Type 'nohelps all'. Bitch and moan over all the help files you have to create :) IMPORTANT NOTE!!: If you want to put the main function somewhere other than in act_info.c (like in act_wiz.c for example) then you MUST declare HELP_DATA *get_help in mud.h! Just look for the section with all the function declarations, and in the part with the act_info.c declarations, add this line: HELP_DATA * get_help args( (CHAR_DATA *ch, char *argument) ); Just so you don't have one more help file added to your list, here's a copy of the one I put in. Use it as-is, or modify it to suit your needs, or ignore it and write your own :) 51 NOHELPS~ . &GSyntax: &Cnohelps &WThe nohelps command will search through the commands, skills, or areas on the mud (or all three at once) and test to see if there is an attendant help file which exists for them. If no help file exists, it is added to a list, which is displayed. Helpful in finding help files that need to be created. Note that if the keyword of the helpfile doesn't match the name of the, command (or name of area, or name of spell/skill) then it is returned as not existing. For example, the skill 'standard style' will show as having no help file, even though there IS a 'styles' help file, in the stock SMAUG release. I only had about an hour, to code this, and it's not too smart. I may try to make it more intelligent later. If no argument is given, nohelps will default to "all". &w Enjoy Sadiq