bumcheekcend.ash - A zero setup semi-automated ascension script!

Ok just tried .43 for doing a Boris ascension and when it ran it got this

Maximizing (1st time may take a while)...
2 combinations checked, best score 19.375
Putting on chef's hat...
Equipment changed.
You need 1 more Clancy's sackbut to continue.

Even though Clancy comes with his sackbut equiped when you start.

I am on 10721 of mafia
 
Yeah, sorry about that. I was already past the point where I got other parts when I tested that. Fixed in 0.44 (aka the current SVN-version).

Also, I used to_float(to_int()) as a quick fix as I needed to run my turns before heading out and had no time to come up with a better solution. AS to_float(boolean) now works again I've changed the SVN-version back again.
 
I added a "i_a("clancy's sackbut") >0"-check to the equiping of it. If it gets down there and we don't have it, it is fairly certain clancy has it so we can just continue.

The bug will stop all running of the script as an Avatar of Boris until you get either the Lute or the Crumhorn which is a bit of a bummer. I guess. I've run most of my first two days by hand anyway lately (hence me not realising that error earlier) since it is a bit awkward without any good fighting skills at the start, but if you want to run it from the beginning as an AoB you won't be able to with the current version.
 
it is a bit awkward without any good fighting skills at the start.
Isn't Mighty Axing a "pretty good fighting skill"? I use it all the time, through the entire run. Eventually, I soften foes up with Intimidating Bellow first, but even so.

Of course, I haven't even dipped my toe into the Fighting Tree, yet, but I don't feel like I'm underpowered.
 
Isn't Mighty Axing a "pretty good fighting skill"? I use it all the time, through the entire run. Eventually, I soften foes up with Intimidating Bellow first, but even so.

Of course, I haven't even dipped my toe into the Fighting Tree, yet, but I don't feel like I'm underpowered.

Yes it works okish, but if you're scripting and don't want to always play it safe you may end up with points where it won't hit the monster (it appears ot have roughly the same hitchance as a normal attack). I like auto-hits (which is why I mainly play myst classes I guess) for safety :)
 
I get these error messages when running version 0,43 and 0,44 with the latest daily build of kolmafia at the time of posting:
Code:
WARNING: Missing return values in boolean functions will soon become an      error (bumcheekascend v0.44.ash, line 496)
WARNING: Missing return      values in boolean functions will soon become an error (bumcheekascend      v0.44.ash, line 707)
WARNING: Missing return values in boolean      functions will soon become an error (bumcheekascend v0.44.ash, line 794)
WARNING:      Missing return values in boolean functions will soon become an error      (bumcheekascend v0.44.ash, line 795)
WARNING: Unreachable code      (bumcheekascend v0.44.ash, line 979)
WARNING: Unreachable code      (bumcheekascend v0.44.ash, line 980)
WARNING: Unreachable code      (bumcheekascend v0.44.ash, line 981)
WARNING: Unreachable code      (bumcheekascend v0.44.ash, line 982)
WARNING: Unreachable code      (bumcheekascend v0.44.ash, line 983)
WARNING: Unreachable code      (bumcheekascend v0.44.ash, line 1073)
WARNING: Unreachable code      (bumcheekascend v0.44.ash, line 1076)
WARNING: Unreachable code      (bumcheekascend v0.44.ash, line 1079)
WARNING: Unreachable code      (bumcheekascend v0.44.ash, line 1082)
WARNING: Unreachable code      (bumcheekascend v0.44.ash, line 1087)
WARNING: Unreachable code      (bumcheekascend v0.44.ash, line 1090)
WARNING: Unreachable code      (bumcheekascend v0.44.ash, line 1093)
WARNING: Unreachable code      (bumcheekascend v0.44.ash, line 1096)
WARNING: Unreachable code      (bumcheekascend v0.44.ash, line 1099)
WARNING: Unreachable code      (bumcheekascend v0.44.ash, line 1102)
WARNING: Unreachable code      (bumcheekascend v0.44.ash, line 1105)
WARNING: Unreachable code      (bumcheekascend v0.44.ash, line 1108)
WARNING: Unreachable code      (bumcheekascend v0.44.ash, line 1112)
WARNING: Unreachable code      (bumcheekascend v0.44.ash, line 1115)
WARNING: Unreachable code      (bumcheekascend v0.44.ash, line 1389)
WARNING: Unreachable code      (bumcheekascend v0.44.ash, line 1390)
WARNING: Unreachable code      (bumcheekascend v0.44.ash, line 1391)
WARNING: Unreachable code      (bumcheekascend v0.44.ash, line 1392)
WARNING: Unreachable code      (bumcheekascend v0.44.ash, line 1393)
WARNING: Unreachable code      (bumcheekascend v0.44.ash, line 1394)
WARNING: Unreachable code      (bumcheekascend v0.44.ash, line 1449)
WARNING: Unreachable code      (bumcheekascend v0.44.ash, line 1450)
WARNING: Unreachable code      (bumcheekascend v0.44.ash, line 1451)
WARNING: Unreachable code      (bumcheekascend v0.44.ash, line 1452)
WARNING: Unreachable code      (bumcheekascend v0.44.ash, line 1453)
WARNING: Unreachable code      (bumcheekascend v0.44.ash, line 1454)
WARNING: Missing return values in      boolean functions will soon become an error (bumcheekascend v0.44.ash,      line 1925)
WARNING: Missing return values in boolean functions will      soon become an error (bumcheekascend v0.44.ash, line 2133)
WARNING:      Missing return values in boolean functions will soon become an error      (bumcheekascend v0.44.ash, line 2574)
WARNING: Missing return values in      boolean functions will soon become an error (bumcheekascend v0.44.ash,      line 2575)
WARNING: Missing return values in boolean functions will      soon become an error (bumcheekascend v0.44.ash, line 2705)
WARNING:      Missing return values in boolean functions will soon become an error      (bumcheekascend v0.44.ash, line 2706)
WARNING: Missing return values in      boolean functions will soon become an error (bumcheekascend v0.44.ash,      line 2707)
WARNING: Missing return values in boolean functions will      soon become an error (bumcheekascend v0.44.ash, line 2708)
WARNING:      Missing return values in boolean functions will soon become an error      (bumcheekascend v0.44.ash, line 2709)
WARNING: Missing return values in      boolean functions will soon become an error (bumcheekascend v0.44.ash,      line 2710)
WARNING: Missing return values in boolean functions will      soon become an error (bumcheekascend v0.44.ash, line 2715)
WARNING:      Missing return values in boolean functions will soon become an error      (bumcheekascend v0.44.ash, line 2764)
WARNING: Missing return values in      boolean functions will soon become an error (bumcheekascend v0.44.ash,      line 2840)
WARNING: Missing return values in boolean functions will      soon become an error (bumcheekascend v0.44.ash, line 2982)
WARNING:      Missing return values in boolean functions will soon become an error      (bumcheekascend v0.44.ash, line 3055)
WARNING: Unreachable code      (bumcheekascend v0.44.ash, line 3067)
WARNING: Unreachable code      (bumcheekascend v0.44.ash, line 3071)
WARNING: Missing return values in      boolean functions will soon become an error (bumcheekascend v0.44.ash,      line 3073)
WARNING: Missing return values in boolean functions will      soon become an error (bumcheekascend v0.44.ash, line 3144)
WARNING:      Missing return values in boolean functions will soon become an error      (bumcheekascend v0.44.ash, line 3168)
WARNING: Missing return values in      boolean functions will soon become an error (bumcheekascend v0.44.ash,      line 3306)
WARNING: Missing return values in boolean functions will      soon become an error (bumcheekascend v0.44.ash, line 3333)
WARNING:      Missing return values in boolean functions will soon become an error      (bumcheekascend v0.44.ash, line 3476)
WARNING: Missing return values in      boolean functions will soon become an error (bumcheekascend v0.44.ash,      line 3588)
WARNING: Missing return values in boolean functions will      soon become an error (bumcheekascend v0.44.ash, line 3603)
WARNING:      Missing return values in boolean functions will soon become an error      (bumcheekascend v0.44.ash, line 3645)
WARNING: Missing return values in      boolean functions will soon become an error (bumcheekascend v0.44.ash,      line 3657)
WARNING: Missing return values in boolean functions will      soon become an error (bumcheekascend v0.44.ash, line 3896)
WARNING:      Missing return values in boolean functions will soon become an error      (bumcheekascend v0.44.ash, line 3942)
WARNING: Missing return values in      boolean functions will soon become an error (bumcheekascend v0.44.ash,      line 4431)
WARNING: Missing return values in boolean functions will      soon become an error (bumcheekascend v0.44.ash, line 4713)
WARNING:      Missing return values in boolean functions will soon become an error      (bumcheekascend v0.44.ash, line 4750)
WARNING: Missing return values in      boolean functions will soon become an error (bumcheekascend v0.44.ash,      line 5185)
WARNING: Missing return values in boolean functions will      soon become an error (bumcheekascend v0.44.ash, line 5265)
WARNING:      Missing return values in boolean functions will soon become an error      (bumcheekascend v0.44.ash, line 5278)
WARNING: Unreachable code      (bumcheekascend v0.44.ash, line 5441)
WARNING: Unreachable code      (bumcheekascend v0.44.ash, line 5452)
WARNING: Unreachable code      (bumcheekascend v0.44.ash, line 5497)
WARNING: Unreachable code      (bumcheekascend v0.44.ash, line 5511)
WARNING: Unreachable code      (bumcheekascend v0.44.ash, line 5577)
WARNING: Missing return values in      boolean functions will soon become an error (bumcheekascend v0.44.ash,      line 5579)
 
The devs made scripts actually tell you when you write sloppy code. :) They'll disappear as the normal BCA people get their chance to look at the lines and update them.
 
What's "unreachable code"?

I suppose I'll have to go through and change some booleans to voids and suchforth. I don't have the time at the moment, hopefully this can wait until the end of the week.
 
Last edited:
What's "unreachable code"?

I suppose I'll have to go through and change some booleans to voids and suchforth. I don't have the time at the moment, hopefully this can wait until the end of the week.

I'll take a look at it when I log in with my character that actually runs the script :)

Edit: Aaand done. That was a lot of things so I hope I didn't screw anything up...

That said most of the "unreachable code" was breaks after returns.
 
Last edited:
bumcheekcity's Ascension Script 0.44

With special mention and continued thanks to Winterbay for the commitment to the script!

Please note that v0.40 includes some logging of settings and actions into the script. These include:
- Username
- Script Settings
- Everything from api.php?what=status except your password hash, which would be useless but I strip out anyway.


[ ... omitted ]


UPDATE 20/02/2011 - Download files from the SourceForge page - this does not require registration!

What does this logging entail? Where is it logged? For what purpose?
 
It is logged at BCCs server and is, as far as I know, only available to BCC. It is intended to be used to see how the script is being used.

What's being logged is listed in the first post so, username, script settings and whatever is returned from "api.php?what=status" which I guess is your level and such at the time.
 
What does this logging entail? Where is it logged? For what purpose?

The logging entails the recording of the given data and nothing more (I do not log IP addresses) stored unencrypted on my server in a mySQL database, just like the snapshot information. The following are examples of the "settings" and "api" information from the last time I used the script.

The purporse of the logging is to enable me to see what settings people have on, which is amazingly useful for debugging PICNIC (or whatever acronym we prefer for that) issues. It's also useful for determining ideas of how many people run the script, with what frequency, whether people tend to use it for 100% runs, etc.

Basically, I'm just collecting data in order to best see how people are using the script. Nobody else is able to access the raw information, and that's how the situation will remain. I'm happy to answer any further questions people might have on it.

{"bcasc_100familiar":Sleazy+Gravy+Fairy,"bcasc_doWarAs":hippy,"bcasc_doSideQuestArena":false,"bcasc_doSideQuestJunkyard":true,"bcasc_doSideQuestBeach":true,"bcasc_doSideQuestOrchard":true,"bcasc_doSideQuestNuns":true,"bcasc_doSideQuestDooks":true,"bcasc_fightNS":true,"bcasc_bartender":false,"bcasc_chef":true,"bcasc_bedroom":true,"bcasc_cloverless":false,"bcasc_MineUnaccOnly":false,"bcasc_sellgems":true,"bcasc_telescope":true,"bcasc_telescopeAsYouGo":true,"bcasc_getItemsFromStorage":true,"bcasc_defaultFamiliar":Lil+Xenomorph,"bcasc_dontLevelInTemple":false,"bcasc_disableMCD":false,"bcasc_shutUpAboutOtherScripts":true,"bcasc_doNotRemindAboutSoftcore":true,"bcasc_defaultCasualAction":,"bcasc_maxBees":,"bcasc_doCasualAsHC":false,"bcasc_doMystAsCCS":false,"bcasc_skipSteel":false,"bcasc_sellWarItems":true,"bcasc_prepareFoodAndDrink":false,"bcasc_doNotFax":false,"bcasc_3KeysNoWand":true,"bcasc_doNotUseSpleen":false,"bcasc_doNotCloversToLevel":false,"bcasc_disableMoods":false,"bcasc_fightProtectorSpectre":true,"bcasc_ignoreSafeMoxInHardcore":false,}

{"playerid":"109875","name":"bumcheekcity","hardcore":"0","ascensions":"113","path":"8","sign":"Mongoose","roninleft":"1000","casual":"0","drunk":"0","full":"0","turnsplayed":"206846","familiar":"0","hp":"29","mp":"21","meat":"4742","adventures":"122","level":"1","rawmuscle":"9","rawmysticality":"1","rawmoxie":"4","basemuscle":"3","basemysticality":"1","basemoxie":"2","familiarexp":"0","class":"11","lastadv":{"id":"0","name":"(none)","link":"main.php","container":""},"title":"1","maxhp":71,"maxmp":47,"muscle":24,"mysticality":17,"moxie":18,"famlevel":1,"daysthisrun":"3","equipment":{"hat":"3662","pants":"4400","weapon":"5552","acc1":"4644","acc2":"5299","acc3":"4911","fakehands":0},"stickers":[0,0,0],"flag_config":{"lazyinventory":0,"questtracker":"1","compactchar":0,"fullnesscounter":"1","nodevdebug":0,"noquestnudge":"1","nocalendar":"1","alwaystag":"1","clanlogins":"1","quickskills":0,"hprestorers":"1","hidejacko":0,"anchorshelf":"1","showoutfit":"1","wowbar":0,"swapfam":0,"invimages":0,"showhandedness":0,"acclinks":"1","invadvancedsort":"1","powersort":"1","autodiscard":0,"unfamequip":"1","invclose":0,"sellstuffugly":0,"oneclickcraft":"1","dontscroll":"1","multisume":"1","threecolinv":"1","profanity":"1","autoattack":0,"topmenu":0},"recalledskills":0,"freedralph":0,"mcd":0,"rollover":null,"turnsthisrun":0,"familiar_wellfed":0,"clancy_wantsattention":false,"clancy_level":1,"clancy_instrument":"1","intrinsics":[],"familiarpic":"","pathname":"Avatar of Boris","effects":[]}
 
If this bothers you, you can probably just comment out line 449, where the URL gets submitted to bcc's server.

This feels to me like it's bypassing the opt-in/opt-out "notify" stuff in the beginning of the script, but that's not really up to me.
 
I'll take a look at it when I log in with my character that actually runs the script :)

Edit: Aaand done. That was a lot of things so I hope I didn't screw anything up...

That said most of the "unreachable code" was breaks after returns.

Did you commit that, it doesn't seem to be showing up?

I'm unsure as to why unreachable code is an issue, but if it's fixed, it's fixed.
 
It's only an issue because KoLmafia reports it now - and it may become an error in the future, making your scripts no longer runnable. That's bad.
 
No, I mean I understand that it'll probably be an error in the future, I just don't understand why it's a warning, but if Winterbay's already got to it, I can't see it being a big thing.
 
I believe Jason is going to leave unreachable code as a warning. Functions lacking return values are the ones that will become errors.

Unreachable code is meaningless, so it's objectively a good thing to prompt scripters to remove it.
 
Back
Top