Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss
Groups keyboard shortcuts have been updated
Dismiss
See shortcuts

A facilitating bug

0 views
Skip to first unread message

Don Kneller%Langridge

unread,
Mar 10, 1986, 2:01:43 AM3/10/86
to
It has occurred to me several times that killer bees just aren't
as much problem with HACK 1.03 as with version 1.01. In 1.03 you can
run away when you're in trouble. The bees follow you (sometimes), but
they don't hit. Previously, they'd follow you (closely) *and* hit.
After some looking at the code to 1.01 I found the problem. One
section of code was changed to use an additional local variable which
checked to see if the monster was close to you. However, the variable
was not updated when a multiple-move monster (B,A,k,o among others)
moved closer to you. Thus these monsters didn't "know" they were
beside you and wouldn't try to hit you.

To make matters even easier for you, when one of these monsters went to move
again, the position you were at was considered inaccessible (because it was
occupied by something), so the monster often moved away! This made killer
bees appear not to be able to track you even though they were right beside
you. Needless to say, this made one of the most difficult monsters *much*
easier.

This bug fix restores the potency of killer bees (and other multiple-move
monsters).

*** hack.mon.old.c Sun Mar 9 22:20:46 1986
--- hack.mon.c Sun Mar 9 22:20:27 1986
***************
*** 218,223
tmp = m_move(mtmp,0); /* 2: monster died moving */
if(tmp == 2 || (tmp && mdat->mmove <= 12))
return(tmp == 2);
}

if(!index("Ea", mdat->mlet) && nearby &&

--- 218,227 -----
tmp = m_move(mtmp,0); /* 2: monster died moving */
if(tmp == 2 || (tmp && mdat->mmove <= 12))
return(tmp == 2);
+ /* Without this line, fast monsters don't hit you when they've
+ * caught up to you. -dgk
+ */
+ nearby = (dist(mtmp->mx, mtmp->my) < 3); /* bugfix - dgk */
}

if(!index("Ea", mdat->mlet) && nearby &&
--
Don Kneller
UUCP: ...ucbvax!ucsfcgl!kneller
ARPA: kne...@ucsf-cgl.ARPA
BITNET: kne...@ucsfcgl.BITNET

Kriton Kyrimis

unread,
Mar 13, 1986, 12:06:43 AM3/13/86
to
In article <7...@ucsfcgl.UUCP> kne...@ucsfcgl.UUCP (Don Kneller) writes:
>It has occurred to me several times that killer bees just aren't
>as much problem with HACK 1.03 as with version 1.01. In 1.03 you can
>run away when you're in trouble. The bees follow you (sometimes), but
>they don't hit. Previously, they'd follow you (closely) *and* hit.
>After some looking at the code to 1.01 I found the problem. One
>section of code was changed to use an additional local variable which
>checked to see if the monster was close to you. However, the variable
>was not updated when a multiple-move monster (B,A,k,o among others)
>moved closer to you. Thus these monsters didn't "know" they were
>beside you and wouldn't try to hit you.
>
>To make matters even easier for you, when one of these monsters went to move
>again, the position you were at was considered inaccessible (because it was
>occupied by something), so the monster often moved away! This made killer
>bees appear not to be able to track you even though they were right beside
>you. Needless to say, this made one of the most difficult monsters *much*
>easier.
>
>This bug fix restores the potency of killer bees (and other multiple-move
>monsters).

Unfortunately, the posted patch makes agile monsters such as B's
and A's ignore Elbereth (and possibly scare monster scrolls ),
which is not quite right. As I'm not familiar with the workings
of the hack source I will not venture to offer a bug fix on the
bug fix, but I'll simply caution you against applying this patch
in its current form.
--

Kriton (princeton!tilt!kyrimis)
------
"You know, I think it's just a matter of putting two and two together
to make three..."
------

Don Kneller%Langridge

unread,
Mar 16, 1986, 4:05:34 AM3/16/86
to
In article <3...@tilt.FUN> kyr...@tilt.UUCP (Kriton ) writes:
>In article <7...@ucsfcgl.UUCP> kne...@ucsfcgl.UUCP (Don Kneller) writes:
>>It has occurred to me several times that killer bees just aren't
>>as much problem with HACK 1.03 as with version 1.01. In 1.03 you can
>>run away when you're in trouble. The bees follow you (sometimes), but
>>they don't hit. Previously, they'd follow you (closely) *and* hit.
>>
>>This bug fix restores the potency of killer bees (and other multiple-move
>>monsters).
>
>Unfortunately, the posted patch makes agile monsters such as B's
>and A's ignore Elbereth (and possibly scare monster scrolls ),
>which is not quite right. As I'm not familiar with the workings

Oops, I goofed. I managed to forget to update a second local variable
that determines whether the monster should be scared. Here is a reworked
version of the fix.

*** hack.mon.old Sun Mar 16 00:52:19 1986
--- hack.mon.c Sun Mar 16 00:42:23 1986
***************
*** 152,158
register struct monst *mtmp;
{
register struct permonst *mdat;
! register tmp, nearby, scared;

if(mtmp->cham && !rn2(6))
(void) newcham(mtmp, &mons[dlevel+14+rn2(CMNUM-14-dlevel)]);

--- 152,158 -----
register struct monst *mtmp;
{
register struct permonst *mdat;
! register tmp, nearby, scared, onscary;

if(mtmp->cham && !rn2(6))
(void) newcham(mtmp, &mons[dlevel+14+rn2(CMNUM-14-dlevel)]);
***************
*** 199,206
mtmp->mflee = 0;



nearby = (dist(mtmp->mx, mtmp->my) < 3);

! scared = (nearby && (sengr_at("Elbereth", u.ux, u.uy) ||
! sobj_at(SCR_SCARE_MONSTER, u.ux, u.uy)));
if(scared && !mtmp->mflee) {
mtmp->mflee = 1;
mtmp->mfleetim = (rn2(7) ? rnd(10) : rnd(100));

--- 199,207 -----
mtmp->mflee = 0;



nearby = (dist(mtmp->mx, mtmp->my) < 3);

! onscary = (sengr_at("Elbereth", u.ux, u.uy) ||
! sobj_at(SCR_SCARE_MONSTER, u.ux, u.uy));
! scared = (nearby && onscary);
if(scared && !mtmp->mflee) {
mtmp->mflee = 1;
mtmp->mfleetim = (rn2(7) ? rnd(10) : rnd(100));


***************
*** 218,223
tmp = m_move(mtmp,0); /* 2: monster died moving */
if(tmp == 2 || (tmp && mdat->mmove <= 12))
return(tmp == 2);
}

if(!index("Ea", mdat->mlet) && nearby &&

--- 219,233 -----


tmp = m_move(mtmp,0); /* 2: monster died moving */
if(tmp == 2 || (tmp && mdat->mmove <= 12))
return(tmp == 2);

+ /* The following lines restore the ability of multiple-move
+ * monsters to hit you after having caught up. - dgk


+ */
+ nearby = (dist(mtmp->mx, mtmp->my) < 3);

+ scared = (nearby && onscary);
+ if(scared && !mtmp->mflee) {
+ mtmp->mflee = 1;
+ mtmp->mfleetim = (rn2(7) ? rnd(10) : rnd(100));
+ }

br...@stc.uucp

unread,
Mar 27, 1986, 12:11:51 PM3/27/86
to
In article <3...@bu-cs.UUCP> s...@bu-cs.UUCP (Shelli Meyers) writes:
>In article <18...@hammer.UUCP> and...@hammer.UUCP (Andrew Klossner) writes:
>>
>>Of course, if you have a two-handed sword you want to call it "Orcrist".
>
>No, no, no, you want to name your LONG SWORD Orcrist.

No, no, no, Andrew was right, it's the two-handed sword.
--

Regards,
Bruce Munro. <br...@stc.UUCP>
...seismo!mcvax!ukc!stc!bruce

Andrew Klossner

unread,
Mar 28, 1986, 11:21:41 AM3/28/86
to
In article <3...@bu-cs.UUCP> s...@bu-cs.UUCP (Shelli Meyers) writes:
>In article <18...@hammer.UUCP> and...@hammer.UUCP (Andrew Klossner) writes:
>>
>>Of course, if you have a two-handed sword you want to call it "Orcrist".
>
>No, no, no, you want to name your LONG SWORD Orcrist.

In hack version 1.0.3, naming your two-handed sword "Orcrist" gives it
extra damage against orcs. Naming a long sword has no such effect.

-=- Andrew Klossner (decvax!tektronix!tekecs!andrew) [UUCP]
(tekecs!andrew.tektronix@csnet-relay) [ARPA]

Sean Casey

unread,
Mar 29, 1986, 11:06:51 PM3/29/86
to
In article <3...@bu-cs.UUCP> s...@bu-cs.UUCP (Shelli Meyers) writes:
>In article <18...@hammer.UUCP> and...@hammer.UUCP (Andrew Klossner) writes:
>>
>>Of course, if you have a two-handed sword you want to call it "Orcrist".
>
>No, no, no, you want to name your LONG SWORD Orcrist.

Ok, let's take a look at the code in hack.fight.c:


if(mon->data->mlet == 'O' && obj->otyp == TWO_HANDED_SWORD &&
!strcmp(ONAME(obj), "Orcrist"))
tmp += rnd(10);

I think the code speaks for itself.

Sean

Ross Jacobs

unread,
Mar 30, 1986, 6:19:05 PM3/30/86
to

In article <3...@bu-cs.UUCP> s...@bu-cs.UUCP (Shelli Meyers) writes:
>In article <18...@hammer.UUCP> and...@hammer.UUCP (Andrew Klossner) writes:
>>
>>Of course, if you have a two-handed sword you want to call it "Orcrist".
>


>No, no, no, you want to name your LONG SWORD Orcrist.

Actually, *any* weapon can be named Orcrist and you will still get the
hefty increase damage points vs. orcs. This includes maces, bows, heavy iron
balls, crysknives, etc. The only problem with arrows/darts/sling bullets is
when you decide to call the whole load of them Orcrist, only the first one
you shoot/throw will be Orcristed.

Just in case anyone is on a low level and has a ring of fire resistance,
orcs (and for that matter, killer bees) HATE fire. So, zap your wand of fire
happily away (one bolt will take out 2 orcs or one killer bee), or get confused
and read a scroll of fire (hence the need for fire resistance)--that should
take a whole load of them out.

-Ross
--

Oh, we're the boys of the chorus | Ross Jacobs
We hope you like our show | {ihnp4,decvax,linus}!dartvax!rossj
We know you`re rootin for us | Any semblance to a living, breathing,
But now we have to gooooooo.......... | socially relevant opinion aint my fault.

0 new messages