The Unofficial Ascend.ash support thread.

Sounds like eatdrink.ash broke with the recent daily build. Anyone know what went wrong? I was also wondering if there were a recent update for farm.ash but i don't think that works right without eatdrink.ash.
 
I think the current guess is that pumpkins are hate? We'll see eventually. Didn't break for me, but then again, I'm running BM right now.
 
Another Farm.ash problem.

Is there a built-in checker if I can actually adventure in a certain location before the script try to send me there?

After a few errors where it tried to equip an item I already had on, where it then bugged out as it apparently couldn't find the item (as it was already equipped) and aborted. I had to restart Mafia and strip down completly so that it could equip whatever item it wanted.

Just now, it tried to send me to the Themthar Hills even though I have defeated the NS and rescued the king, meaning the zone is closed to me.
After that it farmed the Astral cupcakes but after a while, 150:ish adv, it concluded that it could no longer adventure there as I couldnt hit anything. I had for some reason dropped to 0% hit and 0% evade after the script had done some gear changes and I suspect it was due to eqipping Bounty Hunter Rifle with me being a Muscle class. When things like that happen, can it be made so that it simply continue somewhere else or consider using some other piece of gear, instead of completly aborting, meaning I have to go through the maximizing yet again?

Speaking of that, I'd again like to comment about letting Farm.ash continue with the data already gathered instead of going through it all again.
Yes I know there is the command to stop it from scanning the Mall every time and instead let it do it every X days, but it still go through every zone and every item whenever I start it (non-simulation mode). That means, just as Farm have gone through all the maximising calculations it abort just because it wanted me to use the Bounty Hunter Rifle, causing me to be unable to hit anything in the location it want to farm. Restarting it will not really help as it will, after over half an hour of grinding maximising computations again, just end up doing the same thing.
Total of 3 drops. Monster worth is 1641 and frequency is 20.
DROP: eXtreme mittens worth 115. Drop rate is 5% with a modifier of 102% so actual freq is 10%
DROP: eXtreme scarf worth 110. Drop rate is 10% with a modifier of 102% so actual freq is 20%
DROP: Mountain Stream soda worth 58. Drop rate is 30% with a modifier of 102% so actual freq is 60%
Pickpocket only items are only considered for Disco bandits.
Monster eXtreme Cross-Country Hippy has 4 drop(s):
MEAT: base drop is 0 meat with a modifier of 270% and familiar bonus of 0 results in a drop of 0 meat.
Total of 4 drops. Monster worth is 67 and frequency is 20.
DROP: eXtreme mittens worth 115. Drop rate is 5% with a modifier of 102% so actual freq is 10%
DROP: Mountain Stream soda worth 58. Drop rate is 30% with a modifier of 102% so actual freq is 60%
DROP: snowboarder pants worth 110. Drop rate is 10% with a modifier of 102% so actual freq is 20%
Pickpocket only items are only considered for Disco bandits.
Monster eXtreme Orcish Snowboarder has 4 drop(s):
MEAT: base drop is 40 meat with a modifier of 270% and familiar bonus of 0 results in a drop of 148 meat.
Total of 4 drops. Monster worth is 215 and frequency is 20.
Average meat from combats is 384
Average meat from noncombats (hardcoded) is 0
Combat rate is 60
Total of 3 monsters; meat per adventure is 384
Best monster is Sk8 Gnome, worth 1641.
DROP: gr8ps worth 1661. Drop rate is 40% with a modifier of 102% so actual freq is 80%
DROP: sk8board worth 80. Drop rate is 5% with a modifier of 102% so actual freq is 10%
DROP: t8r tots worth 58. Drop rate is 40% with a modifier of 102% so actual freq is 80%
Monster Sk8 Gnome has 3 drop(s):
MEAT: base drop is 70 meat with a modifier of 270% and familiar bonus of 0 results in a drop of 259 meat.
... and so on.. for half an hour or more, every time the script abort for whatever reason.
This is what I would like to be able to skip. Once the script start to acually adventure somewhere, store the gathered data, or at least the results, somewhere so that if I need to restart the script due to a bug in it or some other error, that I dont have to spend another half an hour going through the calculations.


I have now written this post in four chunks and adding bits here and there, so if it is a bit all over the place, I blame it on that.
 
The Equip-error seem to happen every time now, where it try to eqiup an item that is already equipped and failing because I only have one such item and it cant find one to equip.
Plastic pumpkin bucket is the worst one atm when the script change familiars to see what is best.

Maximizing...
928 combinations checked, best score 320.59674
Putting Champi(nj)on the Baby Gravy Fairy back into terrarium...
Taking Masquerade the Cymbal-Playing Monkey out of terrarium...
plastic pumpkin bucket is better than (none). Switching items...
Stealing plastic pumpkin bucket from Demo the Attention-Deficit Demon...
Putting on plastic pumpkin bucket...
Adjusting familiar weight by -5 pounds
You don't have the item you're trying to equip.
 
Last edited:
Built in? No. But check out zarqon's CanAdv at http://kolmafia.us/showthread.php?t=2027 for a script that will (usually) figure out whether or not adventuring is possible.
I have that one already as the Ascender use it. It seem to work somewhat in the Ascension script, or at least used to. Now it is stuck trying to make me Adv in the Degrassi Knoll as a Muscle sign, and have been trying to from lvl3 until I cleared Ronin at lvl9.
Will try to download it again and see if it help.. Only change I have made to it though is the limit to how much dmg I am willing to take in a round.
 
If you're properly using CanAdv it shouldn't do that... It does have checks and Degrassi Knoll is not available while in muscle sign...
 
If you're properly using CanAdv it shouldn't do that... It does have checks and Degrassi Knoll is not available while in muscle sign...

Since I now broke Ronin and got full access to my Inventory and gear, Ascend will not adventure in the Degrassi anymore but rather happily keep on going with the quests as it should, so sadly I cannot reproduce the error anymore (and while I could I had no thought on posting about it here) but once I started Ascend it did its ususal thing, checking what quests had been done etc, and then opened the Degrassi Knoll in that little window you get when mafia say "You're on your own".
 
I'm using farm.ash and it keeps on trying to adventure in the new tavern cellar. I changed my vars file to the following to avoid the zone

farm_skip_The_Tavern_Cellar true

What am I doing wrong?

I'm using the Build 8747
 
Not sure. I wonder if it should be "farm_skip_Tavern_Cellar"? Alas, I'm not in any real position to check at the moment. I would also see if anyone has updated canadv in light of the Tavern revamp. (Just got back from a week out of town and off net and am somewhat dense at the moment).
 
Watching the CLI output of the script I noticed that for the pirate insults nothing was really happening. Looking into it some (not the script itself) I realized that I didn't have a book of insults. I do not know what might be wrong or if this is normal (spending 60 or so adventures in the bar without the book). With the the book now I will see if the script will get the insults and continue on.
 
750k meat. I've been farming with farm.ash on this character for a week or so now and I am level 23. I got past that now after I bought the book myself and wrote the book into the CCS.
 
I've recently began playing seriously with EatDrink. I just want to share a little feature of my version so that you can add it to this version if you see fit. (My own version is not intended to be compatible with the version here, so I won't bother to post the whole thing.)

Basically, I like to be able to call EatDrink from the command line without needing an intricate alias. Since a lot of people have created these aliases to call EatDrink I suspect I'm not the only one that desires such a feature. I created a main() that accepts any and all parameters I want to control. If I don't list a parameter, then it will use the default. I call it like this:

Code:
[COLOR="#808000"]> EatDrink 1200, sim, no stats, cookie = 2, pause = 0[/COLOR]

Refreshing stash contents...
Stash list retrieved.
Internal checkpoint created.
Loading favorite consumables from user settings...
adding favorite: rockin' wagon
adding favorite: pr0n chow mein
adding favorite: twinkly wad
Starting EatDrink.ash (version 3.0, Bale Edition).
Consuming up to 13 food, 19 booze, and 15 spleen
Considering food from inventory Hagnk's the mall. Per-item budget cap is 24000.0.
Price will be a factor if you own it already. Hagnk's pulls (if enabled) will cost 3000 meat each.
An adventure has the value of [B]1200 meat[/B]. Muscle subpoint is 0.0. Nonprime stat subpoint is 0.0.
[B]Simulating only[/B]; no purchases or food/drink/spleen consumption.
Pass 1: food.

Code:
[COLOR="#808000"]> EatDrink 1500, no sim , overdrink,budget= 50000[/COLOR]

Refreshing stash contents...
Stash list retrieved.
Internal checkpoint created.
Loading favorite consumables from user settings...
adding favorite: rockin' wagon
adding favorite: pr0n chow mein
adding favorite: twinkly wad
Starting EatDrink.ash (version 3.0, Bale Edition).
Consuming up to 15 food, 19 booze, and 15 spleen and then finishing off with the stiffest drink we can find.
Considering food from inventory Hagnk's the mall. Per-item budget cap is 60000.004.
Price will be a factor if you own it already. Hagnk's pulls (if enabled) will cost 3000 meat each.
An adventure has the value of [B]1500 meat[/B]. Muscle subpoint is 10.0. Nonprime stat subpoint is 2.0.
Pass 1: food.

Since I like to change value of adventure while playing with the script, any number by iteself is used the value of adventure. (Though you could also use Value_of_adventure = 1200 if you want to spell it out.) Any boolean can be set to false by prefacing it with "no ", just 'cause I like to do that. It will use the character's actual fullness, drunk and spleen limits unless you explicitly define them. The cookie value is a feature of my version I'm working on, so ignore it. Here's my main()

PHP:
void main(string parameters) {
	SIM_CONSUME = false;
	int foodMax = fullness_limit();
	int drinkMax = inebriety_limit();
	int spleenMax = spleen_limit();
	boolean overdrink = false;
	matcher option = create_matcher("(?i)(?:(no) +)?([A-Za-z0-9_]+) *(?:= *([A-Za-z0-9]+))? *,?", parameters);
	string var, val;
	while(option.find()) {
		if(option.group(1) == "no")
			val = "false";
		else if(option.group(3) == "0")
			val = "true";
		else val = option.group(3);

		var = option.group(2);
		if(var.is_integer()) {
			val = var;
			var = "value_of_adventure";
		} else if(var == "sim")
			var = "sim_consume";

		switch(var.to_lower_case()) {
		case "use_inv":
			USE_INV = val.to_boolean(); 
			break;
		case "use_closet":
			USE_CLOSET = val.to_boolean(); 
			break;
		case "use_storage":
			USE_STORAGE = val.to_boolean(); 
			break;
		case "sim_consume":
			SIM_CONSUME = val.to_boolean();
			break;
		case "supress_overdrink":
			SUPRESS_OVERDRINK = val.to_boolean();
			break;
		case "shop":
			SHOP = val.to_boolean();
			break;
		case "budget":
			BUDGET = val.to_int();
			break;
		case "price_flexibility":
			PRICE_FLEXIBILITY = val.to_float();
			break;
		case "consider_cost_when_owned":
			CONSIDER_COST_WHEN_OWNED = val.to_boolean();
			break;
		case "cost_of_pull":
			COST_OF_PULL = val.to_int();
			break;
		case "value_of_adventure":
		case "voa":
			VALUE_OF_ADVENTURE = val.to_int(); 
			break;
		case "value_of_prime_stat":
		case "prime_stat":
		case "prime":
			VALUE_OF_PRIME_STAT = val.to_float(); 
			break;
		case "value_of_nonprime_stat":
		case "nonprime_stat":
		case "nonprime":
			VALUE_OF_NONPRIME_STAT = val.to_float();
			break;
		case "pie_priority":
			PIE_PRIORITY =  val.to_boolean(); 
			break;
		case "price_of_nontradeables":
			PRICE_OF_NONTRADEABLES = val.to_int();
			break;
		case "price_of_unknowns":
			PRICE_OF_UNKNOWNS = val.to_int(); 
			break;
		case "sim_ronin":
			SIM_RONIN = val.to_boolean(); 
			break;
		case "sim_level":
			SIM_LEVEL = val.to_int();
			break;
		case "pause":
			if(val == "false") pause = 0;
			else if(val == "true") {
				if(pause < 1) pause = 3;
			} else pause = val.to_int();
			break;
		case "stat":
		case "stats":
			if(val == "false") {
				VALUE_OF_PRIME_STAT = 0.0;
				VALUE_OF_NONPRIME_STAT = 0.0;
			}
			break;
		case "foodmax":
			foodMax = val.to_int();
			break;
		case "drinkmax":
			drinkMax = val.to_int();
			break;
		case "spleenmax":
			spleenMax = val.to_int();
			break;
		case "overdrink":
			overdrink = val.to_boolean();
			break;
		case "cookie":
			cookie = true;
			if(val.is_integer()) cookie_size = val.to_int();
			break;
		}
	}
	eatdrink(foodMax - cookie_size, drinkMax, spleenMax, overdrink);
}

Use it, modify it, throw it away as you see fit.
 
Last edited:
@leperkaun - Shall I take your comments as a bug report that Ascend does not automagically get the Big Book of Pirate Insults? I'll check.

@Bale - Thanks. It looks like something worth including.

Edit: @Bale - just FYI, the snippet didn't deal with cookie and cookie_size which were presumably defined elsewhere. Easy fix ;-) I do miss the prompting for values so I don't have to remember a whole bunch of fiddly parameter names. I wonder if there is a way to do it either/or?
 
Last edited:
Edit: @Bale - just FYI, the snippet didn't deal with cookie and cookie_size which were presumably defined elsewhere. Easy fix ;-) I do miss the prompting for values so I don't have to remember a whole bunch of fiddly parameter names. I wonder if there is a way to do it either/or?

Yeah, the code includes a few things that are only in my personal EatDrink. I assume you'll just delete those lines.

There isn't a good way to to either/or since KoLmafia will only prompt for boolean values. Though if you want to, you can institute a work-around where the script calls another script with cli_execute("call EatDrinkParameters.ash") which will take those parameters to main, then pass the values back to EatDrink with set_property()/get_property() or as zlib variables.

I'm not sure why you'd miss that prompting though. Do you ever actually call EatDrink with anything other than default values for fullness, drunkeness and spleen? As I wrote it, you'd only have to call EatDrink with sim or no sim to let it know if it is simulating and let it use your actual consumption limits.
 
Last edited:
After the recent update to zlib it seems as if eatdrink and farm both have decided to create all possible variables. I deleted them, but how large are the odds that they will come back tomorrow when I run the scripts again?
 
Close to 100%. I'm trying to figure out why but I spent too much of last week in the ER and am still under the influence of mind altering prescription drugs. My motivation has been sorely lacking, but I am getting better. While we are on the subject:
  • Ascend does not handle the Spooky Forest well.
  • Ascend does not handle the Haunted Tavern well.
  • Ascend gets confused about the Untinkerer and doesn't handle the opening quest well.
  • EatDrink is less likely to create extra variables if eatdrink_favUse is false.

These are on my todo list but, as I have said, I have been lacking in cycles to apply to KoL.

I leave it up to the user to decide whether they are more annoyed by running the older version of zLib and getting prompted about updates or running the newer one and having variable files with 5800+ entries.
 
Close to 100%. I'm trying to figure out why but I spent too much of last week in the ER and am still under the influence of mind altering prescription drugs. My motivation has been sorely lacking, but I am getting better.

Ouch, that does not sound fun at all. Hope you'll feel better soon.

I leave it up to the user to decide whether they are more annoyed by running the older version of zLib and getting prompted about updates or running the newer one and having variable files with 5800+ entries.

Tough choice that one... I'm actually not sure which would be worse :)
 
Back
Top