Re: Breathing

From: Peter Ajamian (
Date: 02/14/00

Dave Ely wrote:
> Hello, I have played a MUD where you basically breathed.  If you moved too fast you ran out of breath.  I'm trying to Imp that and getting stuck.  Here's what I have already.
> Theory of how it should work, I think.  Basically every char will have a value for breath at 100, every second or so, it will add a # to breath if it's less than 100.  When a move is performed, it will subtract a # from breath.  so.. following this logic of lack of.  I move, I lose 5 from breath, pulse, I get 5 back, my breath is 100.  I move move move move move, I lose 25 from breath, pulse, I get 5 back, my breath is 80.
Hrmmm, sounds a lot like Movement Points to me.

> If anyone can Help I'd apprecitate it.  Also, I want to add in a Stamina Attribute that will affect breath, but need help with putting in new attributes so their in all the proper places.
The best thing I can tell you is to grep for existing attributes (HP,
MP, AC, etc...) and add stuff everywhere you see stuff for the existing

> (the followingn should just keep adding 5 to breath every second, and I have it added to prompt to show, but I cant get past login name, never asks for pword)
> in act.movement.c
> void perform_breath(void)
> {
>   struct char_data *ch;
>   for (ch = character_list; ch; ch->next)
>     GET_BREATH(ch) += 5;
> }
> in comm.c
> if (!(pulse % PULSE_BREATH))
>   perform_breath();
> in structs.h
> #define PULSE_BREATH    (1 RL_SEC)
> (in player section)
> int breath;
1.  `int breath;' needs to go into struct char_data.

2.  You'll have to initialize breath to 80 everytime a player logs in or
that player will immediately be out of breath.

> utils.h
> #define GET_BREATH(ch)  ((ch)->breath)

PS.  Please set your email client to wrap lines at 70 characters or so.

Regards, Peter

     | Ensure that you have read the CircleMUD Mailing List FAQ:  |
     |  |

This archive was generated by hypermail 2b30 : 04/10/01 PDT