Before adding this code there are a few things
you must first do

-----------------------------------------------
1. Add the following to DB.C, inside "Globals : Other" 
   sh_int			gsn_skin;

2. Add the following to MUD.H, inside "Well Known Object Virtual Numbers" 
   #define OBJ_VNUM_SKIN 23 (23 Being the vnum for the skin-object)

3.  Same, only inside "Newer Attack Skills" 
    extern  sh_int  gsn_skin;

4.  Use sset to create the new skill (You need this even if it's a command) 
    sset create skill skin

5.  Then set-up the command using sset as you want it,
    Add it into the .class files for use with players, and Voila 

    (If you want skin to be a skill, just add it to the .class files later)

6.  Adding Skin as a command :

    a.  Type the following to add it while online:
        cedit skin create do_skin

    b.  Then all you need to do is write the help-file for it, and restrict it
        down to the appropriate level. Enjoy. 


_NOTE_

This skill is PKILL and IMMORTAL ONLY!

If you wish to make it useable by all players, remove or comment out the
line at the beginning of the code that reads:

  if ( !IS_PKILL(ch) && !IS_IMMORTAL(ch) )
{
    send_to_char( "Leave the hideous defilings to the killers!\n", ch );
    return;
}
	- Mirk, 1997

_MY FIX_

7.  Add the following inside of the function void make_corpse
    In the file makeobjs.c:

    a. After the line that reads:
               corpse->value[2] = (int)(corpse->timer/8);
    b.Add:     corpse->value[4] = 1;


-------------------------------------
Most of the following code was written by Mirk, I only added
the relavent code to prevent the deletion of corpse and EQ
upon someone skinning and still only allowing one skinning 
per corpse.
-------------------------------------


void do_skin( CHAR_DATA *ch, char *argument)
{
  OBJ_DATA *korps;
  OBJ_DATA *corpse;
  OBJ_DATA *obj;
  OBJ_DATA *skin;
  bool found;
  char *name;
  char buf[MAX_STRING_LENGTH];
  found = FALSE;

  if ( !IS_PKILL(ch) && !IS_IMMORTAL(ch) )
{
    send_to_char( "Leave the hideous defilings to the killers!\n", ch );
    return;
}
  if ( argument[0] == '\0' )
  {
   send_to_char("What corpse do you wish to skin?\n\r", ch);
   return;
  }
  if ( ( obj = get_eq_char( ch, WEAR_WIELD ) ) == NULL
  ||   ( obj->value[3] != 1 && obj->value[3] != 2 && obj->value[3] != 3
      && obj->value[3] != 11) )
  {
  send_to_char("You need to wield a sharp weapon.\n\r", ch);
  return;
  }

  if ( (corpse = get_obj_here( ch, argument )) == NULL)
  {
  send_to_char("You can't find that here.\n\r", ch);
  return;
  }

  if (corpse->item_type != ITEM_CORPSE_PC )
  {
    send_to_char("You can only skin the bodies of other players.\n\r", ch);
    return;
  }

  if(corpse->value[4] == 1)/*line added by Daht*/
  {
  korps = create_object(get_obj_index(OBJ_VNUM_CORPSE_PC), 0);
  skin                = create_object( get_obj_index(OBJ_VNUM_SKIN), 0 );
  name                = IS_NPC(ch) ? korps->short_descr : corpse->short_descr;

   sprintf( buf, skin->short_descr, name );
   STRFREE( skin->short_descr );
   skin->short_descr = STRALLOC( buf );

   sprintf( buf, skin->description, name );
   STRFREE( skin->description );
   skin->description = STRALLOC( buf );

   act( AT_BLOOD, "$n carves the skin from $p.", ch, corpse, NULL, TO_ROOM);
   act( AT_BLOOD, "You carve the skin from $p.", ch, corpse, NULL, TO_CHAR);
/*   act( AT_MAGIC, "\nThe skinless corpse is dragged through the ground by a stra
nge force...", ch,  corpse, NULL, TO_CHAR);
   act( AT_MAGIC, "\nThe skinless corpse is dragged through the ground by a stra
nge force...", ch, corpse, NULL, TO_ROOM); --rem by Daht no longer needed, corpse
is not deleted */

  obj_to_char( skin, ch );
  /*extract_obj( corpse );  rem by Daht , Don't want corpse deleted*/
  corpse->value[4] = 0;/* reset value to 0 to indicate it already has been skinned*/
  return;
  }
  send_to_char ("That corpse has already been skinned!\n\r", ch);
  return;/*final touches--Daht*/
}
            


 =============================================================================
/   ______ _______ ____   _____   ___ __    _ ______    ____  ____   _____   /
\  |  ____|__   __|  _ \ / ____\ / _ \| \  / |  ____|  / __ \|  _ \ / ____\  \
/  | |__     | |  | |_| | |     | |_| | |\/| | |___   | |  | | |_| | |       /
/  | ___|    | |  | ___/| |   __|  _  | |  | | ____|  | |  | |  __/| |   ___ \
\  | |       | |  | |   | |___| | | | | |  | | |____  | |__| | |\ \| |___| | /
/  |_|       |_|  |_|  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.

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