(Updated Code) Re: [Code] shadow/vampire SPECIAL

From: Jared Buckley (jaredb@TI.COM)
Date: 09/04/97


Co-Sysop wrote:
[snip]
>
> I was just wondering... If your shadows die when the sun comes up then
> wouldn't you have to reset the zone frequently?  If you didn't then there
> would hardly ever be any around.  Correct me if I'm wrong but it seems that
> killing them off that often would limit a players chance of ever seeing one.
> And if the players don't know its there then why have it?

I was/am? still a frequent player on Crystal Shard (crystal.shard.org
9000) and they did some cool stuff a few years back.  The imps were
tired of having a Midgaard just like everyone else, so they engineered
a plot to have a dragon scourge destroy it.  First they created a new
starting city and let it be discovered, and then slowly they began to
have the dragons assert their influence around Midgaard.  One night
they came through and just terrorized the town.  Next reload there
was nothing left but smoking ruins.  Very well done plot.

I decided to do something similar in my mud; the shadows are a
precursor to an as-yet unknown evil force.  They show up only at
night and terrorize anyone in Midgaard and then disappear again
when the sun rises.  (And this is just the beginning. ;) )  I don't
have it finished yet, but I intend to have a room special load the
mobs at night fall into a mob chute.

ObCircle:

The code I had earlier for the shadows was still buggy.  I've been
running this new code for several days now with no problems:

SPECIAL( shadow )
{

  struct char_data *npc;

  npc = me;  /* me is void ptr; needs char_data ptr in fn's below */

  if ( !MOB_FLAGGED( npc, MOB_SPEC ) )
    return( FALSE );

  /* Is it night or is the mob in a dark room? */
  if ( (time_info.hours < 6) || (time_info.hours > 20 ) ||
       IS_DARK( npc->in_room ) )
    {
    return( FALSE );
    }

  act( "$n hisses in agony and withers away as the sun hits $e!",
       FALSE, npc, 0, 0, TO_ROOM );
  GET_HIT( npc ) = -10;
  GET_POS( npc ) = POS_MORTALLYW;
  REMOVE_BIT(MOB_FLAGS( npc ), MOB_SPEC);

  return( FALSE );

}


     +------------------------------------------------------------+
     | Ensure that you have read the CircleMUD Mailing List FAQ:  |
     | http://democracy.queensu.ca/~fletcher/Circle/list-faq.html |
     +------------------------------------------------------------+



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