/* Purify poisoned and diseased food and drink containers. Give those healer */ /* types something else useful to do. */ /* Use it if you wish and modify it if you wish, but please let me know if */ /* you use it and how well it works for you. You need not give me credit, */ /* but as always do not credit yourself for work you do not do. Thanks, Creo */ PLACE IN: act_obj.c /* Creodin for Acasaid 2001 */ void do_purify (CHAR_DATA * ch, char *argument) { OBJ_DATA *obj; int skill; /* find out what */ if (argument[0] == '\0') { send_to_char ("Purify what food or drink?\n\r", ch); return; } obj = get_obj_list (ch, argument, ch->carrying); if (obj == NULL) { send_to_char ("You don't have that item.\n\r", ch); return; } if ((skill = get_skill (ch, gsn_purify)) < 1) { send_to_char("Thats an issue you may wish to take up with your patron.\n\r", ch); return; } if (obj->item_type == ITEM_FOOD || obj->item_type == ITEM_DRINK_CON) { if (number_percent () < skill) { act ("$n calls upon $s deity to purify $p.", ch, obj, NULL, TO_ROOM); act ("You call upon your deity to purify $p.", ch, obj, NULL, TO_CHAR); obj->value[3] = 0; check_improve (ch, gsn_purify, TRUE, 4); WAIT_STATE (ch, skill_table[gsn_purify].beats); ch->mana -= 10; return; } else { act ("You fail to purify $p.", ch, obj, NULL, TO_CHAR); check_improve (ch, gsn_purify, FALSE, 3); WAIT_STATE (ch, skill_table[gsn_purify].beats); ch->mana -= 10; return; } } } PLACE IN: const.c { "purify", {53, 53}, {1, 1}, spell_null, TAR_IGNORE, POS_RESTING, &gsn_purify, SLOT (0), 0, 36, "", "!Purify!", "", CT_SKILL }, PLACE IN: db.c sh_int gsn_purify; PLACE IN: interp.c {"purify", do_purify, POS_RESTING, 0, LOG_NORMAL, 0, 0}, PLACE IN: interp.h DECLARE_DO_EXFUN( do_purify ); PLACE IN: merc.h extern sh_int gsn_purify; /* Remember to increase MAX_SKILL, compile and it should work fine - Creodin */