autoBasement.ash - Better basement automation

autobasement will fail on one of the damage absorption tests. I manually use the mazimizer and maximize DA and it can be passed trivially. Is there any chance that autobasement could try to mazimize DA before just giving up on the test? I seem to recall some nonlinearity concerning DA which makes it "difficult" but if autobasement can detect it will fail wouldn't running the maximizer once more and checking be fairly easy?

Thanks. I would not have telescopes without this script.
 
Something went wrong when I tried to use the script today.

Code:
Basement level 268: HP Test
Putting on outfit: Gauntlet
Equipment changed.
Division by zero (AutoBasement.ash, line 187)

Odd, too. I've been using it for the other 267 levels so far.
 
I keep running into this:
Code:
Outfits caching complete!
Basement     level 491: HP Test
Putting on outfit: Gauntlet
Equipment     changed.
Using 1 Mick's IcyVapoHotness Rub...
You acquire an effect:     Extreme Muscle Relaxation (duration: 10 Adventures)
Finished using 1     Mick's IcyVapoHotness Rub.
Using 1 fizzy potion of ettin strength...
You     acquire an effect: Strength of Ten Ettins (duration: 10 Adventures)
Finished     using 1 fizzy potion of ettin strength.
Using 1 philter of phorce...
You     acquire an effect: Phorcefullness (duration: 15 Adventures)
Finished     using 1 philter of phorce.
Searching for "pirate brochure"...
Search     complete.
Putting on outfit: Swashbuckling Getup
Equipment changed.
Purchasing     pirate brochure (1 @ 300)...
Purchasing pirate brochure (1 @ 500)...
You     acquire an item: pirate brochure
Purchases complete.
Using 1 pirate     brochure...
You acquire an effect: Muscularrr (duration: 10 Adventures)
Finished     using 1 pirate brochure.
Searching for "pressurized potion of     puissance"...
Search complete.
[color=red]Stopped     purchasing pressurized potion of puissance @ 33,000.
Using     cached search results for pressurized potion of puissance...
Stopped     purchasing pressurized potion of puissance @ 33,000.
You     need 1 more pressurized potion of puissance to continue.[/color]

zlib vars for autobasement;
Code:
zlib autoBasement_break_on_combat = false
zlib     autoBasement_break_on_element = false
zlib autoBasement_break_on_floor     = 500
zlib autoBasement_break_on_hp = false
zlib     autoBasement_break_on_level = 33
zlib autoBasement_break_on_mox = false
zlib     autoBasement_break_on_mp = false
zlib autoBasement_break_on_mp_amount =     12000
zlib autoBasement_break_on_mus = false
zlib     autoBasement_break_on_mys = false
zlib autoBasement_break_on_reward =     false
zlib autoBasement_break_on_stat = false
zlib     autoBasement_combat_equipment = ankh of badahnkadh, plexiglass pinky ring,     psycho sweater, necbromancer's wizard staff, necbromancer's stein
zlib     autoBasement_combat_stat = Muscle
zlib autoBasement_get_familiar_drops     = true
zlib autoBasement_max_potion_price = 5000
zlib     autoBasement_simulate_first = false
zlib     autoBasement_use_absolute_potions = false
zlib     autoBasement_use_Disembodied_Hand = true
zlib     autoBasement_use_dr_lucifer = false
zlib     autoBasement_use_dr_lucifer_amount = 4000
zlib     autoBasement_use_percentage_potions = true
It has happened the last two basement dives.
 
I'm not sure what you are reporting. You have told the script autoBasement_max_potion_price = 5000 which means, stop buying potions if the price for one exceeds 5,000. You failed to purchase a potion because the price was 33,000 and the script did not find any way to achieve the goal without that potion.

What are you expecting to happen, that didn't?
 
it never tried cheaper potions. That time, when it failed, I manually used a gr8tness and a philter and reran the script and it passed the test and completed the dive.
 
it never tried cheaper potions. That time, when it failed, I manually used a gr8tness and a philter and reran the script and it passed the test and completed the dive.

OK. Usually when it fails like that for me, I have to eat, drink or spleen to achieve the goal without pressure so I never figured out that it gave up too early.
 
The script shouldn't even have tried to use a 33k potion, with autoBasement_max_potion_price = 5000.

EDIT: I should look at the code before saying stuff >.>
 
I haven't used this script before. When I use it, it just says "You need 1 more scratch 'n' sniff wrestler sticker to continue." Does it not buy that from the mall automatically?
 
Really can't understand why zlib keeps trying to maximize my moxie for combats rather than equip my spell slinging gear. Any ideas?

Code:
zlib autoBasement_break_on_combat = false
zlib autoBasement_break_on_element = false
zlib autoBasement_break_on_floor = 500
zlib autoBasement_break_on_hp = false
zlib autoBasement_break_on_level = 30
zlib autoBasement_break_on_mox = false
zlib autoBasement_break_on_mp = false
zlib autoBasement_break_on_mp_amount = 9000000
zlib autoBasement_break_on_mus = false
zlib autoBasement_break_on_mys = false
zlib autoBasement_break_on_reward = false
zlib autoBasement_break_on_stat = false
zlib autoBasement_combat_equipment = big bad voodoo mask, flowing hippy skirt, psycho sweater, Bag o' Tricks, Staff of the Grand Flambé, Ankh of Badahnkadh, navel ring of navel gazing, tiny plastic Naughty Sorceress
zlib autoBasement_combat_stat = none
zlib autoBasement_get_familiar_drops = false
zlib autoBasement_max_potion_price = 2000
zlib autoBasement_simulate_first = false
zlib autoBasement_use_absolute_potions = false
zlib autoBasement_use_Disembodied_Hand = true
zlib autoBasement_use_dr_lucifer = true
zlib autoBasement_use_dr_lucifer_amount = 1000
zlib autoBasement_use_percentage_potions = true

[Edit]

Ah, it's "Putting on outfit: Damage"... how do I stop that? Or customise that outfit?
 
Last edited:
The problem is "zlib autoBasement_combat_stat = none", set that to a valid stat (I guess Myst if you're spellslinging) and it should, hopefully, work.
 
Is there a way to get autobasement to stop unequipping my familiar equipment? I am currently running with a scarecrow and want to use mariachi pants for the potato effect, but autobasement keeps unequipping them for combats.
 
Have you tried having two mariachi pants in you inventory? Probably the easiest solution.

I have 3 of them, it doesn't seem to matter. It isn't just those pants, it's anything I equip the scarecrow with. Maybe it isnt even the basement script, maybe it's zlib or something else - i'm not sure how to be certain.
 
Could you post a piece of output around where it happens so we can try to see where the fault lies? Try it with a verbosity of 7 or so, so that as much information as possible is showed (without it being overwhelming).
 
Gauntlet change not fully effective

There's a slight issue with the gauntlet test. The script prioritizes HP much more than DA, even if less damage would be dealt to the player if DA was higher.

At a level 442 stat test with the base damage at 54577, the script thinks that 760 DA with 8593 HP is the best choice. Unfortunately, that would mean that the test deals 54577 * 0.23 (760 DA) = 12,456 damage.

When I manually swap out the sugar shorts for Hodgeman's pants, the test deals 54577 * 0.12 (960 DA) = 6,560 damage with a max HP of 8539.
Switching out the Plexiglass Pith Helm for a Nurse Hat changes the damage to 54577 * 0.10 (1000 DA) = 5,458 with 8518 HP.

I know back in 2011-11-27, there was a change to make the gauntlet more reliant on DA, but that change doesn't seem to be fully effective since the DA change was NOT added to cache_outfit(). The maximize command in the relevant part of the script still reads
Code:
maximize("HP" + maximize_familiar, false);
and does not contain a reference to DA.


There's also another small issue with elemental tests. Currently, the maximizer maximizes for equal parts resistance. .5 and .5. Unfortunately, that means half the resistances are completely useless if a phial is used. If a phial is considered, the maximizer check needs to only maximize for the other stat.
 
Last edited:
Could you post a piece of output around where it happens so we can try to see where the fault lies? Try it with a verbosity of 7 or so, so that as much information as possible is showed (without it being overwhelming).

Well it looks like it happens almost at the very beginning (right after it starts to cache outfits and before anything else it removes the familiar equipment)

Code:
> call scripts\autoBasement.ash

Initializing items and effects...
Removing overpriced banana smoothie
Removing overpriced Climate Colada
Removing overpriced cosmic lemonade
Removing bad priced ennui-flavored potato chips
Removing overpriced extra-potent gremlin mutagen
Removing overpriced flask of baconstone juice
Removing absolute potion green candy heart
Removing overpriced gremlin mutagen
Removing overpriced handful of Laughing Willow bark
Removing absolute potion henna tattoo
Removing overpriced jug of baconstone juice
Removing absolute potion lavender candy heart
Removing overpriced mafia aria
Removing absolute potion orange candy heart
Removing absolute potion pink candy heart
Removing overpriced pressurized potion of perspicacity
Removing absolute potion salamander slurry
Removing nonbuffing super-spiky hair gel
Removing overpriced teeny-tiny magic scroll
Removing overpriced vial of baconstone juice
Removing absolute potion white candy heart
Removing absolute potion yellow candy heart
Removing overpriced banana smoothie
Removing absolute potion Black No. 2
Removing overpriced bottle of pirate juice
Removing overpriced Climate Colada
Removing overpriced extra-potent gremlin mutagen
Removing absolute potion eyedrops of newt
Removing overpriced flask of porquoise juice
Removing overpriced floaty sand
Removing absolute potion green candy heart
Removing overpriced gremlin mutagen
Removing overpriced jellyfish gel
Removing overpriced jug of porquoise juice
Removing absolute potion lavender candy heart
Removing overpriced lump of Saccharine Maple sap
Removing overpriced mafia aria
Removing absolute potion orange candy heart
Removing absolute potion pink candy heart
Removing overpriced powdered toad horn
Removing overpriced pressurized potion of pulchritude
Removing bad priced radium-flavored potato chips
Removing absolute potion shaving cream
Removing absolute potion super-spiky hair gel
Removing absolute potion toothbrush
Removing overpriced vial of porquoise juice
Removing absolute potion white candy heart
Removing absolute potion yellow candy heart
Taking off sugar shorts...
Equipment changed.
Items and effects initialization complete!
[B][COLOR="#FF0000"]Caching outfits...
Taking off spangly mariachi pants...
Adjusting familiar weight by -22 pounds[/COLOR][/B]
Equipment changed.
Putting on outfit: Mysticality
Equipment changed.
Retrieving equipment...

Hat: fireman's helmet
Weapon: scratch 'n' sniff sword
Off-hand: Glass Balls of the Goblin King
Shirt: astral shirt
Pants: sugar shorts
Container: paperclip cape

Acc. 1: Order of the Silver Wossname (2)
Acc. 2: stainless steel scarf (2)
Acc. 3: stainless steel solitaire (2)

Pet: Fancypants Scarecrow (1 lbs)
[COLOR="#FF0000"][B]Item: (none)[/B][/COLOR]

Sticker 1: scratch 'n' sniff wrestler sticker (0)
Sticker 2: scratch 'n' sniff wrestler sticker (0)
Sticker 3: scratch 'n' sniff wrestler sticker (0)
Maximizing...
120 combinations checked, best score 3,582.00
Saving outfit: Mysticality
Outfit saved

then at the end of caching it never puts the familiar equipment back on. for fun i ran the same test with the fairy boots set as my familiar and the stomp box is never removed so i'm thinking maybe the script needs something custom for scarecrow and (maybe) hattrack?
 
The maximize command in the relevant part of the script still reads
Code:
maximize("HP" + maximize_familiar, false);
and does not contain a reference to DA.

I replaced the "HP" in the mazimizer command with "DA" in a local copy of the script and had much more success. That might be a function of my characters and equipment rather than something that can be generalized.
 
I know back in 2011-11-27, there was a change to make the gauntlet more reliant on DA, but that change doesn't seem to be fully effective since the DA change was NOT added to cache_outfit(). The maximize command in the relevant part of the script still reads
Code:
maximize("HP" + maximize_familiar, false);
and does not contain a reference to DA.


There's also another small issue with elemental tests. Currently, the maximizer maximizes for equal parts resistance. .5 and .5. Unfortunately, that means half the resistances are completely useless if a phial is used. If a phial is considered, the maximizer check needs to only maximize for the other stat.

Yep, line 416 that needs to change as well as you correctly say. I don't know how I missed that.

In regards to the maximizer: I think it already does that. It starts out with .5 to each, and if you cannot pass it tries a phial and then maximizes against the other element. Is it not doing this?
 
Back
Top