Re: Player positions

From: Zeavon Calatin (zeavon@kilnar.com)
Date: 01/16/00


> well you could do that, but then you couldnt use:
> if (get_pos(ch) <= pos_xxx)
>
> so it poses minor problems, most notably that the player
> would be able to do
> anything in the position they could do standing, they could
> do meditating.
> there is no way to restrict it. have you ever seen someone
> fighting and
> meditating at the same time? how about walking around? i sure

Instead of using POS_ for things like that, I just used AFF_ flags for both
paralyzed and meditating. Works well and doesn't pose any of the problems
that have been discussed. To prevent people from doing things while
paralyzed or meditating, I did the following in interpreter.c under the
'broke' label:

  else if (AFF_FLAGGED(ch, AFF_PARALYZE) &&
           str_cmp(cmd_info[cmd].command, "quit!") &&
           str_cmp(cmd_info[cmd].command, "return"))
    send_to_char("You are paralyzed and unable to "
                 "do anything at all!\r\n", ch);
  else if (AFF_FLAGGED(ch, AFF_MEDITATING) &&
           str_cmp(cmd_info[cmd].command, "stand") &&
           str_cmp(cmd_info[cmd].command, "quit") &&
           str_cmp(cmd_info[cmd].command, "quit!"))
    send_to_char("You are too relaxed to do anything but meditate.\r\n",
ch);


If you use this code, you will want to make sure that you have 'rent' or
'camp' installed or something similar.. Unless you want meditate and/or
paralyze to totally trap someone in the mud.

--
Zeavon Calatin, Spear of Insanity
http://spear.kilnar.com/    telnet://spear.kilnar.com:1066


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



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