*****)))))>>>>> A few Words <<<<<(((((***** Here is a new help system for your mud to replace the old pice of crap one in stock rom. All you have to do is add: "help code maby by abarak" to your greeting screen :P, Just joking. You dont have to E-Mail me or anything, hell, I dont ever care if you print it out and tare it to shreds while cursing your ass off at it. I just made this to help you out, as many things could be added to this code. I am not going to put out any more updates as this is just a stupid little pice of code, so please dont ask me. If you need any help or anything like that, please E-Mail me at: abrazak_2000@hotmail.com, but dont mail me saying my code sucks ass or other junk like that. Thanks. -- Abarak, Player by day, Coder by night. E-Mail: abrazak_2000@hotmail.com Mud : bb12.betterbox.net 5555 Web pg: Mud : http://fl.betterbox.net Self: http://www.angelfire.com/linux/orwhatnot *****)))))>>>>> What this code does <<<<<(((((***** When more then one help file is found for the keword, you get a screen like this: More then one help file found for what you where looking for Here is the list of them all ============================================================ <1 : NOTE 'NOTE WRITE' 'NOTE READ' BOARD 'NOTE SYSTEM' BOARDS > <2 : QBUY BUY > <3 : BRIEF COMPACT > <4 : BUG TYPO > <5 : BUY LIST SELL VALUE > <6 : BRANDISH QUAFF RECITE ZAP > <7 : ALLOW BAN PERMBAN > <8 : BLESS > <9 : BLINDNESS > <10: 'ACID BLAST' 'BURNING HANDS' 'COLOUR SPRAY' FIREBALL 'LIGHTNING BOLT' 'MAGIC MISSILE' 'SHOCKING GRASP' > There was 10 keywords found for what you where looking for Also, if someone types in a keyword and it is not found it is loged with the players name and what he/she types to find. *****)))))>>>>> How to install <<<<<(((((***** Just replace the stock do_help with this one. How hard can that be?? *****)))))>>>>> The Code <<<<<(((((***** void do_help( CHAR_DATA *ch, char *argument ) { char buf[MAX_STRING_LENGTH]; HELP_DATA *pHelp; BUFFER *output; bool found = FALSE; char argall[MAX_INPUT_LENGTH],argone[MAX_INPUT_LENGTH]; int level; int count = 0; output = new_buf(); if ( argument[0] == '\0' ) argument = "summary"; /* this parts handles help a b so that it returns help 'a b' */ argall[0] = '\0'; while (argument[0] != '\0' ) { argument = one_argument(argument,argone); if (argall[0] != '\0') strcat(argall," "); strcat(argall,argone); } for ( pHelp = help_first; pHelp != NULL; pHelp = pHelp->next ) { level = (pHelp->level < 0) ? -1 * pHelp->level - 1 : pHelp->level; if (level > get_trust( ch ) ) continue; if ( is_name( argall, pHelp->keyword ) ) { /* add seperator if found */ if (found) { send_to_char("\n\r", ch); send_to_char("More then one help file found for what you where looking for\n\r", ch); send_to_char("Here is the list of them all\n\r", ch); send_to_char("{r=========={R=========={b=========={B=========={g=========={G=========={x\n\r\n\r",ch); for ( pHelp = help_first; pHelp != NULL; pHelp = pHelp->next ) { level = (pHelp->level < 0) ? -1 * pHelp->level - 1 : pHelp->level; if (level > get_trust( ch ) ) continue; if ( is_name( argall, pHelp->keyword ) ) { if ( pHelp->level >= 0 && str_cmp( argall, "imotd" ) ) { count++; sprintf( buf, "{B<{G%-2d{R:{x ", count); send_to_char( buf, ch ); send_to_char(pHelp->keyword, ch); send_to_char(" {B>{x\n\r", ch); } } } sprintf( buf, "\n\rThere was {R%d{x keywords found for what you where looking for", count); send_to_char( buf, ch ); return; } if ( pHelp->level >= 0 && str_cmp( argall, "imotd" ) ) { add_buf(output,pHelp->keyword); } /* * Strip leading '.' to allow initial blanks. */ if ( strlen( argall ) == 1 ) ; // DJR HACK - display only keywords else if ( pHelp->text[0] == '.' ) add_buf(output,pHelp->text+1); else add_buf(output,pHelp->text); found = TRUE; /* small hack :) */ if (ch->desc != NULL && ch->desc->connected != CON_PLAYING && ch->desc->connected != CON_GEN_GROUPS) break; } } if (!found) { send_to_char( "We are always working on new help files\n\r", ch ); send_to_char( "So always check back for the help file you are looking for", ch ); sprintf( log_buf, "NO HELP: %s could not find a help file for %s", ch->name, argone ); log_string( log_buf ); } else page_to_char(buf_string(output),ch); free_buf(output); }