Well checked mine to see, guess i had fixed it back when you mentioned it before or maybe before that no clue....
heres what I use and it seems to work great.
if( !str_cmp( arg, "random" ) )
int dir = -1;
argument = one_argument( argument, arg );
if( arg != NULL && arg != '\0' && is_number( arg ) )
dir = atoi( arg );
if( dir < 0 || dir > 9 )
send_to_char( "Reset which directions randomly?\r\n", ch );
send_to_char( "3 would randomize north, south, east, west.\r\n", ch );
send_to_char( "5 would do those and up, down.\r\n", ch );
send_to_char( "9 would do those and ne, nw, se, sw.\r\n", ch );
if( dir == 0 )
send_to_char( "There is no point in randomizing only one direction.\r\n", ch );
pReset = make_reset( 'R', 0, ch->in_room->vnum, dir, 0, 100, 0, 0, false );
pReset->prev = NULL;
pReset->next = ch->in_room->first_reset;
if( ch->in_room->first_reset )
ch->in_room->first_reset->prev = pReset;
ch->in_room->first_reset = pReset;
if( !ch->in_room->last_reset )
ch->in_room->last_reset = pReset;
ch_printf( ch, "Reset door(s) randomly 0 - %d in room %d has been created.\r\n", dir, ch->in_room->vnum );
reset random 9
Reset door(s) randomly 0 - 9 in room 21043 has been created.
1) Randmoize exits 0 to 9 -> The Darkhaven Bakery (21043) (100)
But of course I've done various changes over time. but yea zeno it is a bit buggy the way it is.