// Destroy snippet made by Melker, no credit is needed.

IN ACT_OBJ.C add following:

void do_destroy( CHAR_DATA *ch, char *argument )
{

	char arg[MAX_INPUT_LENGTH];
	OBJ_DATA *obj;

	one_argument( argument, arg );

  if( arg[0] == '\0' )
    {
        send_to_char( "Destroy what?\n\r", ch );
        return;
    }

	if(IS_AFFECTED(ch, AFF_CHARM))
	 {
	  send_to_char("{cNoone can order you to destroy items.{x\n\r", ch );
	  return;
 }

    if((obj = get_obj_carry( ch, arg)) == NULL)
	 {
	  send_to_char("You do not have that item.\n\r", ch);
	  return;
 }

    if( !str_cmp( arg, "all") || !str_prefix( "all.", arg ))
    {
        send_to_char( "One item at a time please.\n\r", ch );
        return;
    }

	if(IS_OBJ_STAT(obj,ITEM_QUEST))
	    {
		send_to_char( "You can't destroy quest equipment.\n\r", ch);
		return;
    }

    if(!CAN_WEAR(obj,ITEM_TAKE))
	    {
		if(obj->timer)
		    SET_BIT(obj->extra_flags,ITEM_HAD_TIMER);
		else
		    obj->timer = number_range(100,200);
	    }

	    obj_from_char( obj );
	    extract_obj( obj );
	    act( "$p has been destroyed by $n.", ch, obj, NULL, TO_ROOM );
	    act( "$p has been destroyed!", ch, obj, NULL, TO_CHAR );

	    return;
}


IN INTERP.C add this:
{ "destroy",   do_destroy, 1, POS_STANDING 0, 1, LOG_NORMAL, 1 },

IN INTERP.H add this:
DECLARE_DO_FUN (do_destroy);