diff -i smaug14/src/update.c  smaug18/src/update.c
8c8
<  * Tricops and Fireblade                                      |             *
---
>  * Tricops, Fireblade, Edmond, Conran                         |             *
35a36
> void hint_update args( ( void ) );
75a77
>       struct tm *t = localtime( &current_time );
81d82
< /*    save_char_obj( ch );*/
111a113
> 
119c121
<               sprintf( buf, "%s has just achieved Avatarhood!", ch->name );
---
>               sprintf( buf, "%s has attained the rank of Avatar!", ch->name );
127a130
>               ch->pcdata->honour = 10;
144c147,148
<                       sprintf( buf2, "&G%-13s  ->&w%-2d  &G-&w  %-5d&G   Rvnum: %-5d   %s %s",
---
>                       sprintf( buf2, "%d/%d, %d:%d, %s, %d, %d, %d, %s %s",
>                               t->tm_mon + 1, t->tm_mday, t->tm_hour, t->tm_min,
152a157
> 
165a171,172
>       if ( IS_PKILL( ch ) && IS_SET( ch->pcdata->flags, PCFLAG_NOEXP ) )
>               return;
171c178,200
<       if ( modgain > 0 && IS_PKILL( ch ) && ch->level < 17 )
---
> 
> /* temporarily modified
>     if(modgain>0 && IS_PKILL(ch) && ch->level<17){
>        if(ch->level<=6){
>           sprintf(buf,"The Favor of Gravoc fosters your learning.\n\r");
>           modgain*=2;
>        }
>        if(ch->level<=10 && ch->level>=7){
>           sprintf(buf,"The Hand of Gravoc hastens your learning.\n\r");
>           modgain*=1.75;
>        }
>        if(ch->level<=13 && ch->level>=11){
>           sprintf(buf,"The Cunning of Gravoc succors your learning.\n\r");
>           modgain*=1.5;
>        }
>        if(ch->level<=16 && ch->level>=14){
>           sprintf(buf,"The Patronage of Gravoc reinforces your learning.\n\r");
>           modgain*=1.25;
>        }
>       send_to_char(buf, ch);
>     }  */
> 
>       if ( modgain > 0 && IS_PKILL( ch ) )
173c202
<               if ( ch->level <= 6 )
---
>               if ( ch->level <= 15 )
176c205
<                       modgain *= 2;
---
>                       modgain *= 2.75;
178c207
<               if ( ch->level <= 10 && ch->level >= 7 )
---
>               if ( ch->level <= 25 && ch->level >= 16 )
181c210
<                       modgain *= 1.75;
---
>                       modgain *= 2.5;
183c212
<               if ( ch->level <= 13 && ch->level >= 11 )
---
>               if ( ch->level <= 35 && ch->level >= 26 )
186c215
<                       modgain *= 1.5;
---
>                       modgain *= 2.25;
188c217
<               if ( ch->level <= 16 && ch->level >= 14 )
---
>               if ( ch->level <= 49 && ch->level >= 36 )
191c220
<                       modgain *= 1.25;
---
>                       modgain *= 2.0;
195a225
> 
201a232,237
>        * temporary boost 
>        */
>       if ( !IS_PKILL( ch ) && modgain < 0 )
>               modgain *= 1.25;
> 
>       /*
212a249,252
>       if ( IS_PKILL( ch ) )
>               modgain = ( modgain * sysdata.deadly_exp_mod ) / 100;
>       else
>               modgain = ( modgain * sysdata.peaceful_exp_mod ) / 100;
236a277
>       save_char_obj( ch );
610c651
<               send_to_char( "Your actions have been incompatible with the ideals of your race.  This troubles you.", ch );
---
>               send_to_char( "Your actions have been incompatible with the ideals of your race.  This troubles you.\n\r", ch );
616c657
<               send_to_char( "Your actions have been incompatible with the ideals of your race.  This troubles you.", ch );
---
>               send_to_char( "Your actions have been incompatible with the ideals of your race.  This troubles you.\n\r", ch );
703c744,745
<               if ( !ch->in_room || IS_AFFECTED( ch, AFF_CHARM ) || IS_AFFECTED( ch, AFF_PARALYSIS ) )
---
>               if ( !ch->in_room
>                       || IS_AFFECTED( ch, AFF_CHARM ) || IS_AFFECTED( ch, AFF_PARALYSIS ) || IS_AFFECTED( ch, AFF_POSSESS ) )
735c777
<               if ( !xIS_SET( ch->act, ACT_RUNNING ) && ch->spec_fun )
---
>               if ( !xIS_SET( ch->act, ACT_RUNNING ) && ch->spec_fun && !IS_AFFECTED( ch, AFF_POSSESS ) )
746c788
<               if ( HAS_PROG( ch->pIndexData, SCRIPT_PROG ) )
---
>               if ( HAS_PROG( ch->pIndexData, SCRIPT_PROG ) && !xIS_SET( ch->act, ACT_STOP_SCRIPT ) )
771c813
<               if ( IS_SET( ch->in_room->room_flags, ROOM_SAFE )
---
>               if ( xIS_SET( ch->in_room->room_flags, ROOM_SAFE )
816c858,859
<                               if ( CAN_WEAR( obj, ITEM_TAKE ) && obj->cost > max && !IS_OBJ_STAT( obj, ITEM_BURIED ) )
---
>                               if ( CAN_WEAR( obj, ITEM_TAKE )
>                                       && obj->cost > max && !IS_OBJ_STAT( obj, ITEM_BURIED ) && !IS_OBJ_STAT( obj, ITEM_HIDDEN ) )
841,842c884,885
<                       && !IS_SET( pexit->to_room->room_flags, ROOM_NO_MOB )
<                       && !IS_SET( pexit->to_room->room_flags, ROOM_DEATH )
---
>                       && !xIS_SET( pexit->to_room->room_flags, ROOM_NO_MOB )
>                       && !xIS_SET( pexit->to_room->room_flags, ROOM_DEATH )
865c908
<                       && !IS_SET( pexit->exit_info, EX_CLOSED ) && !IS_SET( pexit->to_room->room_flags, ROOM_NO_MOB ) )
---
>                       && !IS_SET( pexit->exit_info, EX_CLOSED ) && !xIS_SET( pexit->to_room->room_flags, ROOM_NO_MOB ) )
977a1021,1044
>                * Expire variables 
>                */
>               if ( ch->variables )
>               {
>                       VARIABLE_DATA *vd, *vd_next = NULL, *vd_prev = NULL;
> 
>                       for ( vd = ch->variables; vd; vd = vd_next )
>                       {
>                               vd_next = vd->next;
>                               if ( vd->timer > 0 && --vd->timer == 0 )
>                               {
>                                       if ( vd == ch->variables )
>                                               ch->variables = vd_next;
>                                       else if ( vd_prev )
>                                               vd_prev->next = vd_next;
>                                       delete_variable( vd );
>                               }
>                               else
>                                       vd_prev = vd;
>                       }
>               }
> 
> 
>               /*
1010a1078
> 
1013,1028c1081,1082
<                       OBJ_DATA *obj;
< 
<                       if ( ( obj = get_eq_char( ch, WEAR_LIGHT ) ) != NULL && obj->item_type == ITEM_LIGHT && obj->value[2] > 0 )
<                       {
<                               if ( --obj->value[2] == 0 && ch->in_room )
<                               {
<                                       ch->in_room->light -= obj->count;
<                                       if ( ch->in_room->light < 0 )
<                                               ch->in_room->light = 0;
<                                       act( AT_ACTION, "$p goes out.", ch, obj, NULL, TO_ROOM );
<                                       act( AT_ACTION, "$p goes out.", ch, obj, NULL, TO_CHAR );
<                                       if ( obj->serial == cur_obj )
<                                               global_objcode = rOBJ_EXPIRED;
<                                       extract_obj( obj );
<                               }
<                       }
---
> /*
>           OBJ_DATA *obj;
1029a1084,1100
>           if ( ( obj = get_eq_char( ch, WEAR_LIGHT ) ) != NULL
>           &&   obj->item_type == ITEM_LIGHT
>           &&   obj->value[2] > 0 )
>           {
>               if ( --obj->value[2] == 0 && ch->in_room )
>               {
>                   ch->in_room->light -= obj->count;
>                   if (ch->in_room->light < 0 )
>                               ch->in_room->light=0;
>                   act( AT_ACTION, "$p goes out.", ch, obj, NULL, TO_ROOM );
>                   act( AT_ACTION, "$p goes out.", ch, obj, NULL, TO_CHAR );
>                   if ( obj->serial == cur_obj )
>                     global_objcode = rOBJ_EXPIRED;
>                   extract_obj( obj );
>               }
>           }
> */
1361a1433,1473
>               if ( obj->item_type == ITEM_LIGHT )
>               {
>                       CHAR_DATA *tch;
> 
>                       if ( ( tch = obj->carried_by ) )
>                       {
>                               if ( !IS_NPC( tch )     /* && ( tch->level < LEVEL_IMMORTAL ) */
>                                       && ( ( obj == get_eq_char( tch, WEAR_LIGHT ) )
>                                               || ( IS_SET( obj->value[3], PIPE_LIT ) ) ) && ( obj->value[2] > 0 ) )
>                                       if ( --obj->value[2] == 0 && tch->in_room )
>                                       {
>                                               tch->in_room->light -= obj->count;
>                                               if ( tch->in_room->light < 0 )
>                                                       tch->in_room->light = 0;
>                                               act( AT_ACTION, "$p goes out.", tch, obj, NULL, TO_ROOM );
>                                               act( AT_ACTION, "$p goes out.", tch, obj, NULL, TO_CHAR );
>                                               if ( obj->serial == cur_obj )
>                                                       global_objcode = rOBJ_EXPIRED;
>                                               extract_obj( obj );
>                                               continue;
>                                       }
>                       }
>                       else if ( obj->in_room )
>                               if ( IS_SET( obj->value[3], PIPE_LIT ) && ( obj->value[2] > 0 ) )
>                                       if ( --obj->value[2] == 0 )
>                                       {
>                                               obj->in_room->light -= obj->count;
>                                               if ( obj->in_room->light < 0 )
>                                                       obj->in_room->light = 0;
>                                               if ( ( tch = obj->in_room->first_person ) )
>                                               {
>                                                       act( AT_ACTION, "$p goes out.", tch, obj, NULL, TO_ROOM );
>                                                       act( AT_ACTION, "$p goes out.", tch, obj, NULL, TO_CHAR );
>                                               }
>                                               if ( obj->serial == cur_obj )
>                                                       global_objcode = rOBJ_EXPIRED;
>                                               extract_obj( obj );
>                                               continue;
>                                       }
>               }
> 
1455a1568
>                       case ITEM_PUDDLE:
1478c1591
<                               AT_TEMP = AT_BLOOD;
---
>                               AT_TEMP = AT_ORANGE;
1551a1665,1667
>                       /*
>                        * Bug fix provided by Gianfranco Finell -Shaddai 
>                        */
1554c1670,1672
<                               if ( !xIS_SET( ch->act, ACT_SENTINEL ) && !ch->fighting && ch->hunting )
---
>                               if ( !xIS_SET( ch->act, ACT_SENTINEL )
>                                       && ch->position == POS_STANDING
>                                       && !xIS_SET( ch->act, ACT_MOUNTED ) && !ch->fighting && ch->hunting )
1575,1576c1693,1694
<                                       && !IS_SET( pexit->to_room->room_flags, ROOM_NO_MOB )
<                                       && !IS_SET( pexit->to_room->room_flags, ROOM_DEATH )
---
>                                       && !xIS_SET( pexit->to_room->room_flags, ROOM_NO_MOB )
>                                       && !xIS_SET( pexit->to_room->room_flags, ROOM_DEATH )
1691c1809
<                                               || xIS_SET( wch->act, ACT_MOUNTED ) || IS_SET( wch->in_room->room_flags, ROOM_SAFE ) )
---
>                                               || xIS_SET( wch->act, ACT_MOUNTED ) || xIS_SET( wch->in_room->room_flags, ROOM_SAFE ) )
1764c1882,1883
<                                       mprog_wordlist_check( tmp_act->buf, wch, tmp_act->ch, tmp_act->obj, tmp_act->vo, ACT_PROG );
---
>                                       mprog_wordlist_check( tmp_act->buf, wch, tmp_act->ch,
>                                               tmp_act->obj, tmp_act->victim, tmp_act->target, ACT_PROG );
1810c1929
<                               || xIS_SET( ch->act, ACT_MOUNTED ) || IS_SET( ch->in_room->room_flags, ROOM_SAFE ) )
---
>                               || xIS_SET( ch->act, ACT_MOUNTED ) || xIS_SET( ch->in_room->room_flags, ROOM_SAFE ) )
1868a1988,2004
>                       else if ( IS_NPC( ch ) && xIS_SET( ch->attacks, ATCK_POUNCE ) )
>                       {
>                               if ( !ch->mount && !victim->fighting )
>                               {
>                                       check_attacker( ch, victim );
>                                       if ( !IS_AWAKE( victim ) || number_percent(  ) + 5 < ch->level )
>                                       {
>                                               global_retcode = multi_hit( ch, victim, gsn_pounce );
>                                               continue;
>                                       }
>                                       else
>                                       {
>                                               global_retcode = damage( ch, victim, 0, gsn_pounce );
>                                               continue;
>                                       }
>                               }
>                       }
2016c2152
<                               if ( IS_SET( tele->room->room_flags, ROOM_TELESHOWDESC ) )
---
>                               if ( xIS_SET( tele->room->room_flags, ROOM_TELESHOWDESC ) )
2097a2234,2238
>       static int pulse_houseauc;
> 
> #ifdef MYSTARIC
>       static int casino_time;
> #endif
2107a2249,2254
>       if ( --pulse_houseauc <= 0 )
>       {
>               pulse_houseauc = 1800 * PULSE_PER_SECOND;
>               homebuy_update(  );
>       }
> 
2132a2280,2281
> /* Here's the hint update, remove if crashy crashy */
>               hint_update(  );
2144a2294,2302
> #ifdef MYSTARIC
>       if ( --casino_time <= 0 )
>       {
>               casino_time = PULSE_CASINO;
>               casino_update(  );
>       }
> #endif
> 
> 
2150a2309
>       mpsleep_update(  );     /* Check for sleeping mud progs -rkb */
2366,2367c2525,2530
<                               sprintf( buf, "The auctioneer pays you %s gold, charging an auction fee of %s.\n\r",
<                                       num_punct( pay ), num_punct( tax ) );
---
>                               /*
>                                * num_punct no longer supports 2 on one line -Shaddai 
>                                */
>                               ch_printf( auction->seller, "The auctioneer pays you %s gold, charging an auction fee of ",
>                                       num_punct( pay ) );
>                               ch_printf( auction->seller, "%s.\n\r", num_punct( tax ) );
2378c2541
<                               sprintf( buf, "No bids received for %s - removed from auction.\n\r", auction->item->short_descr );
---
>                               sprintf( buf, "No bids received for %s - removed from auction.", auction->item->short_descr );
2785c2948
<                                       "The falling turns to freezing rain " "amidst flashes of " "lightning.\n\r",
---
>                                       "The falling snow turns to freezing rain " "amidst flashes of " "lightning.\n\r",
2968a3132,3155
> 
> 
> void hint_update(  )
> {
>       DESCRIPTOR_DATA *d;
> 
>       if ( time_info.hour % 1 == 0 )
>       {
>               for ( d = first_descriptor; d; d = d->next )
>               {
>                       if ( d->connected == CON_PLAYING && IS_AWAKE( d->character ) && d->character->pcdata )
>                       {
>                               if ( IS_SET( d->character->pcdata->flags, PCFLAG_HINTS ) && number_bits( 1 ) == 0 )
>                               {
>                                       if ( d->character->level > 50 )
>                                               ch_printf_color( d->character, "&p( &wHINT&p ):  &P%s\n\r", get_hint( 50 ) );
>                                       else
>                                               ch_printf_color( d->character, "&p( &wHINT&p ):  &P%s\n\r", get_hint( d->character->level ) );
>                               }
>                       }
>               }
>       }
>       return;
> }