autoBasement.ash - Better basement automation

Winterbay

Active member
Right. That logic is much less complicated. I should know better than to try and overcomplicate things :)

New version uploaded that should hopefully give a better spread of drops.
 

Winterbay

Active member
I think I downloaded the latest version.

It has this line near the bottom:

check_version("AutoBasement","AutoBasement","2.0",3113);

The problem is that "my" version hasn't changed the version number since the check for that is in the first thread as such you need to download the newest version from the 2nd post yourself. That said, the version you had was the latest so :)
 

AlbinoRhino

Active member
Well, I'm happy to report that the new version collected 2 of everything except gongs within about 125 advs today. It appears gongs won't be collected until all of the others reach 5 ?

Also, I used the script with another character who has no spleen familiars, so naturally I set the drops setting to false, which had the effect of never using the hovering sombrero. Once I set the drops setting to true, the script used the sombrero.

Thanks for the update Winterbay ! I started my scopes long ago and never finished them just because the task was so tedious. Now that I have discovered this script I will finally have some fully upgraded scopes. Thanks to you !
 

Winterbay

Active member
Well, I'm happy to report that the new version collected 2 of everything except gongs within about 125 advs today. It appears gongs won't be collected until all of the others reach 5 ?

It shouldn't... I'll look at that. Again :)

Edit: Having looked at it, I can see no way it should do that. The code is the same for all familiars. Stupid questions: Do you have a llama? Had you gotten any drops from it earlier in the day?

Also, I used the script with another character who has no spleen familiars, so naturally I set the drops setting to false, which had the effect of never using the hovering sombrero. Once I set the drops setting to true, the script used the sombrero.

Yes, I realised that the other day as well. I have a fix for that locally, will upload that as soon as I've looked at your first issue.

Thanks for the update Winterbay ! I started my scopes long ago and never finished them just because the task was so tedious. Now that I have discovered this script I will finally have some fully upgraded scopes. Thanks to you !

:) (also thank Rinn as well since he made most of the work by creating the script, I'm just a maintainer)
 
Last edited:

AlbinoRhino

Active member
Sorry.....I meant to say "agua", not "gongs". Yes , I have them all except the rogue program. Thanks to Rinn !

I finished the basement earlier today and got the same thing, some of all, except agua.

Edit: These were the numbers from today with only about 90 turns in the basement:

absinthe = 3/5
agua = 0/5
astral = 3/5
gong = 3/5
paste = 0/7
transponder = 2/5

(I have a script which spits this out directly from the mafia properties, game tokens not included since I have no RP.) The only other advs I spent besides in the basement with the script were 10 advs collecting slime vials, so... no drops could have happened elsewhere.
 
Last edited:

Winterbay

Active member
Ahh yes, the new version uploaded should take care of both the problem of the Sandworm not being used and the fact that it didn't get used until all the others were done.
 

AlbinoRhino

Active member
Ahh yes, the new version uploaded should take care of both the problem of the Sandworm not being used and the fact that it didn't get used until all the others were done.

You're awesome. I'm getting ready to ascend, so I should be trying it out again in 5 days or so from now. Thanks again.
 

slyz

Developer
Here is a little bit of code I use to choose the drop familiar with the less drops:
PHP:
int numdrops = 5 ;

int[familiar] drop_familiars ;
drop_familiars[$familiar[rogue program]] = get_property("_tokenDrops").to_int() ;
drop_familiars[$familiar[astral badger]] = get_property("_astralDrops").to_int() ;
drop_familiars[$familiar[green pixie]] = get_property("_absintheDrops").to_int() ;
drop_familiars[$familiar[llama lama]] = get_property("_gongDrops").to_int() ;
drop_familiars[$familiar[baby sandworm]] = get_property("_aguaDrops").to_int() ;
drop_familiars[$familiar[Li'l Xenomorph]] = get_property("_transponderDrops").to_int() ; #'
drop_familiars[$familiar[Pair of Stomping Boots]] = get_property("_pasteDrops").to_int() ;

familiar choose_fam() {
	record{familiar fam; string drop;}[int] to_consider ;
	int index = 0;
	foreach fam in drop_familiars
		if ( have_familiar(fam) && drop_familiars[fam] < numdrops ) {
			to_consider[index].fam = fam ;
			to_consider[index].drop = drop_familiars[fam] ;
			index += 1;
		}
	if ( index == 0 ) return $familiar[none] ;
	sort to_consider by value.drop ;
	return to_consider[0].fam;
}
Simply add something like:
PHP:
familiar spleenie = choose_fam();
if ( get_familiar_drops && spleenie != $familiar[ none ] )
{
	use_familiar( spleenie );
}
 

Winterbay

Active member
I might consider that, although I think removing the stomping boots might be a good thing since I assume you can't stomp basement monsters to death...
 

Theraze

Active member
slyz, shouldn't that code have an index > 5 check as well as an index == 0? So that if you've already gotten all of your drops, it doesn't try to swap you into a random formerly-dropping familiar?
 

slyz

Developer
PHP:
int numdrops = 5 ;
is used to set the max number of drops you want. Any familiar that has given numdrops or more drops isn't added to the to_consider map.
 

roippi

Developer
I'm noticing that the latest version of autobasement is having issues using oil(s) of stability. Anything obvious I'm overlooking?
 

Winterbay

Active member
I haven't poked at that code at all I think. I've only poked at the equipment parts. So... unless you've managed to set some kind of setting to something funky I've got nothing...
 

roippi

Developer
I dunno. It's the first thing that the modifier maximizer recommends, yet autobasement won't touch it. I'd consider it a one-off report unless someone else has the issue.
 

Minwee

New member
I'm having a similar issue. autoBasement is failing some simple tests but not logging a message explaining why. I was still using Rinn's version and it worked fine a few weeks ago, so I'm guessing the issue is that something has changed in the nightly builds of Mafia.

I just noticed the problem yesterday and haven't had a chance to look through the code.
 

Winterbay

Active member
Odd. The relevant code (which I haven't tampered with) is:
Code:
if (have_effect(equalizer[my_primestat()].e) == 0)
{
	use(1, equalizer[my_primestat()].i);
	switch (check)
	{
	case "hp":	if(my_maxhp() > goal) return true;
	case "mp":	if(my_maxmp() > goal) return true;
	default:	if(my_buffedstat(s) >= goal) return true;
	}
}

equalizer[$stat] is defined as:
Code:
record _item {
	item i;
	effect e;
	float absolute_mod;
	float percent_mod;
	int cost;
	int duration;
	int effective_stats;
};

_item [stat] equalizer;
equalizer[$stat[Mysticality]].i = $item[oil of expertise];
equalizer[$stat[Mysticality]].e = $effect[Expert Oiliness];
equalizer[$stat[Muscle]].i = $item[oil of stability];
equalizer[$stat[Muscle]].e = $effect[Stabilizing Oiliness];
equalizer[$stat[Moxie]].i = $item[oil of slipperiness];
equalizer[$stat[Moxie]].e = $effect[Slippery Oiliness];

Meaning that if it isn't using the potion then it seems like Mafia can't get a potion. I do recall having some oddities lately with trying to use items as well (eat 1 black pudding - no result), but it doesn't appear often enough to be debugable.

If you who have the problem could post the CLI-output (and perhaps session log entries as well) so we can see what is happening?

I could I guess add some print-messages around the using of the potion to that it at least doesn't skip it...
 

fox

New member
Hello, I'm extremely new at using scripts or anything of this sort and I'm having trouble using the basement script in the second post. It keeps telling me "Unable to meet all requirements via equipment changes", and just stops working. I've tried redownloading the script without changing anything, but it still doesn't seem to work for me. I have no idea if I have to manually set that I want it to use Scrolls of Unspeakable Evil or Divine Favors or what, and it's just making me extremely frustrated. I'm currently manually doing the basement, but any help would be awesome since I'm only on my second telescope piece. :(

I definitely have the required equipment/potions/skills/meat to do all levels to 500, but the script doesn't seem to want to play nice.
I have installed the zlib thing and have both of them in my scripts folder for kolmafia.

Kudos for any help!

edit: also I've tried it on the last 10 daily builds of kolmafia, and they all seem to not work for me
 
Last edited:

slyz

Developer
Do you allow Mafia to purchase things from the mall? Could you paste here what happens in the gCLI when you run the script?
 

Ferdawoon

Member
Hello, I'm extremely new at using scripts or anything of this sort and I'm having trouble using the basement script in the second post. It keeps telling me "Unable to meet all requirements via equipment changes", and just stops working. I've tried redownloading the script without changing anything, but it still doesn't seem to work for me. I have no idea if I have to manually set that I want it to use Scrolls of Unspeakable Evil or Divine Favors or what, and it's just making me extremely frustrated. I'm currently manually doing the basement, but any help would be awesome since I'm only on my second telescope piece. :(

I definitely have the required equipment/potions/skills/meat to do all levels to 500, but the script doesn't seem to want to play nice.
I have installed the zlib thing and have both of them in my scripts folder for kolmafia.

Kudos for any help!

edit: also I've tried it on the last 10 daily builds of kolmafia, and they all seem to not work for me
Depending on what version of AutoBasement you use, it might be an old problem. Winterbay posted a new version with a solution to it somewhere in the post.
If it is the same problem that I had (and not simply due to not allowing Mafia to buy stuff from NPCs or the Mall) then it is some thing where if you have an item equipped somewhere, and want to equip it somewhere else, it is sensed as not having the item.
This is especially so if using the Disembodied Hand. If the Hand have a weapon in one of the AutoBasement generated outfits, and it then change to an outfit where the weapon is in your mainhand or offhand, then it think you dont have one.

As I said, check back a bit. I know Winterbay posted a version where this was solved.
 
Top