/* --- --- --- --- --- --- --- --- --- --- |S| |P| |I| |R| |A| |L| |V| |O| |I| |D| --- --- --- --- --- --- --- --- --- --- replace your stock wizhelp with this the command will need to be edited in a few places to match how your imm levels are setup */ void do_wizhelp( CHAR_DATA *ch, char *argument ) { CMDTYPE * cmd; int col, hash; int level2 = 0; int level = 0; int lev_end = 0; char buf[MAX_STRING_LENGTH]; char arg[MAX_INPUT_LENGTH]; char arg2[MAX_INPUT_LENGTH]; char title[MAX_STRING_LENGTH]; argument = one_argument( argument, arg); argument = one_argument( argument, arg2); col = 0; set_pager_color( AT_PLAIN, ch ); send_to_pager( "\n\r", ch ); /* The if statement lines below if there is no argument all commands leveled 100 to 116 are shown if there is an argument the argument is converted to an intiger and all commands from that intiger up to 116 are shown in the wizhelp */ if ( arg[0] == '\0' ) { level = LEVEL_AVATAR; lev_end = MAX_LEVEL; } else /* The if statement below enable wizhelp to show commands in a range of levels from arg to arg2 */ if ( arg[0] != '\0' && arg2[0] != '\0') { level = atoi( arg ); lev_end = atoi( arg2 ); } else if ( arg[0] != '\0' && arg2[0] == '\0') { level = atoi( arg ); lev_end = MAX_LEVEL; } for ( level2 = level ; level2 <= lev_end ; level2++ ) { switch(level2) { case 100: sprintf(title,"&YAvatar"); break; case 101: sprintf(title,"&YTrial Immortals"); break; case 102: sprintf(title,"&YTrial Rp Enforcers"); break; case 103: sprintf(title,"&YRp Enforcers"); break; case 104: sprintf(title,"&YSenior Rp Enforcers"); break; case 105: sprintf(title,"&YHead Rp Enforcer"); break; case 106: sprintf(title,"&YTrial Builders"); break; case 107: sprintf(title,"&YBuilders"); break; case 108: sprintf(title,"&YShip Builders"); break; case 109: sprintf(title,"&YSenior Builders"); break; case 110: sprintf(title,"&YHead Builder"); break; case 111: sprintf(title,"&YTrial Coders"); break; case 112: sprintf(title,"&YCoders"); break; case 113: sprintf(title,"&YSenior Coders"); break; case 114: sprintf(title,"&YHead Coder"); break; case 115: sprintf(title,"&YTrial Admins"); break; case 116: sprintf(title,"&YAdmins"); break; default: sprintf(title,"&RERROR"); break; } sprintf( buf, "\n\r&R[&zLevel &G%d &zCommands&R] %s", level2,title ); col = 0; if ( get_trust(ch) >= level2 ) { send_to_pager(buf,ch); send_to_pager( "\n\r", ch ); for ( hash = 0; hash < 126; hash++ ) { for ( cmd = command_hash[hash]; cmd; cmd = cmd->next ) { if ( cmd->level >= LEVEL_IMMORTAL && cmd->level <= get_trust( ch ) && cmd->level == level2 ) { pager_printf( ch, "&Y-&B %-15.15s &Y- ", cmd->name ); if ( ++col % 6 == 0 ) send_to_pager( "\n\r", ch ); } } } } } if ( col % 6 != 0 ) send_to_pager( "\n\r", ch ); return; }