Alright, I wrote up this file for any twisted coder who wants to either:

1. Use these for some kind of immortal war.
2. Wants to really screw up the game balance.
3. Has power hungry players and doesn't give a damn that they all kill each other.

So, if you really want to trash the world and start a killing frenzy, put these
out there. They are based off of the Fred Saberhagen Book of Swords books. In 
that world, the gods forged 12 swords of power and turned them lose on the world
for their own amusement. In the end, some of the gods got killed along with alot
of mortals. If you read through the whole series, the final book is a real joke
as it basically end up that the emperor is God/Jesus/Allah/insert deity and takes
all the cool players in the series to go live with him on the moon.

So, stick with all but the last 2 books, like 1st and 2nd Book of swords, and you
will be ok. If you wanna put this in, you got to know how to code for one, as we
had lots of extra variables and flags on our system, so it is not a drag and drop
item. I coded in one sword at a time, save for one (can't remember which) that I
never could get to work. These swords should be artifacts in the game, one of a 
kind. Of all of them, the Farslayer code could be used to make lightning bolt slays
for the immstaff. To use the special affect of the sword, if available, the USE 
command is used. Course you know to put the command in interp.c and interp.h, etc.
Anyone halfway decent with code could get this working over a weekend.

Ixliam - WOTL MUD  www.wotl.org
Founder, IMP, Coder, etc...

These things are not on our mud now, but were used on a Ghostmud/Rom 2.4b6 derived
mud. Use at your own risk.


/***************************************************************************
 *  Original Diku Mud copyright (C) 1990, 1991 by Sebastian Hammer,        *
 *  Michael Seifert, Hans Henrik St{rfeldt, Tom Madsen, and Katja Nyboe.   *
 *                                                                         *
 *  Merc Diku Mud improvments copyright (C) 1992, 1993 by Michael          *
 *  Chastain, Michael Quan, and Mitchell Tse.                              *
 *                                                                         *
 *  In order to use any part of this Merc Diku Mud, you must comply with   *
 *  both the original Diku license in 'license.doc' as well the Merc       *
 *  license in 'license.txt'.  In particular, you may not remove either of *
 *  these copyright notices.                                               *
 *                                                                         *
 *  Much time and thought has gone into this software and you are          *
 *  benefitting.  We hope that you share your changes too.  What goes      *
 *  around, comes around.                                                  *
 ***************************************************************************/

/***************************************************************************
*	ROM 2.4 is copyright 1993-1998 Russ Taylor			         *
*	ROM has been brought to you by the ROM consortium	       	   *
*	    Russ Taylor (rtaylor@hypercube.org)				         *
*	    Gabrielle Taylor (gtaylor@hypercube.org)			         *
*	    Brian Moore (zump@rom.org)					         *
*	By using this code, you have agreed to follow the terms of the	   *
*	ROM license, in the file Rom24/doc/rom.license			         *
*												   *
*  This snippet is copyright 2001 Brad Wilson. By using this code or any   *
*  part of it you agree to keep this part of the of the license in your    *
*  codebase.                                                               *
**************************************************************************/


/* Put this routine somewhere in your skill file */

void do_use (CHAR_DATA * ch, char *argument)
{
	char arg1[MAX_INPUT_LENGTH];
	char arg2[MAX_INPUT_LENGTH];
	CHAR_DATA *victim;
        CHAR_DATA *v_next;
        char buf[MAX_STRING_LENGTH];
	char *target_name;
	OBJ_DATA  *wield, *hold, *obj;
	int door;
     	AFFECT_DATA af;
	ROOM_INDEX_DATA *to_room;
    	EXIT_DATA *pexit;
    	EXIT_DATA *pexit_rev;


/*	if (IS_NPC (ch))
		return; */

	target_name = one_argument (argument, arg1);
	one_argument (target_name, arg2);

	if (arg1[0] == '\0') {
		send_to_char ("Use which what where?\n\r", ch);
		return;
	}


	/*
	 * Locate targets.
	 */
	victim = NULL;

	if ( arg2[0] == '\0' )
	    victim = ch;

wield = get_eq_char(ch,WEAR_WIELD);
hold = get_eq_char(ch, WEAR_HOLD);


if (wield != NULL && wield->pIndexData->vnum == OBJ_STONECUTTER && is_name(arg1, "stonecutter"))
{
    if (arg2[0] == '\0')
    {
        send_to_char("Slice open which door?\n\r",ch);
        return;
    }

    if (ch->move < 5)
    {
        send_to_char("You are too exhausted.\n\r",ch);
	return;
    }

    if ( (door = find_door(ch,arg2) ) >= 0)
    {

    pexit = ch->in_room->exit[door];
    if (!IS_SET(pexit->exit_info,EX_CLOSED))
    {
        send_to_char("It's not closed.\n\r",ch);
        return;
    }

    if (!IS_SET(pexit->exit_info,EX_LOCKED))
    {
        send_to_char("It's already unlocked, why not just use the knob?\n\r",ch);
        return;
    }

    }
    act("$n cuts open the $T door with Stonecutter!",ch,0,dir_name[door],TO_ROOM);
    act("You slice open the $T door with Stonecutter!",ch,0,dir_name[door],TO_CHAR);
    WAIT_STATE(ch,12);
    REMOVE_BIT(pexit->exit_info,EX_LOCKED);
    REMOVE_BIT(pexit->exit_info,EX_CLOSED);

    if ( ( (to_room = pexit->u1.to_room) != NULL)
    && ( pexit_rev = to_room->exit[rev_dir[door]] ) != NULL
    && pexit_rev->u1.to_room == ch->in_room)
        {
        REMOVE_BIT(pexit_rev->exit_info,EX_LOCKED);
        REMOVE_BIT(pexit_rev->exit_info,EX_CLOSED);
        }

    if (number_percent() < get_curr_stat(ch,STAT_DEX))
        return;

/*
 * Affect to char so in move_char you relay the right move message, then
 *  strip affect once moved.
 */
    af.where = TO_AFFECTS;
    af.type = gsn_door_bash;
    af.location = 0;
    af.modifier = 0;
    af.duration = -1;
    af.bitvector = 0;
    af.level = ch->level;
    affect_to_char(ch,&af);

    move_char(ch,door,FALSE);
    affect_strip(ch,gsn_door_bash);
    return;
}


	if ( (victim = get_char_world( ch, arg2 ) ) == NULL )
        {
		send_to_char( "{RThey aren't here.{x\n\r", ch );
		return;
        }


	if (hold != NULL && hold->pIndexData->vnum == OBJ_WOUNDHEALER && is_name(arg1, "woundhealer"))
	  {
             act("{Y$n thrusts Woundhealer, the Sword of Mercy into your chest!{x\n\r",ch,0,victim,TO_VICT);
             act("{Y$n thrusts Woundhealer, the Sword of Mercy into $N!{x\n\r",ch,0,victim,TO_NOTVICT);
             act("{YA bright glow shines forth from the Sword of Mercy.{x\n\r",ch,0,0,TO_ROOM);
             send_to_char ("{YYou thrust Woundhealer into their chest!{x\n\r", ch);
             spell_remove_curse (skill_lookup ("remove curse"), MAX_LEVEL+50, victim, victim, victim);
             spell_cure_blindness (skill_lookup ("cure blindness"), MAX_LEVEL+50, victim, victim, victim);
             spell_cure_blindness (skill_lookup ("cure blindness"), MAX_LEVEL+50, victim, victim, victim);
             spell_heal (skill_lookup ("heal"), MAX_LEVEL+50, victim, victim, victim);
             spell_cure_disease (skill_lookup ("cure disease"), MAX_LEVEL+50, victim, victim, victim);
             spell_heal (skill_lookup ("heal"), MAX_LEVEL+50, victim, victim, victim);
             spell_cure_disease (skill_lookup ("cure disease"), MAX_LEVEL+50, victim, victim, victim);
             spell_refresh (skill_lookup ("refresh"), MAX_LEVEL+50, victim, victim, victim);
             spell_cure_poison (skill_lookup ("cure poison"), MAX_LEVEL+50, victim, victim, victim);
	     spell_cancellation (skill_lookup ("cancellation"), MAX_LEVEL+50, victim, victim, victim);
	     return;
	  }

	else

	if (wield != NULL && wield->pIndexData->vnum == OBJ_MINDSWORD && is_name(arg1, "mindsword"))
	  {
		act( "$n raises the Mindsword into the air and a low roar fills the air!", ch, NULL, NULL, TO_ROOM );
		send_to_char("{yYou raise the Mindsword in the air and a low roar sounds forth!\n\r{x", ch);
		
		for (victim = char_list; victim != NULL; victim = v_next) 
		    {
			v_next = victim->next;
			if (victim->in_room == NULL)
				continue;
			if (victim->in_room == ch->in_room) 
				spell_charm_person( gsn_charm_person, 150, ch, victim,TARGET_CHAR);
		   	
			
		    }
	return;
	  }

	else

	if (wield != NULL && wield->pIndexData->vnum == OBJ_SOULCUTTER && is_name(arg1, "soulcutter"))
	  {
		act( "$n raises Soulcutter into the air, and a wave of hopelessness and depair hits you!", ch, NULL, NULL, TO_ROOM );
		send_to_char("{yYou raise Soulcutter into the air, and a wave of hopelessness and depair rolls over you!\n\r{x", ch);


		for (victim = char_list; victim != NULL; victim = v_next) 
		    {
			v_next = victim->next;
			if (victim->in_room == NULL)
				continue;
			if (victim->in_room == ch->in_room) {
			  if ( victim->fighting != NULL )
			  	stop_fighting( victim, TRUE );
			  
			if (IS_NPC(victim) && IS_SET(victim->act,ACT_AGGRESSIVE))
	   			REMOVE_BIT(victim->act,ACT_AGGRESSIVE);
	
	if (!is_affected(ch, gsn_despair) && ch != NULL)
        spell_despair (skill_lookup ("despair"), MAX_LEVEL+50, victim, victim, victim);
	if (check_dispel (200, victim, skill_lookup ("charm person"))) {
		act ("$n regains $s free will.", victim, NULL, NULL, TO_ROOM);}
			}
                 	
   }

    		return;
	  }

	else

	if (wield != NULL && wield->pIndexData->vnum == OBJ_FARSLAYER && is_name(arg1, "farslayer"))
        {
        if (!IS_NPC(victim))
	{
         act("$n swings Farslayer about and lets it fly!\n\r",ch,0,0,TO_ROOM);
         send_to_char ("{yYou swing Farslayer about and it flies from your hands!{x\n\r", ch);
	 sprintf (buf, "{Y%s cries, {G'For thy heart, for thy heart, who hast wronged me, {R%s{G!'{x", ch->name, victim->name );
	 do_echo (ch, buf);
	 sprintf (buf, "{YA howl fills the air as a sword followed by a rainbow flies through the air!{x\n\r");
    	 do_echo (ch, buf);
	 obj_from_char(wield);
	 obj_to_room( wield, victim->in_room );

	obj = get_eq_char(victim, WEAR_WIELD);
	if (obj != NULL && obj->pIndexData->vnum == OBJ_SHIELDBREAKER)
	   {
             act("Shieldbreaker leaps into your hand and you strike down Farslayer!",ch,0,victim,TO_VICT);
             act("$N strikes at Farslayer with the Sword of Force, Shieldbreaker.",ch,0,victim,TO_NOTVICT);
             act("Farslayer explodes and shatters from the blow from Shieldbreaker!\n\r",ch,0,0,TO_ROOM);
	     extract_obj(wield);
             return;
	   }
         act("Farslayer slams through $n's chest, piercing $s heart!\n\r",victim,0,0,TO_ROOM);
	 sprintf (buf, "{YA sword slams into your chest, piercing your heart!\n\r");

	hold = get_eq_char(victim, WEAR_HOLD);
	if (hold != NULL && hold->pIndexData->vnum == OBJ_WOUNDHEALER)
	   {
             act("You thrust Woundhealer into your chest just in time, preventing your death!",ch,0,victim,TO_VICT);
             act("$N thrusts Woundhealer into $S chest just in time, preventing $s death!",ch,0,victim,TO_NOTVICT);
             act("Farslayer, the Sword of Vengance, falls to the ground.\n\r",ch,0,0,TO_ROOM);
             return;
	   }
	if (hold != NULL && hold->pIndexData->vnum == OBJ_WOUNDHEALER)
	 victim->hit = 0;
	 if (IS_IMMORTAL (victim))
	 	return;
	 act("{R$n has been KILLED!!!\n\r",victim,0,0,TO_ROOM);
         raw_kill(victim);
	 send_to_char ("{RYou have been KILLED!!!{x\n\r", victim);
	 sprintf (buf, "{y%s has been killed!{x\n\r", victim->name);
	 send_to_char (buf, ch);
	 return;
        }
	else
	{
	 send_to_char ("{yNot on NPC's!{x\n\r", ch);
	 return;
	}
	send_to_char ("{yYou aren't using or wielding that!{x\n\r", ch);
	return;
	}
	send_to_char ("{yYou aren't using or wielding that!{x\n\r", ch);
	return;
}



/************************************************************************/


/** Put this part in FIGHT.C right before where it does the damage for weapon
/** Types, i.e. electrical, poison, etc. I left a bit of the code below for ref.


			/* DRAGONSLICER */
        if (wield != NULL && wield->pIndexData->vnum == OBJ_DRAGONSLICER)
        {
        if (victim->race == race_lookup("dragon")
	|| victim->race == race_lookup("dracon")
	|| victim->race == race_lookup("dragonkin"))
	if ( number_percent() < (25 + bonus) ){
	  if ( number_percent() < (9 + bonus) )
            {
		act("$n's body suddenly crumples as $p is driven through $s heart!",
		victim,wield,0,TO_ROOM);
		raw_kill(victim);
		group_gain(ch, victim);
	        return;
            }
        else if (IS_SET(victim->affected_by, AFF_SANCTUARY) )
                {
                dam += (dam/2);  /* partiallyNegates sanc */
		bonus += 2;
		act("Your $p {Rbegins to emit a shrill cry!{x",ch,wield,victim,TO_CHAR);
		act("A $p {Remits a shrill cry!{x",ch,wield,victim,TO_VICT);
		act("A $p {Remits a shrill cry!{x",ch,wield,victim,TO_NOTVICT);
                }
        }
       }


/* sword of planes  and mace disruption .. go right before damage report*/
        if (wield != NULL && wield->pIndexData->vnum == OBJ_VNUM_SWORD_PLANES)
        {
        if (IS_NPC(victim) && ( IS_SET(victim->act,ACT_UNDEAD)
	|| is_name(victim->name,"demon")
	|| is_name(victim->name,"devil")
	|| is_name(victim->name,"soul")
	|| is_name(victim->name,"familiar")
        || is_name(victim->name,"golem") ) )
        {
	if ( number_percent() < 10 )
	  {if ( number_percent() < 10 )
            {
		act("$n's body suddenly crumples as $p draws $s lifeforce back to the outer planes!",
		victim,wield,0,TO_ROOM);
		act("Your body suddenly crumples as $p draws your lifeforce back to the outer planes{x!",
		ch,obj,victim,TO_VICT);
                victim->hit = 1;
                send_to_char( "{RYou have been KILLED!!\n\r\n\r{x", victim );
		raw_kill(victim);
		group_gain(ch, victim);
	        return;
            }
        else if (IS_SET(victim->affected_by, AFF_SANCTUARY) )
                {
                dam += (dam/2);  /* partiallyNegates sanc */
		act("$p {RFLARES{x and sears $N!",ch,wield,victim,TO_CHAR);
		act("$p {RFLARES{x and sears you!",ch,wield,victim,TO_VICT);
		act("$p {RFLARES{x and sears $N!",ch,wield,victim,TO_NOTVICT);
                }
        }}}


    if (wield != NULL && wield->pIndexData->vnum == OBJ_VNUM_MACE_DISRUPTION)
        {
          if (IS_NPC(victim)
           && ( IS_SET(victim->act,ACT_UNDEAD)) )
             {
	       if ( number_percent() < 10 )
	 	  {if ( number_percent() < 12 )
		    {
                     act("{g$N's body explodes under $n's {RMace {Dof {RDisruption{x!",ch,0,victim,TO_NOTVICT);
                     act("{g$N's body explodes under your {RMace {Dof {RDisruption{x!",ch,0,victim,TO_CHAR);
		act("Your body explodes under your {RMace {Dof {RDisruption{x!",ch,obj,victim,TO_VICT);
                victim->hit = 1;
                send_to_char( "{RYou have been KILLED!!\n\r\n\r{x", victim );
                     raw_kill(victim);
	             group_gain(ch, victim);
                     return;
                    }
                else if (IS_SET(victim->affected_by,AFF_SANCTUARY))
                    {
                     act("{g$n's {RMace {Dof {RDisruption {gglows with {YPOWER!{x",ch,0,victim,TO_NOTVICT);
                     act("{gYour {RMace {Dof {RDisruption {gglows with {YPOWER!{x",ch,0,victim,TO_CHAR);
                        dam += (3* dam/4);
                    }
             } }
        }



/*    SHIELDBREAKER */
        if ((wield != NULL) && wield->pIndexData->vnum == OBJ_SHIELDBREAKER)
	{
	  SET_BIT (wield->extra_flags, ITEM_NODROP);
	  ch->move -= 20;
	  ch->mana -= 10;
	   if (((obj = get_eq_char (victim, WEAR_WIELD)) == NULL) &&
		((obj = get_eq_char (victim, WEAR_SECONDARY)) == NULL) )      /* No weapon */
		{
		dam = 0;
		act("Shieldbreaker passes right through $N!",ch,wield,victim,TO_CHAR);
		act("Shieldbreaker passes right through you!",ch,wield,victim,TO_VICT);
		act("Shieldbreaker passes right through $N!",ch,wield,victim,TO_NOTVICT);
		}
           hold = get_eq_char(victim, WEAR_HOLD);
	   if ((hold != NULL) && (hold->pIndexData->vnum == OBJ_WOUNDHEALER))      /* Woundhealer */
		{
		dam = 0;
		obj_from_char (get_eq_char (ch, WEAR_WIELD));
		act("Shieldbreaker shatters as it hits Woundhealer, Sword of Mercy!",ch,wield,victim,TO_CHAR);
		act("Shieldbreaker shatters upon hitting Woundhealer, Sword of Mercy!",ch,wield,victim,TO_VICT);
		act("Shieldbreaker shatters as it hits Woundhealer, held by $N!",ch,wield,victim,TO_NOTVICT);
		act("A feeling of peace and calm comes over you!",ch,wield,victim,TO_CHAR);
		act("A feeling of peace and calm fills the air!",ch,wield,victim,TO_VICT);
		act("A feeling of peace and calm fills the air!",ch,wield,victim,TO_NOTVICT);
		return;
		}
       obj = get_eq_char(victim,WEAR_WIELD);
       if ((obj != NULL) && (wield->pIndexData->vnum == OBJ_SHIELDBREAKER))
	  {
 	   obj = get_eq_char(victim,WEAR_WIELD);
           if ((obj != NULL) && (wield->pIndexData->vnum == OBJ_SHIELDBREAKER))
	    {
		if (number_percent() < 6) /* destroy weap */
		  { act("$n's $p {Yis destroyed by Shieldbreaker!{x",
 		    victim,obj,0,TO_ROOM);
		    extract_obj(obj);
	          }
            else
		if ((number_percent() < 16) && ( (obj = get_eq_char(victim,WEAR_BODY)) != NULL))
		  { act("$n's $p {Yis destroyed by Shieldbreaker!{x",
 		    victim,obj,0,TO_ROOM);
		    extract_obj(obj);
	          }
            else
		if ((number_percent() < 21) && ( (obj = get_eq_char(victim,WEAR_ABOUT)) != NULL))
		  { act("$n's $p {Yis destroyed by Shieldbreaker!{x",
 		    victim,obj,0,TO_ROOM);
		    extract_obj(obj);
	          }
            else
		if ((number_percent() < 26) && ( (obj = get_eq_char(victim,WEAR_LEGS)) != NULL))
		  { act("$n's $p {Yis destroyed by Shieldbreaker!{x",
 		    victim,obj,0,TO_ROOM);
		    extract_obj(obj);
	          }
            else
		if ((number_percent() < 31) && ( (obj = get_eq_char(victim,WEAR_ARMS)) != NULL))
		  { act("$n's $p {Yis destroyed by Shieldbreaker!{x",
 		    victim,obj,0,TO_ROOM);
		    extract_obj(obj);
	          }
	    else
		if ((number_percent() < 36) && ( (obj = get_eq_char(victim,WEAR_SECONDARY)) != NULL))
		  { act("$n's $p {Yis destroyed by Shieldbreaker!{x",
 		    victim,obj,0,TO_ROOM);
		    extract_obj(hold);
	          }
	    else
		if (number_percent() < 6)
                  {
		   act("{Y$n's body suddenly crumples as Shieldbreaker is driven through $s heart!{x",
   		   victim,wield,0,TO_ROOM);
		   act("{YYour body suddenly crumples as Shieldbreaker is driven through your heart!{x",
		   ch,obj,victim,TO_VICT);
                   victim->hit = 1;
                   send_to_char( "{RYou have been KILLED!!\n\r\n\r{x", victim );
		   raw_kill(victim);
		   group_gain(ch, victim);
                   REMOVE_BIT (wield->extra_flags, ITEM_NODROP);
	           return;
	          }
	    else
		dam += dam;

	      }
         }

    }




/*  TOWNSAVER  */
     if ((wield != NULL) && (wield->pIndexData->vnum == OBJ_TOWNSAVER) &&
	 (ch->in_room->sector_type == SECT_CITY))
      {
       act("{YTownsaver, Sword of Fury {RS{rc{RR{re{RA{rm{Rs {Ywith {RP{ro{RW{re{RR!{x",victim,obj,0,TO_ROOM);
       act("{YTownsaver, Sword of Fury {RS{rc{RR{re{RA{rm{Rs {Ywith {RP{ro{RW{re{RR!{x",ch,obj,victim,TO_VICT);
       hold = get_eq_char(victim, WEAR_HOLD);
	    if ((number_percent() < 10) && (obj->pIndexData->vnum != OBJ_SHIELDBREAKER) &&
	       ((obj = get_eq_char(victim,WEAR_WIELD)) != NULL))
		  { act("$n's $p {Yis destroyed by Townsaver!{x",
 		    victim,obj,0,TO_ROOM);
		    act("{YYour $p {Yis destroyed by Townsaver!{x", ch,obj,victim,TO_VICT);
		    extract_obj(obj);
	          }
            else
		if ((number_percent() < 20) && ( (obj = get_eq_char(victim,WEAR_BODY)) != NULL))
		  { act("$n's $p {Yis destroyed by Townsaver!{x",
 		    victim,obj,0,TO_ROOM);
		    act("{YYour $p {Yis destroyed by Townsaver!{x", ch,obj,victim,TO_VICT);
		    extract_obj(obj);
	          }
            else
		if ((number_percent() < 40) && ( (obj = get_eq_char(victim,WEAR_LEGS)) != NULL))
		  { act("$n's $p {Yis destroyed by Townsaver!{x",
 		    victim,obj,0,TO_ROOM);
		    act("{YYour $p {Yis destroyed by Townsaver!{x", ch,obj,victim,TO_VICT);
		    extract_obj(obj);
	          }
            else
		if ((number_percent() < 35) && ( (obj = get_eq_char(victim,WEAR_ARMS)) != NULL))
		  { act("$n's $p {Yis destroyed by Townsaver!{x",
 		    victim,obj,0,TO_ROOM);
		    act("{YYour $p {Yis destroyed by Townsaver!{x", ch,obj,victim,TO_VICT);
		    extract_obj(obj);
	          }
	    else
		if ((number_percent() < 45) && ( (obj = get_eq_char(victim,WEAR_SECONDARY)) != NULL))
		  { act("$n's $p {Yis destroyed by Townsaver!{x",
 		    victim,obj,0,TO_ROOM);
		    act("{YYour $p {Yis destroyed by Townsaver!{x", ch,obj,victim,TO_VICT);
		    extract_obj(obj);
	          }
	    else
	        
                {
		act("{Y$n's body suddenly crumples as Townsaver is driven through $s heart!{x",
		victim,obj,0,TO_ROOM);
		act("{YYour body suddenly crumples as Townsaver is driven through your heart!{x",
		ch,obj,victim,TO_VICT);
                victim->hit = 1;
                send_to_char( "{RYou have been KILLED!!\n\r\n\r{x", victim );
		raw_kill(victim);
		group_gain(ch, victim);
                REMOVE_BIT (wield->extra_flags, ITEM_NODROP);
	        return;
	        }
	  
      }



	if ( !check_counter( ch, victim, dam, dt ) )
	        result = damage( ch, victim, dam, dt, dam_type, TRUE );

    else return;

	/* but do we have a funky weapon? */
	if (result && wield != NULL) {
		int dam;

		if (ch->fighting == victim && IS_WEAPON_STAT (wield, WEAPON_POISON)) {
			int level;
			AFFECT_DATA *poison, af;


			if ((poison = affect_find (wield->affected, gsn_poison)) == NULL)
				level = wield->level;
			else
				level = poison->level;

			if (!saves_spell (level / 2, victim, DAM_POISON)) {
				send_to_char ("You feel poison coursing through your veins.",
							  victim);
				act ("$n is poisoned by the venom on $p.",
					 victim, wield, NULL, TO_ROOM);


/**************************************************************************

add this in somewhere, make a gsn_despair for it.


void spell_despair (int sn, int level, CHAR_DATA * ch, void *vo, int target)
{
	CHAR_DATA *vch;
	AFFECT_DATA af;

		for (vch = ch->in_room->people; vch != NULL; vch = vch->next_in_room) {


			send_to_char ("A wave of hopelessness & despair passes over you.\n\r", vch);

			if (vch->fighting || vch->position == POS_FIGHTING)
				stop_fighting (vch, FALSE);


			af.where = TO_AFFECTS;
			af.type = sn;
			af.level = level;
			af.duration = level / 2;
			af.location = APPLY_STR;
			af.modifier = -1 * (level / 5);
			af.bitvector = gsn_despair;
			affect_to_char (vch, &af);
			af.where = TO_AFFECTS;
			af.type = sn;
			af.level = level;
			af.duration = level / 4;
			af.location = APPLY_HITROLL;
			affect_to_char (vch, &af);
			if (!IS_NPC (vch))
				af.modifier = -5;
			else
				af.modifier = -2;
			af.bitvector = gsn_despair;
			af.location = APPLY_DAMROLL;
			affect_to_char (vch, &af);
	 act( "$n falls to the ground in utter despair and hopelessness.", vch, NULL, NULL, TO_ROOM );
		}

}


/**********************************************************************************

in update.c void char_update

/* COINSPINNER */
carry = get_obj_carry(ch, "coinspinner", ch); 
wield = get_eq_char(ch, WEAR_WIELD);
hold = get_eq_char(ch, WEAR_HOLD);
room = 1204;

if ( (carry != NULL) ||
     (hold !=NULL && hold->pIndexData->vnum == OBJ_COINSPINNER) ||
     (wield != NULL && wield->pIndexData->vnum == OBJ_COINSPINNER))
if ( number_percent() < 4)
{
    switch (number_range(0,6))
    {
	default:  room = 1204; 	break;  /* Rooms for it to teleport to */
	case 0:	room = 1477;
		break;
	case 1: room = 9870;
		break;
	case 2: room = 5065;
		break;
	case 3: room = 5809;
		break;
	case 4: room = 5030;
		break;
	case 5: room = 3054;
		break;
	case 6: room = 32056;
		break;
    }
       	location = get_room_index (room);
	send_to_char("{YYou notice that Coinspinner has vanished!{x\n\r",ch);
        obj = get_obj_world(ch, "coinspinner");
	extract_obj (obj);
        obj = create_object(get_obj_index(OBJ_COINSPINNER),5);
	obj_to_room( obj, location ); 
}



add this in to update.c where it updates the poison damage.



	if (is_affected(ch, gsn_despair) && ch != NULL)
	{
	    AFFECT_DATA *despair, *af;
	    int dam;

	    despair = affect_find(ch->affected,gsn_despair);

	    if (despair != NULL)
	    {
	        act( "$n cries in agony from hopelessness and despair.", ch, NULL, NULL, TO_ROOM );
	        send_to_char( "You cry in agony from the despair and hopelessness of it all.\n\r", ch );
		dam = 20 + (af->level/5+1);
		if (ch->mana > 1)
			ch->mana -= dam;
		dam = 40 + (af->level/5+1);
		if (ch->move > 1)
			ch->move -= dam;
		dam = 15 + (ch->level/5+1);
	        damage(ch, ch, dam, gsn_despair, DAM_OTHER,FALSE);
	    }
	}

/*********************************
in act_obj.c    void do_put

    	if (obj->pIndexData->vnum == OBJ_COINSPINNER)
    	{
           send_to_char("It refuses to be hidden away.\n\r",ch);
           return;
      }

This way coinspinner can be teleporting and extract properly.

/********************************************************
in merc.h

#define OBJ_FARSLAYER			11000 <- Or whatever vnum you use.
#define OBJ_DRAGONSLICER		11001
#define OBJ_WOUNDHEALER			11002
#define OBJ_SHIELDBREAKER		11003
#define OBJ_MINDSWORD			11004
#define OBJ_WAYFINDER			11005
#define OBJ_COINSPINNER			11006
#define OBJ_SOULCUTTER			11007
#define OBJ_STONECUTTER			11008
#define OBJ_TOWNSAVER			11009
#define OBJ_DOOMGIVER			11010 

/****************************************************************

Here's my OBJ file section from the area I made. 

#OBJECTS
#11000
farslayer sword mithril black~
{DFarslayer, {wThe Sword of Vengance{x~
A {DBlack-Hilted {WMithril Sword{x with the symbol of a target on the hilt lies here.~
mithril~
weapon GOY ANP
exotic 10 20 pierce CDEF
5 100 0 P
E
farslayer~
The sword has the symbol of a target on the bottom of the black hilt,
with a 3' mithril blade.  Farslayer has the ability to kill it's foe at any
distance, anywhere.  The user will recite the phrase 'For thy heart, for thy
heart, who hast wronged me' and state the name of the victim.  Farslayer
will then fly from their hands, and kill the target instantly, save for
those who posess other means to defend themselves.  To activate this option,
WIELD FARSLAYER and then USE FARSLAYER <victim>.  
~
#11001
dragonslicer sword mithril black~
{RDragonslicer, {DSword {wof {DHeros{x~
A {DBlack-Hilted {WMithril Sword{x with the symbol of a dragon on the hilt lies here.~
mithril~
weapon GOY ANP
exotic 10 20 pierce CDEF
5 100 0 P
E
woundhealer~
A black hilted sword with a mithral blade, Woundhealer, though a sword,
is not quite a weapon.  Quite the opposite.  When stabbed into a body it
heals wounds that it is dragged through, leaving no sign the injury ever
occured.  It can also be used to prevent injury.  A man could stab himself
with Woundhealer and jump off a cliff, or fight while stabbed and any injury
would immediently heal itself.  Woundhealer is incapable of harming anyone,
despite the fact that it is a sword.  If it comes into contact with
Shieldbreaker in battle, Shieldbreaker would shatter, while Woundhealer
would be unharmed.  It can also prevent death from Farslayer be being
slammed into the chest before the sword strikes.  To use Woundhealer, do USE
WOUNDHEALER <victim>.  It will heal all wounds, cure all diseases, poisons,
etc.  
~
#11002
woundhealer sword mithril black~
{WWoundhealer, {RSword {wof {RMercy{x~
A {DBlack-Hilted {WMithril Sword{x with the symbol of a hand on the hilt lies here.~
mithril~
weapon GOY AOP
exotic 0 0 none 0
5 100 0 P
A
12 100
A
13 100
E
woundhealer~
A black hilted sword with a mithral blade, Woundhealer, though a sword,
is not quite a weapon.  Quite the opposite.  When stabbed into a body it
heals wounds that it is dragged through, leaving no sign the injury ever
occured.  It can also be used to prevent injury.  A man could stab himself
with Woundhealer and jump off a cliff, or fight while stabbed and any injury
would immediently heal itself.  Woundhealer is incapable of harming anyone,
despite the fact that it is a sword.  If it comes into contact with
Shieldbreaker in battle, Shieldbreaker would shatter, while Woundhealer
would be unharmed.  It can also prevent death from Farslayer be being
slammed into the chest before the sword strikes.  To use Woundhealer, do USE
WOUNDHEALER <victim>.  It will heal all wounds, cure all diseases, poisons,
etc.  
~
#11003
shieldbreaker sword mithril black~
{CShieldbreaker, {cSword {wof {cForce{x~
A {DBlack-Hilted {WMithril Sword{x with the symbol of a hammer on the hilt lies here.~
mithril~
weapon GMOY ANP
exotic 10 20 pierce CDEF
5 100 0 P
E
shieldbreaker~
A black hilted mithril bladed sword, Shieldbreaker has the symbol of a
hammer on its hilt.  Shieldbreaker is the ultimate weapon, as one person
wielding it could defeat and entire army.  It will defeat any weapon,
mundane of magical.  Shieldbreaker typically will shatter the weapon, and
then kill the opponent.  In the case of ranged weapons, it will shatter the
arrows in midair.  The downside is that Shieldbreaker cannot be dropped
while in battle, and it draws the users own energy to power its abilities. 
The sword is essentially glued to the wielder's hand, and attacks on it's
own, ignoring any attempt by the user to controll it.  A man could defeat an
army, but be mortally drained at the end.  Also, an unarmed opponent cannot
be harmed by Shieldbreaker.  Shieldbreaker will pass through them as if they
weren't there, leaving no mark.  All of the other swords are useless against
Shieldbreaker.  Wayfinder won't find it, and Farslayer would be shattered
upon hitting the wielder.  
~
#11004
mindsword glory skulltwister black mithril sword~
{BSk{Wul{Cltwi{Wst{Ber, {DThe Mindsword, {YSword {wof {YGlory{x~
A {DBlack-Hilted {WMithril Sword{x with the symbol of a banner on the hilt lies here.~
mithril~
weapon GOY ANP
exotic 10 20 pierce CDEF
5 100 0 P
E
skulltwister~
A black hilted sword with a mithril blade, the Mindsword has the symbol
of a banner on its hilt.  When used, the Mindsword causes all those around
the wielder to perceive the wielder at the ultimate lord.  They will
spontaneously walk up and pledge their undying loyalty to the wielder.  The
Sword must be wielded for the power to initiate, but the effects last for
awhile.  To use, wield Skulltwister and then USE MINDSWORD <victim>.  
~
#11005
wayfinder wisdom sword mithril black~
{GWayfinder, {rSword {wof {rWisdom{x~
A {DBlack-Hilted {WMithril Sword{x with the symbol of an arrow on the hilt lies here.~
mithril~
weapon GOY ANP
exotic 10 20 pierce DEF
5 100 0 P
A
3 7
A
4 7
E
wayfinder~
A black hilted sword with a mithril blade, Wayfinder, when asked a
specific question, will point the wielder to the answer.  It will tell you
what direction to travel or who to take with you, for example, by pulling
you towards the target.  If there is a task that must be done first, then it
will point towards that instead.  To use, see an IMP or an IMM.  This will
be a roleplay option.  
~
#11006
coinspinner sword mithril black~
{YC{yo{Yi{yn{Ys{yp{Yi{yn{Yn{ye{Yr{w, {GSword {wof {GChance{x~
A {DBlack-Hilted {WMithril Sword{x with the symbol of dice on the hilt lies here.~
mithril~
weapon GOY ANP
exotic 10 20 slash DEF
5 100 0 P
A
18 25
A
19 25
E
coinspinner~
A black-hilted mithril bladed sword with a pair of dice embossed on the
hilt, the Sword of Chance, Coinspinner, is perhaps the strangest sword of
all.  This sword makes the wearer unbelievably lucky, not only in games of
chance, but also in combat.  Coinspinner also has its own agenda as well, as
it may suddenly leave the wielder if it feels itself to be threatened, or
for no apparent reason.  No magical force or vault can hold it.  
~
#11007
soulcutter sword mithril black~
{DSoulcutter, {wSword {Dof {wDespair{x~
A {DBlack-Hilted {WMithril Sword{x lies here.~
mithril~
weapon GOY ANP
exotic 10 20 pierce CDEF
5 100 0 P
E
soulcutter~
A black hilted sword with a mithril blade, Soulcutter is known as the
Sword of Despair or the Tyrant's Blade.  When drawn, Soulcutter causes
total, incapacitation despair, starting with the wielder and spreading
throughout the field of battle.  Nothing seems worth the effort.  Whole
armies have been known to disarm under Soulcutter's influence.  When opposed
by the Mindsword, Soulcutter will prevail.  To use Soulcutter, do USE
SOULCUTTER <victim>.  
~
#11008
stonecutter sword mithril black~
{yStonecutter, {WSword {Dof {WSiege{x~
A {DBlack-Hilted {WMithril Sword{x with the symbol of a wedge splitting a block is here.~
mithril~
weapon GOY ANP
exotic 10 20 slice ADEF
5 100 0 P
A
14 200
E
stonecutter~
A Black-Hilted sword with a mithril blade, Stonecutter has the symbol of
a wedge splitting a block on its hilt.  Stonecutter will cut any kind of
stone, from diamonds to sandstone, with almost no effort.  Left point down
on any rock surface, it will gradually begin to sink in due to its own
effort.  Stonecutter is very effective against earth elementals, golems made
of stone or any stone-like creature.  To use Stonecutter to open doors, do
USE STONECUTTER <direction>.  This will destroy the door in that direction. 
~
#11009
townsaver sword mithril black~
{RTownsaver, {YSword {Dof {YFury{x~
A {DBlack-Hilted {WMithril Sword {xwith the symbol of a sword above a fortess wall lies here.~
mithril~
weapon GOY ANP
exotic 10 20 pierce ADEF
5 100 0 P
A
19 20
A
18 20
E
townsaver~
A Black-Hilted Mithril Sword with the symbol of a sword above a fortess
wall, Townsaver is the protector of cities.  Similar to Shieldbreaker,
Townsaver will only use its powers in a city, but it can destroy armor and
weapons, or kill the attackers outright.  
~
#11010
doombringer sword mithril black~
{W[{YGODLY{W] {RAsskicker {Yof {DDOOM{x~
A {DBlack-Hilted {WMithril Sword{x with a hollow circle on its hilt lies here.~
mithril~
weapon GOY ANP
exotic 10 20 pierce BDEF
5 100 0 P
F
I 0 -1 P
F
I 0 -1 T
F
I 0 -1 N
F
I 0 -1 M
F
I 0 -1 J
F
I 0 -1 K
F
I 0 -1 I
F
I 0 -1 H
F
I 0 -1 D
F
I 0 -1 C
F
A 0 -1 V
A
26 0
#11011
sightblinder sword mithril black~
{CS{ci{Cg{ch{Ct{cb{Cl{ci{Cn{cd{Ce{cr, {wSword {Dof {wStealth{x~
A {DBlack-Hilted {WMithril Sword {xwith the symbol of an eye on the hilt lies here.~
mithril~
weapon GOY ANP
exotic 10 20 slash ADEF
5 100 0 P
F
A 0 -1 G
F
A 0 -1 C
F
A 0 -1 E
F
A 0 -1 F
F
A 0 -1 D
F
A 0 -1 B
F
A 0 -1 P
E
sightblinder~
A Black-Hilted Mithril Sword with the symbol of an eye on the hilt,
Sightblinder is the friend of assassins and rogues.  When wielded and used,
Sightblinder will allow the user to become invisible to all but the gods,
and also see people and things as they truely are.  To use, just enter USE
SIGHTBLINDER.  
~

/*******************************************************************