Found in timeinfo.c
/* update the time */
void time_update( void )
{
AREA_DATA *pArea;
DESCRIPTOR_DATA *d;
WEATHER_DATA *weath;
MONTH_DATA *month;
DAY_DATA *day;
char *hmessage;
int mday = 0, mmonth = 0;
switch( ++time_info.hour )
{
case 5:
case 6:
case 12:
case 19:
case 20:
for( pArea = first_area; pArea; pArea = ( pArea == last_area ) ? first_build : pArea->next )
get_time_echo( pArea->weather );
for( d = first_descriptor; d; d = d->next )
{
if( d->connected == CON_PLAYING && is_outside( d->character ) && is_awake( d->character ) )
{
weath = d->character->in_room->area->weather;
if( !weath->echo )
continue;
set_char_color( weath->echo_color, d->character );
send_to_char( weath->echo, d->character );
}
}
break;
case 24:
time_info.hour = 0;
time_info.day++;
time_info.wday++;
if( ( hmessage = show_holiday( ) ) )
{
for( d = first_descriptor; d; d = d->next )
{
if( d->connected == CON_PLAYING )
ch_printf( d->character, "%s\r\n", hmessage );
}
}
break;
}
update_sunlight( );
if( !( month = get_mdata( time_info.month ) ) )
{
bug( "%s: invalid month!!!!", __FUNCTION__ );
return;
}
for( day = first_day; day; day = day->next )
mday++;
if( time_info.wday > mday )
time_info.wday = 1;
if( time_info.day > month->days )
{
time_info.day = 1;
time_info.month++;
give_interest( );
}
for( month = first_month; month; month = month->next )
mmonth++;
if( time_info.month > mmonth )
{
time_info.month = 1;
time_info.year++;
}
/* Shouldn't be to bad to save it each update */
save_timeinfo( );
}
The ++time_info.hour is where it is increasing the hour on the mud and it does so everytime time_update is called. You have a few different things you can do but the easiest way is to just change the amount of time time_info.hour is updated or you can even add in another part in time like mins and just up a min each time it is called and then update the mud hour every so many mins till you find the time you like. Just watch how fast the hours go by and if you went with 2 mins before an hour passed then it would be an hour passing half as fast. etc.... Let me know the kind of way you want to go with it and if you need some extra help I'll help out.
Another way is changing in update.c
find
if( --pulse_point <= 0 )
{
pulse_point = number_range( ( int )( PULSE_TICK * 0.75 ), ( int )( PULSE_TICK * 1.25 ) );
auth_update( ); /* Gorog */
time_update( );
weather_update( );
char_update( );
obj_update( );
}
change it to this
if( --pulse_point <= 0 )
{
pulse_point = number_range( ( int )( PULSE_TICK * 0.75 ), ( int )( PULSE_TICK * 1.25 ) );
auth_update( ); /* Gorog */
weather_update( );
char_update( );
obj_update( );
}
{
static int pulse_slowtime;
if( --pulse_slowtime <= 0 )
{
pulse_slowtime = number_range( ( int )( PULSE_TICK * 1.75 ), ( int )( PULSE_TICK * 2.25 ) );
time_update( );
}
}
for example that is. You can change the multiplying or just go with some other range etc....