interp.h add the following:
DECLARE_DO_FUN( do_award        );
--------------------------------------------------------------------------------
interp.c add the following:
{ "award",                 do_award,       POS_DEAD,       IM, LOG_ALWAYS, 1 }, 
--------------------------------------------------------------------------------

/***********************************************************************
 * Award  was written by Robbert of The Inquisition MUD.  Use of this  *
 * code is held to the same licensing agreements of ROM, Diku, et al.  *
 * If you use this code, either in its entirety or as a basis for      *
 * something of your own, this header must be included with the file.  *
 ***********************************************************************/ 

void do_award(CHAR_DATA *ch, char *argument)
/*
 *Written by Robbert for The Inquisition!
 *webmaster@theinquisition.net
 */

{
   CHAR_DATA *victim;
   char buf [MAX_STRING_LENGTH];
   char arg1 [MAX_STRING_LENGTH];
   char arg2 [MAX_STRING_LENGTH];
   int value;

   argument = one_argument( argument, arg1 );
   argument = one_argument( argument, arg2 );

   if ( arg1[0] == '\0' || arg2[0] == '\0' || !is_number( arg2 ) )
   {
     send_to_char( "Syntax:award <char> <QP>.\n\r", ch);
     return;
   }
    
   if (( victim = get_char_world ( ch, arg1 ) ) == NULL )
   {
     send_to_char( "That player is not here.\n\r", ch);
     return;
   }

   if ( IS_NPC( victim ) )
   {
     send_to_char( "Not on NPC's!\n\r", ch);
     return;   
    }

   if ( ch == victim )
   {
     send_to_char( "You may not award yourself!", ch );
     return;
   }

   if (IS_IMMORTAL(victim) || victim->level >= LEVEL_IMMORTAL)
   {
     send_to_char( "You cannot award an immortal!\n\r", ch );
     return;
   }
   value = atoi( arg2 );

   if ( value < -10 || value > 10 )
   {
     send_to_char( "Award range is -10 to 10.\n\r", ch );
     return;
   }

   if ( value == 0 )
   {
     send_to_char( "Value cannot be 0.\n\r", ch );
     return;
   }

   sprintf( buf, "{wYou have awarded %s {Y%d{w Quest Points!\n\r",
 victim->name );
      send_to_char(buf, ch);
                             
        if ( value >0 )
   {
     victim->questpoints += value;
     sprintf( buf, "{wYou have been awarded {Y%d{w Quest Points by  %s!\n\r",
 value, ch->name );
      send_to_char( buf, victim );
        do_save(victim, "");
     sprintf( buf, "{R$N awards %d Quest Points to %s{x", value, victim->name);
        wiznet(buf,ch,NULL,WIZ_PENALTIES,WIZ_SECURE,0);
   }
   else
  {
     victim->questpoints += value;
     sprintf( buf, "{wYou have been penalized {Y%d{w Quest Points by
%s!\n\r", value, ch->name );
      send_to_char( buf, victim );
        do_save(victim, "");
     sprintf( buf, "$N penalizes %s %d Quest Points.", victim->name, value );
         wiznet(buf,ch,NULL,WIZ_PENALTIES,WIZ_SECURE,0);
   }
    return;
}     

