Winterbay's Helpful Automatic Monsterbasher (WHAM)

Ioeth

Member
Getting a crash out of WHAM this afternoon:

Code:
Unknown variable 'nostun' (WHAM.ash, line 1085)
Consult script 'WHAM.ash' not found.
You're on your own, partner.

Anybody know what that's about? My combat macro consists exclusively of "consult WHAM.ash".
 

zarqon

Well-known member
Sorry guys, didn't think to warn Winterbay first before swapping the variable around. Didn't realize his script was accessing it. Theraze's advice above looks like it will solve the issue until Winterbay is able to update.
 

Bale

Minion
thank you that helped! now will the svn override my changes at the next update?

  • If you make the change in your /scripts directory then updating will overwrite your changes without a second thought.
  • If you make the change to /svn/winterbay-mafia-wham/scripts it will never go away, attempting to merge with every script update.
Chose the one you desire.
 

Winterbay

Active member
It has been fixed. Good thing it was that recent and not at the beginning of the week since I've been away from my SVN-enabled computer for a week :)
 

Xenthes

Member
I got this today today. I am in HC BIG as an AT. Newest daily build of Mafia.

Code:
[1319] The Castle in the Clouds in the Sky (Basement)
Encounter: Neckbeard Giant
Round 0: HodgeyBasher7L wins initiative!
WHAM: Running SmartStasis
Round 1: HodgeyBasher7L executes a macro!
Round 1: HodgeyBasher7L tries to steal an item!
You acquire an item: giant penguin keychain
You gain 29 Meat.
WHAM: Starting evaluation and performing of attack
WHAM: We are going to 8-shot with attack with your weapon, attack with your weapon, attack with your weapon, attack with your weapon, attack with your weapon, attack with your weapon, attack with your weapon and attack with your weapon.
Round 2: HodgeyBasher7L executes a macro!
Server returned response code 502 for fight.php
Round 2: HodgeyBasher7L executes a macro!
KoLmafia thinks it is round 3 but KoL thinks it is round 2
WHAM: Critical error: An empty macro was generated. Please report this in the WHAM thread of kolmafia.us.
You're on your own, partner.

I did the fight manually and the fights after that worked normally.
 

Veracity

Developer
Staff member
"Server returned response code 502 for fight.php"

HTTP status codes in the 500s are server error. Here is the section of the HTTP RFC that defines status codes.

10.5 Server Error 5xx

Response status codes beginning with the digit "5" indicate cases in which the server is aware that it has erred or is incapable of performing the request. Except when responding to a HEAD request, the server SHOULD include an entity containing an explanation of the error situation, and whether it is a temporary or permanent condition. User agents SHOULD display any included entity to the user. These response codes are applicable to any request method.
In particular, 502 is:

10.5.3 502 Bad Gateway

The server, while acting as a gateway or proxy, received an invalid response from the upstream server it accessed in attempting to fulfill the request.
There is, literally, nothing that a program can do to prevent a server from responding with that code. About all WHAM could do is to recognize that it got an empty response and try again. Or abort to let the user finish, as it did.
 

Crowther

Active member
502's kill EasyFax at times. I've written my code to handle them, but the libraries I use don't. I know this is the wrong thread, but I wondered if mafia could retry when it gets a 502. I'm not sure how much to retry or how to back off safely, but they are pretty rare.
 

torne

New member
WHAM doesn't seem to be able to kill N Bottles of Beer on a Golem, while I'm a Sauceror:

Code:
[7007] Fernswarthy's Basement (Level 291)
Encounter: 89 Bottles of Beer on a Golem
Round 0: torne wins initiative!
Checking for updates (running BatBrain rev. 44)...
Checking for updates (running SmartStasis rev. 17)...
You have the latest batfactors.txt. Will not check again today.
WHAM: Starting evaluation and performing of attack
WHAM: Enqueuing a stun to help with the battle
WHAM: We are going to 3-shot with Soul Bubble, Soul Blaze and Soul Blaze.
Round 1: torne executes a macro!
Round 1: torne casts SOUL BUBBLE!
WHAM: Starting evaluation and performing of attack
WHAM: Enqueuing a stun to help with the battle
WHAM: We are going to 4-shot with gob of wet hair, short calculator, short calculator and divine noisemaker.
Round 2: torne executes a macro!
Round 2: torne uses the gob of wet hair and uses the short calculator!
Round 3: 89 Bottles of Beer on a Golem drops 3 attack power.
Round 3: 89 Bottles of Beer on a Golem drops 2 defense.
WHAM: Starting evaluation and performing of attack
WHAM: Enqueuing a stun to help with the battle
WHAM: We are going to 4-shot with gob of wet hair, short calculator, short calculator and divine noisemaker.
Round 3: torne executes a macro!
Round 3: torne uses the gob of wet hair and uses the short calculator!
Round 4: 89 Bottles of Beer on a Golem drops 3 attack power.
Round 4: 89 Bottles of Beer on a Golem drops 2 defense.
WHAM: Starting evaluation and performing of attack
WHAM: Enqueuing a stun to help with the battle
WHAM: We are going to 4-shot with gob of wet hair, short calculator, short calculator and divine noisemaker.
Round 4: torne executes a macro!
Round 4: torne uses the gob of wet hair and uses the short calculator!
Round 5: 89 Bottles of Beer on a Golem drops 2 attack power.
Round 5: 89 Bottles of Beer on a Golem drops 3 defense.
WHAM: Starting evaluation and performing of attack
WHAM: Enqueuing a stun to help with the battle
WHAM: We are going to 4-shot with gob of wet hair, short calculator, short calculator and divine noisemaker.
Round 5: torne executes a macro!
Round 5: torne uses the gob of wet hair and uses the short calculator!
Round 6: 89 Bottles of Beer on a Golem drops 2 attack power.
Round 6: 89 Bottles of Beer on a Golem drops 3 defense.
WHAM: Starting evaluation and performing of attack
WHAM: Enqueuing a stun to help with the battle
WHAM: We are going to 4-shot with gob of wet hair, short calculator, short calculator and divine noisemaker.
Round 6: torne executes a macro!
KoLmafia declares world peace.
Round 6: torne uses the gob of wet hair and uses the short calculator!
Round 7: 89 Bottles of Beer on a Golem drops 2 attack power.
Round 7: 89 Bottles of Beer on a Golem drops 2 defense.
WHAM: Starting evaluation and performing of attack
KoLmafia declares world peace.
You're on your own, partner.
Click here to continue in the relay browser.

This happens every time and I just have to abort and throw noisemakers/etc myself. Any ideas what I might be doing wrong? My CCS is just "consult WHAM.ash".
 

torne

New member
Huh. I bought some divine cans of silly string and now it manages to use them just fine and kill it in two rounds. Not sure why it wasn't using the noisemakers properly..
 

Cool12309

Member
I had the above issue as well, it just kept talking about using a CSA obedience grenade, short calculator, and 2 love songs, and it just kept throwing an obedience grenade each round.
 

Theraze

Active member
The short calculator bugs out for some reason. Anytime it ends up going into the automation, it seems to fail. Repeatedly. My usual result after it breaks once is to closet all of my short calculators...
 

Bale

Minion
Have you tried putting the short calculator on blacklist?

I looked at the code (and batfactors), but couldn't see anything that might make BatBrain hate the short calculator.
 

fronobulax

Developer
Staff member
I end up closeting the short calculator as well, but I have a feeling I mentioned this before and better memories than mine suggested it was not a WHAM problem, as such, but data somewhere being incomplete or incorrect. As for the basement monsters, I have a CCS that does not use WHAM for those monsters because the last time I was in the Basement I was losing when there was no need to do so. My investigations at the time suggested that WHAM was making choices that were related to other factors than just killing the monster. I seem to recall at least one case where stasis seemed to be called for but the expected damage calculations on both sides of the fight were off and the result was Beaten Up. Since the basement seemed to be a special case I did not want to tweak all of my WHAM settings for the basement and then reset them.

There is a part of me that wants to request a KILL_ASAP directive that ignores stasis and ignores the cost of items in inventory and just gets the job done. But if such a directive existed I would want to set it for some monsters, but not others, for monsters that were at a higher level, or for monsters that had just defeated me and when I look at all that it seems like more trouble than it would be worth. (Sounds like a job for a BBS script). Still though, I can imagine a world where if automation results in Beaten Up, automation will uneffect beaten up, try again with a different WHAM strategy and only abort if WHAM fails twice.
 

Winterbay

Active member
I may remember incorrectly (I have not looked at my code in a while) but I think that WHAM should be setting the round_cost to a pretty high value if you are in the basement since in there stasising and whatnot is generally not the intention and we just want to get through the fight.

That said, when things like this happen it is almost always interesting to get excerpts with higher verbosity values (9 is the highest if you want to perform the fight, 10 and 11 are for just basically test running a fight) since that gives a bit more information on what happens behind the scene.
 
Top