On Fri, 15 Nov 1996, DJ Pure wrote:
> G'Day all.
> How do you implement Secret Doors? I can make it so that ANYDOOR is
> secret, but that is not what I really want.
Implement an EX_SECRET flag. But beware, CircleMUD has a fool
way of dealing with exits in the player files so you'll need to
go playing in db.c a bit (go into setup_dir() and find where it
does:
if (t[0] == 1)
world[room].dir_option[dir]->exit_info = EX_ISDOOR;
else if (t[0] == 2)
world[room].dir_option[dir]->exit_info = EX_ISDOOR | EX_PICKPROOF;
else
world[room].dir_option[dir]->exit_info = 0;
And right before the 'else' do:
else if (t[0] == 3)
world[room].dir_option[dir]->exit_info = EX_ISDOOR | EX_SECRET;
else if (t[0] == 4)
world[room].dir_option[dir]->exit_info = EX_ISDOOR | EX_SECRET |
EX_PICKPROOF;
which will get it to load, etc.) After you do that you'll need
to go about into act.informative.c and wherever it displays the
exits (the autoexit routine, do_exits, etc.) set it up to not
display rooms that are set EX_SECRET.
While we're speaking of the fool way exits are set up, why ARE
they setup that way!? It's extremely annoying, if nothing else.
--
Daniel Koepke
dkoepke@california.com
Forgive me father, for I am sin.
+-----------------------------------------------------------+
| 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