Re: Getting rid of cursed items

From: Bart Lauwers (Bart.Lauwers@rug.ac.be)
Date: 03/19/95


On Sun, 19 Mar 1995, Kirby Vandivort wrote:
> the cursed ones?  I've tried the remove curse spell, but it doesn't do anything.

well I'm not promissing anything and not saying this should work...
 "he who fits the shoe wear it.", but it works fine like this in a 
version I used to run.

change the following line in spell_parser.c

spello(SPELL_REMOVE_CURSE, X, 26, X, X, 45, 25, 5,
       POS_STANDING, TAR_CHAR_ROOM | TAR_OBJ_INV, FALSE, MAG_UNAFFECTS | 
       MAG_MANUAL);

around line 382 add an extra case, namely:
case SPELL_REMOVE_CURSE:
  MANUAL_SPELL(spell_remove_curse);
  break;

and in magic.c add something like the following to mag_alter_objs

switch(spellnum) ....

case SPELL_REMOVE_CURSE:
  if (IS_OBJ_STAT(obj, ITEM_NODROP)) {
    REMOVE_BIT(obj->obj_flags.extra_flags, ITEM_NODROP);
    to_char = "$p glows briefly blue.";
    }
  break;

finaly add the floowing block to spells.c

ASPELL(spell_remove_curse)
{
 int i;

 if (ch == NULL || obj == NULL)
   return;

 if (IS_OBJ_STAT(obj, ITEM_NODROP)) {

   REMOVE_BIT(GET_OBJ_EXTRA(obj), ITEM_NODROP);
   if (IS_SET(GET_ONJ_EXTRA(obj), ITEM_MAGIC))
     REMOVE_BIT(GET_OBJ_EXTRA(obj), ITEM_NODROP);

  act("$p glows briefly blue.", FALSE, ch, obj, 0, TO_CHAR);
 }
 else act("$p wasn't cursed.", FALSE, ch, obj, 0, TO_CHAR);
}


 now like I said I know this works on a running mud as a good remove curse
(if I haven't overlooked anything) anyways this should be close enough for
anyone to complete it if it shouldn't work.

B.



This archive was generated by hypermail 2b30 : 12/07/00 PST