[Circle] [CIRLCE] [CODE]

From: Rasdan (thomas@mail.CS.ORST.EDU)
Date: 11/25/96


Well, I figure that I have gotten a few ideas from everyone here, so I
thought that I would include something that I have coded. Use it if you
want it :).

This is for a variation on the death code that comes with stock circle.
It's basic, but can be expanded (which I am currently in the process of
doing):

IMPLEMENTATION
--------------
	In structs.h, insert this line with the PLR_FLAGS.
#define PLR_SPECTRE           (1 << 16)  /* Player is a spectre, cannot do much */

********	 interpreter.c     ****************

   { "regen"	, POS_STANDING, do_not_here, 0, 0 },   
/* or you can write your own ACMD(regen), as I did, saying something Like you can
only do this at the life guy. */

Look for:
	if *(cmd_info[cmd].command == '\n')
   		send_to_char("Huh?!?\r\n", ch);               around line 743.

right below that, add these two lines:

  else if (PLR_FLAGGED(ch, PLR_SPECTRE) && cmd_info[cmd].minimum_level > 1)
    send_to_char("You are a spectre, you CAN'T do that!\r\n", ch);

*******		fight.c				***************

look for:

in void raw_kill(struct char_data *ch)

make_corpse(ch);                      around line 329.
extract_char(ch);

Remove extract_char and sub this instead:

SET_BIT(PLR_FLAGS(ch), PLR_SPECTRE);
        GET_HIT(ch) = 20;
        char_from_room(ch);
        char_to_room(ch, real_room(235));
send_to_char("You are a zombie and will remain that way until you\r\n", ch);
send_to_char("find the life dude and regen yourself. You must then\r\n", ch);
send_to_char("go after your corpse. The best of luck to you.\r\n", ch);


**********	spec_procs.c      **************

Add this function anywhere in the file:

SPECIAL(lifeman)
{

 if (IS_NPC(ch) || !CMD_IS("regen") || (!(IS_SET(PLR_FLAGS(ch), PLR_SPECTRE))))
        return 0;

        REMOVE_BIT(PLR_FLAGS(ch), PLR_SPECTRE);
        send_to_char("You now have your life back. Congrats.\r\n", ch);

        return 1;
}

***********   spec_assign.c        ***********
In the mob special procs, add this:

SPECIAL(lifeman);

ASSIGNMOB(#####, lifeman);              where ##### is the vnum of the mob
					that will do the lifeman special
					proc.


All you need to do now is go the Master Command List and change the levels
of some things to 1 that you don't a spectre doing. Have a blast!

Also, if you want, you can go into act.informative.c, and set it to
display via the look command if the player is dead, etc.


*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*
    Rasdan             ** FINALITY **
                   porter.cs.orst.edu 4000
      The last great adventure in mudding you'll ever play
*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*
Always remember: Be kind, please rewind!

+-----------------------------------------------------------+
| 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