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. ------------------------------------------------------------------------------