Do we really want our players to be able to bribe with as much money as they want, regardless of how much they actually HAVE?
If you take a look at do_bribe, you'll notice that there's absolutely NO check for a player's money before allowing the bribe. You bribe 2.5Mil, you kill the mob, you get all the money back, even though you never really had it.
The fix is pretty simple:
if( victim->vip_flags == 0 )
send_to_char( "Diplomacy would be wasted on them.\n\r", ch );
Right after that piece, add in:
if( ch->gold < amount )
send_to_char( "You don't have that much money!\n\r", ch);
Instant amount < money ifcheck! :D