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
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..."
------
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));
+ }
No, no, no, Andrew was right, it's the two-handed sword.
--
Regards,
Bruce Munro. <br...@stc.UUCP>
...seismo!mcvax!ukc!stc!bruce
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]
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
>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.