The Unofficial Ascend.ash support thread.

fronobulax

Developer
Staff member
I'm starting a separate thread so it is clearer who is doing what. dj_d knows I am doing this and expects to incorporate any changes I make into the official version. I'm doing this for my own amusement. I am not receiving nor expecting any kind of compensation. I am going to try and limit my changes to things that are broken or just plain don't work. There are numerous tweaks that could be made to make Ascend more optimal in some fashion but I am unlikely to contribute much in that area. My intention is to post changes in zip files that are password protected with the same password as the original download.

I will try and keep this page up to date with the latest package that I have prepared and with pointers to updates of other scripts that have changed since the package was built.

2010_08_24.zip is (hopefully) a complete package with the latest versions of all needed files, even those that are maintained by others and have their own thread.

Compared to the "official" Ascend, 2010_08_04
  • Works with the latest zLib, macguffin and wossname
  • Fixes some infinite loops in EatDrink
  • Imposes a daily budget on EatDrink by closeting and uncloseting meat
  • A few other things that I have forgotten but are probably mentioned in the thread

For reference I have included the latest versions of several dj_d scripts that are used by Ascend but have their own threads. I am annoyed by the duplication but I am more annoyed by the hassle associated with telling people where the latest version is. Hopefully doing so will address the latter as I get over the former ;-) (I have run into some kind of attachment limit so ver.ash, used by *Crap.ash is not included. Should probably make it go away anyway since zLib now handles versions).

Jan. 20, 2011 - EatDrink updated to include Theraze's improved handling for milk and a wrapper to test zLib variables without creating them if they don't exist.

10 MAR 2011 - I have moved EatDrink and associated support back to the official thread here.

19 MAR 2011 - I packaged my changes to Ascend et. al. and posted them in the main Ascend thread as 2011_03_19.zip.
 

Attachments

Last edited:
I was having the loop problem with eat/drink. Is there ANY way to fix this? I realize that it is a rare occasion to not have enough meat to buy those things, but I definitely ran into that situation.
 
I was having the loop problem with eat/drink. Is there ANY way to fix this? I realize that it is a rare occasion to not have enough meat to buy those things, but I definitely ran into that situation.

Right now what I have done has been to manually eat and drink to fullness, using mafia's display to help me make intelligent choices. Then i run ascend. When Ascend gets to the point where it starts the spleen stuff I just abort the script, manually over-drink and log out. I'm still trying to figure out what a solution might be because EatDrink is not especially intuitive to me. It is pretty near the top of things I want fixed so I hope to come up with something soon.
 
One way to fix it would be to make the price increase higher for each iteration. Atm it rises 1 every step on the way and if the difference is 2-300 or more than you have a problem, so if it increases by say 50 meat per iteration the convergence would be faster, or at least that's what it feels like should happen :)
 
Caveat: I run eatdrink from my own script, not from Ascend.

This eatdrink behavior has not happened to me for a while. As I recall, I aborted the eatdrink script when this loop happened. I then restarted eatdrink and eatdrink did not repeat the same behavior. As I said, it has been a while since I remember having seen this - or maybe my behavior has been modified so that when it does happen, I respond automatically now and do not remember doing it.

Of course, I also run a couple of characters from a batch file when I run out of time. The session logs over the last month seem like eatdrink ran fine. I guess I am not really any help on this topic.
 
I believe the loop is more likely when characters lack resources. Not much meat (less than 1,000), low inventory, no Hangks and so on. I am seeing it all the time on my test multi who was newly created to test Ascend. I saw it once in a while in a HC run where I had my restore settings set so that Universal Recovery spent more meat than I considered prudent.

My test fix, which will be tested tomorrow, uses an increment much bigger than 1 when there is a problem with acquisition.
 
My experience is that it pops up when the item it wants to buy has a price set to lower value than market averages with a limit on and when that limit is used up the scripts enters its lovely loop.
 
Have you also made this work with the current MacGuffin script? That generated about 36 error reports over in the Ascend thread a while ago. :)
 
Are you feeling adventurous? Willing to bleed a little on the cutting edge? Then I have a deal for you. The attachment is a version of EatDrink.ash that, in my very limited testing, does not have the looping problem. I did two things. First, when the script attempts to buy something and fails, instead of increment a target price by one, I set the target price to the maximum budget for eating and drinking. In hindsight, I'm not sure that actually made any difference, but since it was in the script that I tested and worked I figure I am better off leaving it there for the moment.

The second change is far more interesting. The script builds a map named grub, slices it and dices it and then keeps trying the "best" item. However each time through the loop, it rebuilds grub. As a consequence if there is some kind of failure with the best item, the item will nevertheless reappear for consideration and most likely be chosen again. I added a map, fail, and added items that had been selected for consumption but were not consumed to the fail map. I then deleted such items from grub before the best was selected.

The changes worked for me in both simulation mode and live as called from Ascend. I am running a brand new character who is poor. I turned off Hangk's and favorites.

If you are so inclined, you might consider backing up your copy of EatDrink.ash, downloading my version and running it. If it "misbehaves" let me know. I will probably want to see the eatdrink section of the vars_CharName.txt file in the data subdirectory and the EatDrink output from the session log.

This is an Ascend thread. However, EatDrink was released to the public for free so there should be no concerns about giving something away that is not mine to give.

UPDATE: This isn't the version of EatDrink you are looking for. Try following the link in the first post.
 

Attachments

Last edited:
It's good to see another developer picking up where dj_d left off! I expect this project to have a long lifetime. I am excited to wait for the latest versions of everything to be reintegrated into the suite.
 
fronobulax, I've been testing your update to EatDrink for a few days with a couple junk multis, and it seems to work great. As for ascend.ash, I'll wait 'til more of its been made to work with updated versions of its companion scripts.
 
Function 'eatdrink( int, int, int, boolean, boolean, boolean, boolean, boolean, boolean, boolean, int, float, boolean, int, boolean, int, int, int, boolean, int, int, boolean, int )' undefined. This script may require a more recent version of KoLmafia and/or its supporting scripts. (Ascend.ash, line 94)

I also have the eatdrink_modifed.ash, and renamed it to eatdrink.ash, I have the latest version of zlib.ash.

I should have kept backup copys of the old script, because they worked fine with an old version of mafia. :(

I downloaded v8463 today, and got this error. I've tried all other versions of mafia already too.

Any help with this would be great.

-Paz
 
Last edited:
Function 'eatdrink( int, int, int, boolean, boolean, boolean, boolean, boolean, boolean, boolean, int, float, boolean, int, boolean, int, int, int, boolean, int, int, boolean, int )' undefined. This script may require a more recent version of KoLmafia and/or its supporting scripts. (Ascend.ash, line 94)

I downloaded v8463 today, and got this error. I've tried all other versions of mafia already too.

Any help with this would be great.

-Paz

I could be mistaken, but that doesn't sound like line 94 in the version of Ascend I have. First thing to do would be to make sure that EatDrink.ash is in your scripts directory. The best option would be the one I posted in the current thread, Post #9. (Someday, I'll figure out how to link to a specific post). The only feedback I have received on that one is that it does work better than the old version.

Alternatively, you could backup your scripts directory, download the original Ascend from here put the files in your scripts directory, then unload and unzip my first set of fixes from post #1 of this thread and add and replace the files in your scripts directory with those and then finally, if you have not already done so replace EatDrink with the previously mentioned version.

Eventually this will get simpler but I need to get some testing done by others on a few things and I need to clearly separate the scripts people paid for from the ones that were free.
 
I could be mistaken, but that doesn't sound like line 94 in the version of Ascend I have. First thing to do would be to make sure that EatDrink.ash is in your scripts directory. The best option would be the one I posted in the current thread, Post #9. (Someday, I'll figure out how to link to a specific post). The only feedback I have received on that one is that it does work better than the old version.

Alternatively, you could backup your scripts directory, download the original Ascend from here put the files in your scripts directory, then unload and unzip my first set of fixes from post #1 of this thread and add and replace the files in your scripts directory with those and then finally, if you have not already done so replace EatDrink with the previously mentioned version.
.

Ok, I've done all this, and now I am having THIS problem. (haha, seems like nothing but problems for me now)

Function 'explore_entire_city( )' undefined. This script may require a more recent version of KoLmafia and/or its supporting scripts. (Ascend.ash, line 1214)
 
Function 'explore_entire_city( )' undefined. This script may require a more recent version of KoLmafia and/or its supporting scripts. (Ascend.ash, line 1214)
That is defined in hiddencity.ash which should have been in the original zip file here. Is it in your scripts directory? If not then perhaps re-extracting it might help.

My test multi is only Level 8 so I am several days away from experience this problem personally.

@lost - thanks. I believe I correctly linked to a particular post.
 
An update.

I found another loop in EatDrink and fixed it. For those who care, retrieve_item followed by use was generating some kind of unexpected flow control when retrieve_item returned false and that was followed by an unconditional call to use. The net result was that the code to detect a lack of success with an item was bypassed and consequently an infinite loop occurred. Also, and this is not fixed, if EatDrink decides you need either of the boxen, it will try and obtain both.

Update: This isn't the version of EatDrink you are looking for. This is.
 

Attachments

Last edited:
Another update. The attached zip file contains the files included here in 2010_05_18.zip PLUS updated versions of canadv, EatDrink and farm. Canadv is used by farm and should be the version from the CanAdv thread with the unofficial change noted in this post. EatDrink fixes the two looping conditions noted so far, as discussed upstream in the current thread. farm was changed to address some "delete from map" errors. Winterbay actually did the work and I just did limited testing. I am including it here in anticipation of the time when dj_d blesses the changes and updates Ascend.

As far as I can tell farm was sold by dj_d which is why it is included in the encrypted zip file. If farm is a publicly released, free script let me know and I will post the changes "for all".

For convenience the latest versions ofFirstThingsFirst and SmartStasis are included.
 

Attachments

got this when I ran the simulation for farm.ash
Code:
Best location is Daily Dungeon with the command line 'maximize item drop;familiar Baby Gravy Fairy;'. Expected value is 1069. The best monster there is Vampire Clam, who is worth 9700 meat.

Monster Apathetic Lizardman has 0 drops. Worth is 0; frequency is 11.
Monster Dairy Ooze has 0 drops. Worth is 26; frequency is 11.
Monster Dodecapede has 0 drops. Worth is 0; frequency is 11.
Monster Giant Giant Moth has 0 drops. Worth is 0; frequency is 11.
Monster Mayonnaise Wasp has 0 drops. Worth is 0; frequency is 11.
Monster Pencil Golem has 0 drops. Worth is 0; frequency is 11.
Monster Sabre-Toothed Lime has 0 drops. Worth is 0; frequency is 11.
Monster Tonic Water Elemental has 0 drops. Worth is 0; frequency is 11.
Monster Vampire Clam has 1 drops. Worth is 9700; frequency is 11.
Total of 9 monsters; meat per adventure is 1069
Best monster is Vampire Clam, worth 9700.

Submission failed: java.io.FileNotFoundException: http://zachbardon.com/mafiatools/updateprices.php
All done! Goodnight.
Requests complete.


It seems way screwy that a monster from the DD would be deemed the best for meat drops.
If you need more info let me know.
 
Last edited:
Did you run the one from this thread? Because that have been modified to use item_drops_array() in order to avoid giving that high value to the Vampire Clam (an dother monsters with pickpocket only items).

What is your class and level?

Edit: Also, try an "update clear" in the CLI to force it to fetch new prices. I had a problem a while with it putting too high value on some items due to the historical price my mafia had was higher than the market value actually was.

In order to help with that you should probably do a search and replace for "http://zachbardon.com/mafiatools/updateprices.php" and change it to "http://kolmafia.us/scripts/updateprices.php" since that feature has moved.
 
Last edited:
Back
Top