[net.games.hack] What should I wish..."bug" fix.

myers@uwmacc.UUCP (Latitudinarian Lobster) (06/25/85)

> 
> 	I really can't see why you'd want to drop any of the crysknives.
> Wield *all* of them:  then wish for 3 scrolls of enchant weapon.  When you
> read the scrolls, you'll probably run into the evaporation point: however,
> only *one* of the weapons evaporates; the rest get the full plusses.  It is
> thus quite possible to end up with 1 +12 crysknife, and, believe me, there
> aren't many monsters that can stand up to one of those.
> 
> 								Kay.

True enough!  If you don't like this, and believe that all 3 should
evaporate (as I do), install this patch:

*** hack.wield.c.old	Mon Jun 24 17:06:31 1985
--- hack.wield.c	Mon Jun 24 17:26:51 1985
***************
*** 58,63
  {
  register char *color = (amount < 0) ? "black" : "green";
  register char *time;
  	if(!uwep || uwep->olet != WEAPON_SYM) {
  		strange_feeling(otmp,
  			(amount > 0) ? "Your hands twitch."

--- 58,64 -----
  {
  register char *color = (amount < 0) ? "black" : "green";
  register char *time;
+ int i,cnt;
  	if(!uwep || uwep->olet != WEAPON_SYM) {
  		strange_feeling(otmp,
  			(amount > 0) ? "Your hands twitch."
***************
*** 80,85
  
  	/* there is a (soft) upper limit to uwep->spe */
  	if(amount > 0 && uwep->spe > 5 && rn2(3)) {
  	    pline("Your %s violently green for a while and then evaporate%s.",
  		aobjnam(uwep, "glow"), plur(uwep->quan));
  	    useup(uwep);

--- 81,87 -----
  
  	/* there is a (soft) upper limit to uwep->spe */
  	if(amount > 0 && uwep->spe > 5 && rn2(3)) {
+ 	    cnt = uwep->quan;
  	    pline("Your %s violently green for a while and then evaporate%s.",
  		  aobjnam(uwep, "glow"), plur(!(cnt-1)+1));
  	    for (i=0; i<cnt; i++)
***************
*** 81,88
  	/* there is a (soft) upper limit to uwep->spe */
  	if(amount > 0 && uwep->spe > 5 && rn2(3)) {
  	    pline("Your %s violently green for a while and then evaporate%s.",
! 		aobjnam(uwep, "glow"), plur(uwep->quan));
! 	    useup(uwep);
  	    return(1);
  	}
  	if(!rn2(6)) amount *= 2;

--- 83,91 -----
  	if(amount > 0 && uwep->spe > 5 && rn2(3)) {
  	    cnt = uwep->quan;
  	    pline("Your %s violently green for a while and then evaporate%s.",
! 		  aobjnam(uwep, "glow"), plur(!(cnt-1)+1));
! 	    for (i=0; i<cnt; i++)
! 		useup(uwep);
  	    return(1);
  	}
  	if(!rn2(6)) amount *= 2;