/**************************************************************
 *  Award Snippet v2...                                       *
 *  This one has everything from experience to questpoints... *
 *  unlike my previous one...  If your interested in if this  *
 *  works or not, I can prove it to you if you log onto       *
 *  teno.d2g.com:5000... If you have any problems, or you     *
 *  just want to critisize my work... you can contact me by   *
 *    Email : mikky999@attbi.com                              *
 *    AIM : Mikado Rose 999                                   *
 *    ICQ : 72807381                                          *
 *    MUD : teno.d2g.com:5000                                 *
 *************************************************************/

/*******************************************************
 *                                                     *
 * This should be easy enough to add, but, as I said,  *
 * if you have any problems, I will be more than happy *
 * to help you, contact me with the above information  *
 *                                                     *
 *******************************************************
 *                                                     *
 * I reworked it, so you don't have to add half as     *
 * much as you did in the old snippet... but, you can  *
 * still do it the tedious way if you want.  Also, for *
 * the less experienced coders... I have added the     *
 * interp.c/h information needed at the bottom...  but *
 * if you know how already, do it now.                 *
 *                                                     *
 *******************************************************
 *                                                     *
 * And yes, this does use Lopes color code... and      *
 * Vassago's Quest Code... so, if you dont have either *
 * take out the color calls, or comment out the qps    *
 * stuff... otherwise... It SHOULD be easy to add...   *
 *                                                     *
 ******************************************************/

// In act_wiz.c, add this at the bottom.

void do_award(CHAR_DATA *ch, char *argument)
{
  CHAR_DATA *victim;
  char buf  [MAX_STRING_LENGTH];
  char arg1 [MAX_STRING_LENGTH];
  char arg2 [MAX_STRING_LENGTH];
  char arg3 [MAX_STRING_LENGTH];
  int value;

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

  if ( arg1[0] == '\0' || arg2[0] == '\0' || arg3[0] == '\0' || !is_number( arg3 ) )
  {
    send_to_char( "{GS{gynta{Gx{y: {Yaward {y<{Ychar{y> <{Ytype{y> <{Yvalue{y>.{x\n\r", ch);
    send_to_char( "{GT{gype{Gs a{gr{Ge{y: {Wplatinum{w, {Wexperience{w,{x\n\r",ch);
    send_to_char( "           {Wpractice{w,{W train{w, {Wqps{w, {Wiqps{x\n\r",ch);
    send_to_char( "{wFor more information, type {W'{DHELP AWARD{W'{w.{x\n\r",ch);
    return;
  }

  if (( victim = get_char_world ( ch, arg1 ) ) == NULL )
  {
    send_to_char( "{RCannot find {rtarget {Rplayer{R.{x\n\r", ch);
    return;
  }

  if ( IS_NPC( victim ) )
  {
    send_to_char( "{RNot on {rNPC's{R!{x\n\r", ch);
    return;
  }

  if ( ch == victim )
  {
    send_to_char( "{RSorry, no awarding {ryourself{R!{x", ch );
    return;
  }

  if (IS_IMMORTAL(victim) || victim->level >= LEVEL_IMMORTAL)
  {
    send_to_char( "{RImmortals cannot be {rawarded{R!{x\n\r", ch );
    return;
  }

  if (is_name(arg2, "platinum"))
  {
    value = atoi( arg3 );

    if (value < -1000 || value > 1000 )
    {
      send_to_char( "{wAcceptable values are between {D-1000 {wand {W1000{w.{x\n\r", ch );
      return;
    }

    if (value == 0 )
    {
      send_to_char( "{WThat is fairly trivial, isn't it?{x\n\r", ch );
      return;
    }

    victim->platinum += value;
    sprintf( buf,"{cYou have awarded {B%s{C %d {cplatinum.{x\n\r", victim->name, value );
    send_to_char(buf, ch);

    if ( value > 0 )
    {
      sprintf( buf,"{CYou have been awarded {c%d {Cplatinum!!{x\n\r", value );
      send_to_char( buf, victim );
      }
      else
      {
      sprintf( buf,"{cYou have been penalized {C%d {cplatinum!!{x.\n\r", value );
      send_to_char( buf, victim );
      return;
      }
    }

  else if (is_name(arg2, "experience") )
  {
    value = atoi( arg3 );

    if (value < -10000 || value > 10000 )
    {
      send_to_char( "{wAcceptable values are between {D-5000 {wand {W5000{w.{x\n\r", ch );
      return;
    }

    if (value == 0 )
    {
      send_to_char( "{WThat is fairly trivial, isn't it?{x\n\r", ch );
      return;
    }

    gain_exp(victim, value);
    sprintf( buf,"{cYou have awarded {B%s {C%d{c experience points.{x\n\r", victim->name, value);
    send_to_char(buf, ch);

    if ( value > 0 )
    {
      sprintf( buf,"{CYou have been awarded {c%d {Cexperience points.{x\n\r", value );
      send_to_char( buf, victim );
      }
      else
      {
      sprintf( buf,"{cYou have been penalized {C%d {cexperience points.{x\n\r", value );
      send_to_char( buf, victim );
      return;
      }
    }

  else if (is_name(arg2, "qps" ) )
  {
    value = atoi( arg3 );

    if (value < -5000 || value > 5000 )
    {
      send_to_char( "{wAcceptable values are between {D-5000 {wand {W5000{w.{x\n\r", ch );
      return;
    }

    if (value == 0 )
    {
      send_to_char( "{WThat is fairly trivial, isn't it?{x\n\r", ch );
      return;
    }

    victim->questpoints += value;
    sprintf( buf,"{cYou have awarded {B%s {C%d {cquest points.{x\n\r", victim->name, value);
    send_to_char(buf, ch);

    if ( value > 0 )
    {
      sprintf( buf,"{CYou have been awarded{c %d {Cquest points.{x\n\r", value );
      send_to_char( buf, victim );
      }
      else
      {
      sprintf( buf,"{cYou have been penalized {C%d{c quest points!{x\n\r", value );
      send_to_char( buf, victim );
      return;
      }
    }

  else if (is_name(arg2, "iqps" ) )
  {
    value = atoi( arg3 );

    if (value < -5 || value > 5 )
    {
      send_to_char( "{wAcceptable values are between {D-5 {wand {W5{w.{x\n\r", ch );
      return;
    }

    if (value == 0 )
    {
      send_to_char( "{WThat is fairly trivial, isn't it?{x\n\r", ch );
      return;
    }

    victim->qps += value;
    sprintf( buf,"{cYou have awarded {B%s {C%d {cImm quest points.{x\n\r", victim->name, value);
    send_to_char(buf, ch);

    if ( value > 0 )
    {
      sprintf( buf,"{CYou have been awarded{c %d {CImm quest points.{x\n\r", value );
      send_to_char( buf, victim );
      }
      else
      {
      sprintf( buf,"{cYou have been penalized {C%d{c Imm quest points!{x\n\r", value );
      send_to_char( buf, victim );
      return;
      }
    }

  else if (is_name(arg2, "prac practice" ) )
  {
    value = atoi( arg3 );

    if (value < -20 || value > 20 )
    {
      send_to_char( "{wAcceptable values are between {D-50 {wand {W50{w.{x\n\r", ch );
      return;
    }

    if (value == 0 )
    {
      send_to_char( "{WThat is fairly trivial, isn't it?{x\n\r", ch );
      return;
    }

    victim->practice += value;
    sprintf( buf,"{cYou have awarded {B%s {C%d {cpractices.{x\n\r", victim->name, value);
    send_to_char(buf, ch);

    if (value == 0 )
    {
      send_to_char( "{WThat is fairly trivial, isn't it?{x\n\r", ch );
      return;
    }

    victim->practice += value;
    sprintf( buf,"{cYou have awarded {B%s {C%d {cpractices.{x\n\r", victim->name, value);
    send_to_char(buf, ch);

    if ( value > 0 )
    {
      sprintf( buf,"{CYou have been awarded {c%d {Cpractices.{x\n\r", value );
      send_to_char( buf, victim );
      }
      else
      {
      sprintf( buf,"{RYou have been penalized %d prac(s).{x\n\r", value );
      send_to_char( buf, victim );
      return;
    }
  }

  else if (is_name(arg2, "train" ) )
  {
    value = atoi( arg3 );

    if (value < -20 || value > 20 )
    {
      send_to_char( "{wAcceptable values are between {D-5000 {wand {W5000{w.{x\n\r", ch );
      return;
    }

    if (value == 0 )
    {
      send_to_char( "{WThats fairly trivial, isn't it?{x\n\r", ch );
      return;
    }

    victim->train += value;
    sprintf( buf,"{cYou have awarded{B %s {C%d {ctrains.{x\n\r", victim->name, value);
    send_to_char(buf, ch);

    if ( value > 0 )
    {
      sprintf( buf,"{CYou have been awarded {c%d {Ctrains.{x\n\r", value );
      send_to_char( buf, victim );
      }
      else
      {
      sprintf( buf,"{cYou have been penalized{C %d {ctrains.{x\n\r", value );
      send_to_char( buf, victim );
      return;
    }
  }
  return;
}

// In interp.c, under the immortal commands, add :

    { "award",          do_award,       POS_DEAD,       L6,  1,  LOG_ALWAYS, 0 },

// In interp.h, under autostore, add this:

DECLARE_DO_FUN( do_award        );

//That should be it... If there is anything I missed... check the next release!