SmartStasis -- a complex script for a simple CCS

Do Richard skills show up in your options even when the bomb/bandage/whatever is unavailable? If so, is there any clue in that menu that they will work or not work? If they do show up there and no clue is provided on the page anywhere, they should probably be omitted from batfactors for now.

EDIT: Wait, I remember there being a KoL bug involving Richard skills when specified by number. Has that still not been fixed?
 
Two things:

First, SmartStasis doesn't seem to handle the slimes on the Sauceror Nemesis quest. It just kills them with spells, rather than using the sprayer to kill them and harvest their slimy rewards. Do these scripts have slime-harvesting intelligence? If they handle slime-harvesting, could Crowther's fix be the source of my trouble?

Second, a question ... SmartStasis (and/or WHAM) keeps using my CSA Obedience grenades against monsters that I can kill without them. I've been sticking the grenades in my Closet to save them for worthy targets. Is there some way to mark the grenades as "Don't use these unless you really need them"? Failing that option, could I mark them as "don't use" and save them for boss fights that I run manually?
 
Easiest "don't use" would be removing them from your copy of batfactors, which would eliminate them as an option until your batfactors updates again...
 
Do Richard skills show up in your options even when the bomb/bandage/whatever is unavailable? If so, is there any clue in that menu that they will work or not work? If they do show up there and no clue is provided on the page anywhere, they should probably be omitted from batfactors for now.

EDIT: Wait, I remember there being a KoL bug involving Richard skills when specified by number. Has that still not been fixed?

The graphical interface showed the bandage as a skill. Once I manually used the skill, it no longer shows in teh graphical interface, nor did the infinite loop get hit. I will create anotehr bandage and see if the infinite loop is easily recreatable.
 
Okay, recreated. Once my health was at 760 out of 819, stasis chose bandages while using stocking. The macro is set up was bounded on !hpbelow 760, hence the infinite loop. Purging that entry from batfactors caused it to resolve accurately, as expected.
 
Two things:

First, SmartStasis doesn't seem to handle the slimes on the Sauceror Nemesis quest. It just kills them with spells, rather than using the sprayer to kill them and harvest their slimy rewards. Do these scripts have slime-harvesting intelligence? If they handle slime-harvesting, could Crowther's fix be the source of my trouble?

Second, a question ... SmartStasis (and/or WHAM) keeps using my CSA Obedience grenades against monsters that I can kill without them. I've been sticking the grenades in my Closet to save them for worthy targets. Is there some way to mark the grenades as "Don't use these unless you really need them"? Failing that option, could I mark them as "don't use" and save them for boss fights that I run manually?

Version 3.1 adds a zlib-variable to tell WHAM to skip all items. That's the quick and dirty version of it at least... :)
 
@shazbot: The !hpbelow flag was correct -- by itself it means the action will repeat unless you lose HP. The KoL bug I'm referring to is the one where KoL has an error when you try to specify Richard skills by number in a macro. Try submitting a macro manually: "skill 7021" when the skill is available to your character and see what it gives you.

If it gives you an error, that's a KoL bug which should be reported (possibly again), if only to remind them it's actually important to some people.

@Vinnie: 1) I don't think support for slime-harvesting is in SS. Should we assume people always want to harvest slime? 2) Check historical_price for the grenades and tell me what you get. Type "ash historical_price($item[obedience grenade])" in the CLI.
 
Thanks lost. BigVinnie, if the item has no historical price for you as well, then BatBrain is valuing that item at 50 meat, which is more than likely the source of your problem. The way around this is to simply search the mall for the item at least once, like so:

> ash historical_price($item[obedience grenade])

Returned: 0

> searchmall obedience grenade

Searching for "CSA obedience grenade"...
Search complete.
12 @ 200 meat
14 @ 285 meat
32 @ 300 meat

> ash historical_price($item[obedience grenade])

Returned: 0

> ash historical_age($item[obedience grenade])

Returned: ∞

Okay, what? Scratch that, try instead running the ASH command mall_price() or actually buying one from the mall, that seems to do it:

> buy CSA obedience grenade

Searching for "CSA obedience grenade"...
Search complete.
Purchasing CSA obedience grenade (1 @ 200)...
You acquire an item: CSA obedience grenade
Purchases complete.

> ash historical_price($item[obedience grenade])

Returned: 200

> ash historical_age($item[obedience grenade])

Returned: 0.00011574073869269341

In the future, if BatBrain seems to be wasting an item, the first probable cause is that it has bad (meaning either nonexistent or outdated) price info for it.

It would probably be helpful for BatBrain to assume that any tradeable items of unknown historical value are worth a fairly prohibitive amount, like 1000. The 50 meat fallback value is just in there for items with unknowable values (untradeable with no autosell value) to keep them from being worthless; it wasn't meant as a default value for items. I'll change this since I've also had BatBrain throw some items seemingly unreasonably, just because it had a historical price of 0 for them.

ETA: And looks like roippi was watching this thread:

r11296 | roippi | 2012-07-17 17:06:43 -0400 (Tue, 17 Jul 2012) | 1 line

When performing exact mall searches in the GUI, update mall_price (and historical_price) appropriately for that item, once per session.
 
Last edited:
I guess checking historical_price() isn't so helpful, since that's ∞ for untradeable items also. I guess checking is_tradeable() would work.
 
The 50 meat fallback value is just in there for items with unknowable values (untradeable with no autosell value) to keep them from being worthless; it wasn't meant as a default value for items. I'll change this since I've also had BatBrain throw some items seemingly unreasonably, just because it had a historical price of 0 for them.
Ahh, this explains why my hoboplis combat items (from Black-and-Blue-and-Decker) occasionally get used. They have an autosell of 150 meat, but are worth far more than that to me because of the hassle of replacing them.
 
Ahh, this explains why my hoboplis combat items (from Black-and-Blue-and-Decker) occasionally get used. They have an autosell of 150 meat, but are worth far more than that to me because of the hassle of replacing them.

That's an interesting point. zarqon, what do you think about !is_tradeable(items)?

Should items be valued more highly if they are not tradeable? (Assuming that item.reusable == false.)

Crowther: Why the heck did you bother to spend hobo nickles on those things? For your display case?
 
Crowther: Why the heck did you bother to spend hobo nickles on those things? For your display case?
Ha! I was worried someone would ask that. I wanted to get one of every item from Hobopolis and I had plenty of nickles so I figured, "Yeah, those too." When I later lost them in combat, I cared for about 10 seconds and then tried to remember why I felt I needed them.

Earlier today, in hardcore, I set my MP regeneration wrong (very low) and WHAM/SmartStasis/BatBrain/BatFactors tried to use every item I had in a hopeless attempt to score enough damage before I died. The one item it didn't use was MMJ, which I used and then let WHAM easily kill off the monster.
 
@shazbot: The !hpbelow flag was correct -- by itself it means the action will repeat unless you lose HP. The KoL bug I'm referring to is the one where KoL has an error when you try to specify Richard skills by number in a macro. Try submitting a macro manually: "skill 7021" when the skill is available to your character and see what it gives you.

If it gives you an error, that's a KoL bug which should be reported (possibly again), if only to remind them it's actually important to some people.

Skill 7021 as a macro aborts, so it's still broken in KOL. I guess it should be removed from batfactors then?
 
Call me persnickety, but I have generally made a rule of not coding workarounds for either KoL or mafia bugs unless they make my scripts unusable. Mafia bugs are usually fixed extremely quickly, which partially validates this policy. KoL doesn't seem to have quite the same stellar bugfixing record, but a little more pressure from users may help them bump up the priority on bugs which are priorities for their users.

For now, if you are adventuring in Hobopolis using a BatBrain-powered CCS, removing Richard skills from batfactors is probably advisable. Also, spading and then telling me the special attack information for hobos in various zones would probably considerably improve BatBrain's performance there! :)
 
Call me persnickety, but I have generally made a rule of not coding workarounds for either KoL or mafia bugs unless they make my scripts unusable. Mafia bugs are usually fixed extremely quickly, which partially validates this policy. KoL doesn't seem to have quite the same stellar bugfixing record, but a little more pressure from users may help them bump up the priority on bugs which are priorities for their users.

For now, if you are adventuring in Hobopolis using a BatBrain-powered CCS, removing Richard skills from batfactors is probably advisable. Also, spading and then telling me the special attack information for hobos in various zones would probably considerably improve BatBrain's performance there! :)

I would have thought that the hobos were done at this point for spading. I've never really been first in on any action, are there a set of utilities help automagically do spading or is it raw number crunching?
 
Despite Hobopolis being open for years, I've not seen any numbers for either the rate or the damage ranges of the hobo special attacks. If you know where such numbers may be found, please direct me to them.

I'm not a spade and have relatively little experience spading things so unfortunately I can't give you tips on the best way to go about it -- the only thing I tried to spade once was the damage range/rate for the were-turtle, but that data seemed to either have a few anomalies or an un-accounted-for variable.
 
Back
Top