have you looked at the code for mag_summons() in magic.c????? If the animate_dead spell is mine, please tell me and I will forward my mag_summons. oh bloody hell, here ya go: void mag_summons(int level, struct char_data * ch, struct obj_data * obj, int spellnum, int savetype) { struct char_data *mob; struct obj_data *tobj, *next_obj; int pfail = 0; int msg = 0, fmsg = 0; int num = 1; int i; int mob_num = 0; int handle_corpse = 0; if (ch == NULL) return; switch (spellnum) { case SPELL_ANIMATE_DEAD: if ((obj == NULL) || (GET_OBJ_TYPE(obj) != ITEM_CONTAINER) || (!GET_OBJ_VAL(obj, 3))) { act(mag_summon_fail_msgs[7], FALSE, ch, 0, 0, TO_CHAR); return; } handle_corpse = 1; msg = 12; mob_num = MOB_SKELETON; pfail = 8; break; default: return; } if (IS_AFFECTED(ch, AFF_CHARM)) { send_to_char("You are too giddy to have any followers!\r\n", ch); return; } if (number(0, 101) < pfail) { send_to_char(mag_summon_fail_msgs[fmsg], ch); return; } for (i = 0; i < num; i++) { mob = read_mobile(mob_num, VIRTUAL); char_to_room(mob, ch->in_room); IS_CARRYING_W(mob) = 1000; IS_CARRYING_N(mob) = 100; GET_EXP(mob) = 0; REMOVE_BIT(MOB_FLAGS(mob), MOB_AGGRESSIVE); REMOVE_BIT(MOB_FLAGS(mob), MOB_SPEC); SET_BIT(mob->specials.affected_by, AFF_CHARM); add_follower(mob, ch); act(mag_summon_msgs[fmsg], FALSE, ch, 0, mob, TO_ROOM); if (spellnum == SPELL_CLONE) { strcpy(GET_NAME(mob), GET_NAME(ch)); strcpy(mob->player.short_descr, GET_NAME(ch)); } } if (handle_corpse) { for (tobj = obj->contains; tobj; tobj = next_obj) { next_obj = tobj->next_content; obj_from_obj(tobj); obj_to_char(tobj, mob); } extract_obj(obj); } } hmmm... just reminds me, I had better check the extract_obj() mem leak (corpse name strings) dodger +-----------------------------------------------------------+ | Ensure that you have read the CircleMUD Mailing List FAQ: | | http://cspo.queensu.ca/~fletcher/Circle/list_faq.html | +-----------------------------------------------------------+
This archive was generated by hypermail 2b30 : 12/07/00 PST