In Spells.h: add in the SPELL_CORPSE_HOST ?? In handler.c: In function affect_remove after if (ch->affected == NULL) { core_dump(); return; } add /* return corpse host people to their proper bodies */ if (af->type = SPELL_CORPSE_HOST && ch->desc && ch->desc->original) { command_interpreter(ch, "return"); die(ch); } affect_modify(ch, af->location, af->modifier, af->bitvector, FALSE); REMOVE_FROM_LIST(af, ch->affected, next); free(af); affect_total(ch); } In Fight.c in function damage() add this bit of code so the players body can still be killed when they are away. search for this line: /* Help out poor linkless people who are attacked */ and change below to include this: if (!IS_NPC(victim) && !(victim->desc) && !affected_by_spell(victim, SPELL_CORPSE_HOST)) { do_flee(victim, NULL, 0, 0); if (!FIGHTING(victim)) { act("$n is rescued by divine forces.", FALSE, victim, 0, 0, TO_ROOM); GET_WAS_IN(victim) = victim->in_room; char_from_room(victim); char_to_room(victim, 0); } } Then in act.wizard.c: In function do_return after STATE(ch->desc->original->desc) = CON_DISCONNECT; add if (affected_by_spell(ch->desc->original, SPELL_CORPSE_HOST)) affect_from_char(ch->desc->original, SPELL_CORPSE_HOST); In function do_return after ch->desc = NULL; add if (affected_by_spell(ch, SPELL_CORPSE_HOST)) die(ch); #define MOB_CORPSE_HOST 11 ASPELL(spell_corpse_host) { struct affected_type af; struct char_data *mob; int i; if ((obj == NULL) || !IS_CORPSE(obj)) { send_to_char("Thats not what you need to be concentrating on.\r\n", ch); return; } mob = read_mobile(MOB_CORPSE_HOST, VIRTUAL); char_to_room(mob, ch->in_room); mob->player.name = "Ju-Ju Zombie\r\n"; mob->player.long_descr = "a Ju-Ju Zombie is standing here.\r\n"; mob->player.short_descr = "a Ju-Ju Zombie"; GET_LEVEL(mob) = GET_LEVEL(ch); GET_MAX_MANA(mob) = GET_MAX_MANA(ch); GET_MANA(mob) = GET_MANA(ch); GET_MAX_HIT(mob) = GET_MAX_HIT(ch); GET_HIT(mob) = GET_HIT(ch); GET_INT(mob) = GET_INT(ch); GET_WIS(mob) = GET_WIS(ch); GET_STR(mob) = 18; GET_CON(mob) = 15; GET_CHA(mob) = 3; GET_DEX(mob) = 8; GET_RACE(mob) = GET_RACE(ch); /* If you want I can show you how to make this same race as mob was */ extract_obj(obj); af.type = SPELL_CORPSE_HOST; af.duration = (GET_INT(ch) + GET_CON(ch) + GET_WIS(ch)) / 3; af.modifier = 0; af.location = 0; affect_to_char(mob, &af); affect_to_char(ch, &af); ch->desc->character = mob; mob->desc = ch->desc; ch->desc = NULL; } Purpose: Allows necromantic wizards or priests to enter a corpse' body and wander the world in it for a short time exploring and fighting and all manner of things. Obviously this spell can be used for evil,but it can also be used to infiltrate an enemy necromancers home and pose as a ju-ju zombie guarding his home and then kill or steal from the mage or priest. The possibilities for this spell being one of the greatest role-playing elements is phenomenal and with the use of illusion or polymorphing spells(I suggest not allowing polymorphing) a player may be concealed by a friend and then walk the town normally without worry of undead fearing people. NOTE: this spell should not make a player considered UNDEAD as it is a true soul possessing the body and not a misshapen spirit forced into obedience. Any questions can be directed to bobat94@ix.netcom.com Also note I use affected_by_spell instead of a flag. This is to try saving space in the aff_flags area for people who don't use the 128 bit flags. Justin P.