Re: [Circle] Graveyard Special Procedure

From: Erik (madison@nevada.edu)
Date: 11/08/96


  Rather than use a special procedure, change it a more specialized 
function, and call it from char_to_room. Or, add it to one of the update 
functions, that cycle every few ticks.


On Fri, 8 Nov 1996, Haddixx wrote:

> from the dead during the night if a player walks into the square.  The special
> procedure is placed on a corpse object and whenever a player enters the room
> it checks to see if a) it is buried and b) if it is in a GRAVEYARD room.
> The basic special procedure works the only problem it isn't activated
> until a player does something in the room.  For example, if a player walks
> into the room and then just sits there and does nothing then the special
> prcocedure isn't activated.  If the players types anything, then it gets
> activated.  Here is the basic code:
> 
> #define UNDEAD_BASE 50
> 
> SPECIAL(graveyard)
> {
>   struct char_data *mob;
>   struct obj_data *obj = (struct obj_data *) me;
>   int mob_num, fall_ch;
> 
>   if(ROOM_FLAGGED(ch->in_room, ROOM_GRAVEYARD))
>   {
>      if(IS_BURIED(obj) && weather_info.sunlight == SUN_DARK)
>      {
>         mob_num = UNDEAD_BASE;
>         mob = read_mobile(mob_num, VIRTUAL);
>         act("$p pushes up through the frozen soil!", FALSE, mob, obj, NULL,
> TO_ROOM);
>        IS_CARRYING_W(mob) = 0;
>         IS_CARRYING_N(mob) = 0; 
>         extract_obj(obj);
>         return(FALSE);   
>      }           
>   }
>   return(FALSE);      
> }
> 
> My question is how can I make the special procedure activate itself whenever
> the player enters the room and not relay on them entering a command?
> 
> -Haddixx
>  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
>  |     -=-=- AVALANCHE MUD -=-=-               | Haddixx               |
>  + Running at: 143.207.31.45 port 8000         + Brian M. Menges       +
>  | Imps: Haddixx [haddixx@megamed.com]         |                       |
>  +       Devon [cthompso@chat.carleton.ca]     +                       +
>  | Web Site: http://www.megamed.com/~haddixx   |                       |
>  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
> 
> 
> +-----------------------------------------------------------+
> | Ensure that you have read the CircleMUD Mailing List FAQ: |
> |   http://cspo.queensu.ca/~fletcher/Circle/list_faq.html   |
> +-----------------------------------------------------------+
> 
+-----------------------------------------------------------+
| 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/18/00 PST