Bounty Hunter Helper

rlbond86

Member
Bounty Hunter Helper 1.1.0

Displays information about bounties

Tired of opening the KoL Wiki every day to check on which bounty is the fastest? Ever realized that the turns quoted on the Wiki are inaccurate? I made this relay script to display bounty information in a helpful, easy way.

bhh.png

The relay override will display today's available bounties, and the average number of turns each will take to complete, as a function of Combat Frequency Modifier. It also factors in (and automatically detects) the Fax Machine, Olfaction skill, and Spooky Putty/Rain-Doh.

Note that these turn counts do not match the KoL Wiki, because the Bounty article is outdated and uses an incorrect formula which doesn't factor in the effects of skipping noncombats.

To use: simply run the following from the CLI:

Code:
svn checkout http://svn.code.sf.net/p/rlbond86-mafia-scripts/code/bounty_hunter_helper/trunk
 
Last edited:

rlbond86

Member
Version History:

1.0.0: Initial Version
1.0.1: Added note about Ninja snowman assassin with +Combat. Also displays current item after you accept it.
1.1.0: Added to SVN, removed the now-unnecessary assassin message, fixed Rain-Doh
 
Last edited:

Bale

Minion
Note that these turn counts do not match the KoL Wiki, because the Bounty article is outdated and uses an incorrect formula which doesn't factor in the effects of skipping noncombats.

So fix the wiki? Then they will match. The whole point of a wiki that everyone can edit it.
 

rlbond86

Member
So fix the wiki? Then they will match. The whole point of a wiki that everyone can edit it.

It's unfortunately not that simple. For example, the table on the wiki has an entry called "Savings per 5% combat modifier", but in reality the average number of turns is not linear with this value if there are skippable noncombats. It also differs if you have olfaction. And if you have olfaction, copies function differently from a fax machine, since you can fax and sniff on turn 1, as opposed to needing to adventure at the normal rate of appearance until you can sniff. The formula for average number of adventures is

N*(1 - (1-C)*S)/(R*C+E*(1-C)), where N = number of items required, C = combat rate (between 0 and 1), R = fraction of combats where the bounty monster appears, S = fraction of skippable noncombats (0 to 1), and E = fraction of noncombats which allow you to fight the bounty monster.

Perhaps I will edit the wiki at some point in the near future.
 

Winterbay

Active member
This appears to break with the recent fuzzy matching with quest items (leading to "rain-doh" matching more than one thing). To fix I defined a new variable
Code:
int rain_amt = available_amount($item[can of rain-doh])
              + available_amount($item[Rain-Doh red wings])
              + available_amount($item[Rain-Doh orange agent])
              + available_amount($item[Rain-Doh yellow laser gun])
              + available_amount($item[Rain-Doh green lantern])
              + available_amount($item[Rain-Doh blue balls])
              + available_amount($item[Rain-Doh indigo cup])
              + available_amount($item[Rain-Doh violet bo])
              + available_amount($item[Rain-Doh black box]);

And used that instead of item_amount($item[rain-doh]) in the pageDecoration-function.

Now I have no idea why I actually needed to do this as I have a masterOverride installed that does not involve bhh.ash but for some reason Mafia bailed when I logged in despite this when the script was in its current state in my /relay-folder.
 

Bale

Minion
What is the logic to that? You're basically just doing:

Code:
int rain_amt = available_amount($item[can of rain-doh])
              + 8 * available_amount($item[Empty can of Rain-Doh]);
 

Theraze

Active member
Is there really a reason to do the 8* on the empty can? You're just checking if rain_amt>0, so anything 1+ calculates the sames, and you don't actually have 8 copiers in there.
 

Winterbay

Active member
What is the logic to that? You're basically just doing:

Code:
int rain_amt = available_amount($item[can of rain-doh])
              + 8 * available_amount($item[Empty can of Rain-Doh]);

I went for the same logic that was used for the spooky putty thingie just above. I have neither so have no idea how any of those items work.
 

Bale

Minion
I have neither so have no idea how any of those items work.

Ah. That explains the thought process. Protip: Can of Rain-doh is not a squeezable. If someone has not opened the can, then you don't want to open it for him since there is a reason not to do that. Only check available_amount($item[Rain-Doh black box]) to find out if it is usable.
 

xKiv

Active member
In fact, the blackbox is the only one that can "disappear" (by turning into a rain-doh box full of monsters).
 

Theraze

Active member
But that check is to see if your limit is 5 or 6. So you want to check full/empty rain-doh for knowing what your total limit is. Or at least, check empty can.
 

Aeres

New member
Getting a "Bad item value: "rain-doh" (bhh.ash, line 272)" error.
EDIT: fixed it, replaced rain-doh by can of rain-doh]
 
Last edited:

Theraze

Active member
Note that won't actually tell you if you happen to have an extracted can already. Bale has a suggestion for that above, working on Winterbay's original suggested fix, which I pointed an extra calculation out in as well. :)
 

Theraze

Active member
Changing "vip key" to "Clan VIP Lounge key" would get rid of this message (bhh.ash, line 310)
Changing "olfaction" to "Transcendent Olfaction" would get rid of this message (bhh.ash, line 314)
Two fuzzy match fixes needed. Thanks! :)
 

digitrev

Member
This was pretty dang awesome, but I suspect that it's going to need a good amount of reworking to get it back up and running.

In particular, now that there's no need to pick between the best possible bounty for the day, I think that it will need to calculate the best possible +/- combat options.

Also, it looks like you might need some hard-coding for combat rates for the Hidden City & Stately Pleasure Dome. The SPD has 3 semi-predictable non-combats. The first gets you the bounty monster, the second is skippable, and the third is predictable but non-skippable, meaning it might be best to adventure elsewhere.

The Hidden City, however, is a different mess entirely. You need to account for whether or not the lawyers & janitors are banished, and you have those timed non-combats. I suspect that the fastest method will involve banishing the lawyers if they already aren't, then switching to the office building, but I'll be damned if I can figure out the math outside of some MC simulations.
 
Last edited:

heeheehee

Developer
Staff member
hm? long-term, maybe, but short-term, you'd do just fine using nosy nose to sniff accountants. Lawyer banish takes 9 turns (up to 8 runaways). Or, y'know, use crystal skull and louder than bomb to get two 20-turn banishes after you've gotten rid of janitors for a 100% encounter rate. 10 (11?) turns, done!
 
Top