Crossfire Archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: CF: see invisible bug
> The only problem is that players can see passwords by examining magic
> ears. So, I think putting back "show invisible" and fixing examining
> object code is easiest solution.
Scott> There are two ways to fix see invisible. The first is to create a list
Scott> a of object types which aren't supposed to be revealed. The second is
Scott> to create a new object state of ALWAYS_INVISIBLE. I believe the second
Scott> is much better since then there can be truly invisible objects of every
Scott> type (say a map wants a monster to be unseen even after see_invisible was
Scott> cast).
This means that map designer can set/clear this flag?
Then, I agree with the second solution.
Owing to new flag, map designers can make new kind of maps.
One problem is that you have to decide which object is ALWAYS_INVISIBLE
in natural. (This means how to make new lib/archetype file.)
Now I have a question.
When players invoke "see invisible",
before invisible object may be visible
some kind of "flash" appeares at the field where the object is.
Does the "flash" appeared for ALWAYS_INVISIBLE objects?
Anyway, passwords of magic ear should not be visible by examining it.
Even if new flag is made, map designers can mistake to clear
ALWAYS_INVISIBLE flag of magic ears.
I think following patch is useful.
*** input.c.org Fri Mar 13 19:30:45 1998
--- input.c Fri Mar 13 19:33:54 1998
***************
*** 397,403 ****
if(QUERY_FLAG(tmp, FLAG_MONSTER))
examine_monster(op,tmp);
if(tmp->msg && tmp->type != EXIT && tmp->type != BOOK && tmp->type != CORPSE
! && !QUERY_FLAG(tmp, FLAG_WALK_ON)) {
if (need_identify(tmp) && QUERY_FLAG(tmp, FLAG_IDENTIFIED))
new_draw_info(NDI_UNIQUE, 0,op, "The object has a story:");
#if 0 /* it might not be written on it */
--- 397,403 ----
if(QUERY_FLAG(tmp, FLAG_MONSTER))
examine_monster(op,tmp);
if(tmp->msg && tmp->type != EXIT && tmp->type != BOOK && tmp->type != CORPSE
! && tmp->type != MAGIC_EAR && !QUERY_FLAG(tmp, FLAG_WALK_ON)) {
if (need_identify(tmp) && QUERY_FLAG(tmp, FLAG_IDENTIFIED))
new_draw_info(NDI_UNIQUE, 0,op, "The object has a story:");
#if 0 /* it might not be written on it */
--------------------------------------------------------------------------
Seikoh Nishita | Dep't. of Information & Computer Sciences
| Faculty of Engineering Science
[e-mail] | Osaka University
s-nisita@ics.es.osaka-u.ac.jp | Toyonaka, Osaka 560, Japan
[to unsubscribe etc., send mail to crossfire-request@ifi.uio.no]
References: