From: FRiTZ <fritz1@swbell.net>

O.k.. while I was on Arkriss Last night, then went to Dennys (yea, only
place open at 2am, with half-assed decent food) I thought about bounty
code, I liked that idea, and so heres my version of the bounty command. 
After all I used a few snippetts I found floating around, so here's my
contrib..
I changed this a little, and now have it set up to be in a certain
room(the flag ROOM_BOUNTY_OFFICE), but that's up to you, and easy to
add..


MERC.H
------
under struct pc_data
add:

int					bounty;


SAVE.C
------
Under void fwrite_char()

fprintf( fp, "Bounty %d\n",	ch->pcdata->bounty  );

I put this under the line :
fprintf( fp, "Titl %s~\n",	ch->pcdata->title	);
but it shouldn't matter anywhere in there should do nicely..

Under bool load_char_obj()
I added the following line just after the title stuff again:

ch->pcdata->bounty			= 0;

Under fread_char()
find case 'B':, and in there add:

KEY( "Bounty",  ch->pcdata->bounty,	fread_number( fp ) );



FIGHT.C
-------
Under Pay off for killing things in bool damage()
I put it just after the wiznet stuff..

if (!IS_NPC(ch)
&& !IS_NPC(victim)
&& victim->pcdata->bounty > 0)
{
    sprintf(buf,"You recive a %d gold bounty, for killing %s.\n\r",
    victim->pcdata->bounty, victim->name);
    send_to_char(buf, ch);
    ch->gold += victim->pcdata->bounty;
    victim->pcdata->bounty =0;
}


ANY FILE
--------

MAIN FUNCTION
-------------
/*
 *I put this in act_comm.c but you can stick it anywhere
 */

void do_bounty( CHAR_DATA *ch, char *argument )
{
    char arg1 [MAX_INPUT_LENGTH];
    char arg2 [MAX_INPUT_LENGTH];
    char buf[MAX_STRING_LENGTH];
    CHAR_DATA *victim;

    argument = one_argument( argument, arg1 );
    argument = one_argument( argument, arg2 );
	
    
	if ( arg1[0] == '\0' || arg2[0] == '\0' )
        {
	     send_to_char( "Place a bounty on who's head?\n\rSyntax: Bounty
<victim> <amount>\n\r", ch );
             return;
        }
	
        if ( ( victim = get_char_world( ch, arg1 ) ) == NULL)
	{
  	   send_to_char( "They are currently not logged in!", ch );
	   return;
        }
  
      if (IS_NPC(victim))
      {
	send_to_char( "You cannot put a bounty on NPCs!", ch );
	return;
      }

	if ( is_number( arg2 ) )
        {
	int amount;
	amount   = atoi(arg2);
        if (ch->gold < amount)
        {
		send_to_char( "You don't have that much gold!", ch );
		return;
        }
	ch->gold -= amount;
	victim->pcdata->bounty +=amount;
	sprintf( buf, "You have placed a %d gold bounty on %s{g.\n\r%s now has
a bounty of %d gold.",
	amount,victim->name,victim->name,victim->pcdata->bounty );
	send_to_char(buf,ch);
	return;
	}
}


And don't forget to add it to your interpet.c and interpet.h files.

FRiTZ
fritz1@swbell.net


/*
 =============================================================================
/   ______ _______ ____   _____   ___ __    _ ______    ____  ____   _____   /
\  |  ____|__   __|  _ \ / ____\ / _ \| \  / |  ____|  / __ \|  _ \ / ____\  \
/  | |__     | |  | |_| | |     | |_| | |\/| | |___   | |  | | |_| | |       /
/  | ___|    | |  | ___/| |   __|  _  | |  | | ____|  | |  | |  __/| |   ___ \
\  | |       | |  | |   | |___| | | | | |  | | |____  | |__| | |\ \| |___| | /
/  |_|       |_|  |_|  o \_____/|_| |_|_|  |_|______|o \____/|_| \_|\_____/  \
\                                                                            /
 ============================================================================

------------------------------------------------------------------------------
ftp://ftp.game.org/pub/mud      FTP.GAME.ORG      http://www.game.org/ftpsite/
------------------------------------------------------------------------------

  This file came from FTP.GAME.ORG, the ultimate source for MUD resources.

------------------------------------------------------------------------------

*/