SmartStasis -- a complex script for a simple CCS

I've updated both and now I get
Bad item value: "Bandolier of the Spaghetti Elemental" (FirstThingsFirst.ash, line 145)
Consult script 'FirstThingsFirst.ash' not found.
You're on your own, partner.
 
I'm getting the exact same message as montoya, except that Mafia says it can't find SmartStasis.ash . And yes I've updated both and restarted.
 
If mafia doesn't know what a "Bandolier of the Spaghetti Elemental" is, then update mafia! That one shouldn't be hard to figure out.

That will take care of the other problem also.
 
SS may need special handling for doppelshifter/wardrobe or when Jick decides to prank us.
I am doing my Star Starfish 100% run using SS and the starfish transforms into another familiar an no longer regenerates MP but SS doesn't know that.
Low priority issue.
 
I've just found about the 'meatformp' (and meatforhp) calculation, and just felt like suggesting that it might be nice if the script could take into account MP regeneration from equipment and effects for the purpose of handling combo. It could take the average MP regeneration per turn and consider that as 'free' MP, thus not bother to calculate its cost. It's low priority, but it might be useful and avoids +regen equip going to waste. Might end up cluttering/slowing down the code too much though.
 
I like the new combo handling. It's working a lot better than what I had thrown together, but I do have two fringe questions that might be worth looking into:

- when a monster has one regular drop and one pickpocket-only drop, after a successful rave pickpocket of the regular drop, the script follows it up with rave concentration, but this does not accomplish anything (for example, on hellions). Does item_drops() include pickpocket-only items, or is this because the hellion cube drop rate was less than 100% and it did not recognize the rave pickpocket success?

- when a monster has one regular drop only, and its drop rate is 100%, the script will attempt to rave pickpocket before completing the combat (for example, on bookbats), but it would have dropped anyway.

I think considering the binary condition of are-there-any-less-than-100%-drops-or-not when deciding whether to cast rave pickpocket might be a worthwhile addition. Perhaps this is also relevant with the first and second regular pickpocket attempts. I suppose this is similar to what is being done for the cost-benefit analysis of the concentration combos. Being able to bypass the 4-5 rounds being used on two pickpockets and the pickpocket combo when logically applicable seems like it would be helpful in time and resource conservation. I assume that the script is not intended to be used to "detect successful pickpocket and run away", which would no longer be possible with this proposal (because it would not pickpocket when the monster can just be killed to get all of its drops).

I think what you might also want is:
Code:
Your savage beatdown seems to have knocked loose some treasure. Sweet!
You acquire an item: tattered scrap of paper
... for addition into the pickpocket detection section of zlib.

Well, perhaps I am off the mark entirely. Thank you for the quality script, in any event.
 
@Edir: SS already accounts for probable MP gained from the rest of the combat, but has thus far been ignoring MP regen. One one hand, if you have 40 max MP and 40 MP regen somehow, the script doesn't need to stasis for MP. On the other hand, there may be a 40MP skill/combo that the script could cast if only you had the MP for it. This is why I've been ignoring MP regen thus far.

It doesn't work to just subtract MP regen from the cost of skills/combos, since the script has no idea how many skills you're going to use in one combat. Instead, it would make sense to subtract it only once, since regen only happens once. However, this is complicated by earning MP in combat, which you often are if SS is stasising.

The conclusion I arrived at is that the cost of skills ought to subtract min(0, my_mp - (my_maxmp() - regen)). In perhaps more accessible terms, if you have 10 MP regen and 34/40 MP, 4 MP will be deducted from skill costs. However, if you have 20/40 MP, nothing will be deducted since you will still make full use of your regen. This will help avoid wasting regen, while also avoiding double-counting (and therefore misvaluing).

EDIT: @notusername: Ack! Ninjas afoot! You raise some good points. Your first is because ASH doesn't yet know which items are pp-only and which aren't. I'm holding out for a good ASH method of getting all the needed monster drop information. Jason has indicated it's on his to-do list.

SS already considers 100% drop rates for the Concentrations -- you're right that it should also consider that for pickpocketing. I'll get that added in soon.

And, thanks a lot for the ravepocket detection string!! I was wondering if there was a different message, but didn't see anything on the Wiki. I'll get this updated promptly in FTF, since it will affect post-ravepocket decisions.
 
Last edited:
I got this message while adventuring
Code:
Type name expected (SmartStasis.ash, line 23)
Consult script 'SmartStasis.ash' not found.
You're on your own, partner.
 
Type name expected

I just updated SmartStasis and put it where the original file was. Now I'm getting this error on adventures:

[4056] 8-Bit Realm
Encounter: Blooper
Strategy: C:\Users\***\Desktop\kol\ccs\default.ccs [default]
Round 0: razoky wins initiative!
Type name expected (SmartStasis.ash, line 23)
Consult script 'SmartStasis.ash' not found.
You're on your own, partner.

It errors out and brings up the window to have me finish the confrontation on my own. Any ideas?

EDIT: Whoops, didn't see the fix suggested on previous page. Please disregard.
 
Last edited:
Yet another great idea from Rinn. There's just one little problem at the moment. It makes the most sense to put an interrupt in the action filter, but that would interfere with completing other combos if it happened between actions. It seems that's something worth doing, however, since it enables better combos than whatever you'd be casting at the time. I'll see about adding this soon.
 
I'm not sure I follow. I suggested stasising until the ravers use their special skill so you can learn the moves, are you suggesting have SS auto learn the combos? That would also be a good idea, but not doable until all 3 skills are learned anyway.
 
I thought you were simply suggesting that SS learn the Nemesis dance skills by stasising, then using Gothy Handwave whenever the special move came along. I've already added that locally.

I was simply thinking about the possibility that someone might be in the middle of Disco Concentration-ing a monster when the special move comes along. Concentration would be interrupted.

Auto-learning the combos would be an interesting thing to add. Perhaps later when I'm actually a DB (4 runs from now).
 
Why would you be using Disco Concentration on a raver? All the item drops are conditional and only drop with the pick pocket rave combo.
 
Does item_drops() know that? Nope.

Anyway, that was the only problem I could think of and it's a very small one. I've already added the code to SS and FTF to stasis Outside the Club and learn skills.
 
Quick Question:
Why is SS getting me killed?

Code:
[555] Defiled Niche
Encounter: senile lihc
Strategy: d:\Data\My Stuff\kol\Kol Mafia\ccs\basic.ccs [default]
Round 0: alotavagina wins initiative!
Running Zarqon's SS
Round 1: alotavagina uses the turtle totem!
Round 2: senile lihc takes 1 damage.
You lose 9 hit points
Round 2: alotavagina uses the turtle totem!
Round 3: senile lihc takes 1 damage.
You lose 9 hit points
Round 3: alotavagina uses the turtle totem!
Round 4: senile lihc takes 1 damage.
You lose 9 hit points
Round 4: alotavagina uses the turtle totem!
Round 5: senile lihc takes 1 damage.
You lose 9 hit points
Round 5: alotavagina uses the turtle totem!
Round 6: senile lihc takes 1 damage.
You lose 9 hit points
Casual Combat, re-revamped.
Round 6
Round 6: alotavagina casts RAVIOLI SHURIKENS!
Round 7: senile lihc takes 12 damage.
You lose 9 hit points
Combat finished!

Health fell below 0. Auto-abort triggered.
I am taking damage with each round so I should not be in the clear, right?
Does it assume that I can kill the monster in only one round?
Is there a property that I missed that I need to edit?
 
Last edited:
It looks like SS has been packaged into something else in whatever you're running. The check for being in the clear happens in the main() of SS, which means the culprit here is not SS, but rather whatever script is including it.
 
Back
Top