Setting a goal for an encounter ... how?

So every day I have a situation where I use a nanorhino, set the ccs to banish a monster in a zone, and then I manually adventure in the zone until the monster shows up and gets banished. I was wondering if there was a way with an alias that I could automate this. e.g.

banish => familiar("nanorhino"); ccs("a-rhino"); ??goal of banshee librarian?? ; ??adv haunted library?? ; familiar( ??? previous familiar ???; ccs ( ??? previous ccs ???)

the previous ccs and previous familiar isn't that important as I could always hard-code in values.
 

slyz

Developer
Here is the script I use to bannish. It assumes you can survive and plink easily in your monster's zone.

You can simple do "nanoban banshee librarian" (or something else ...) instead of your alias. Once it is done, either it aborts because something wasn't right or you're good to go.
 

Attachments

  • nanoban.ash
    4.2 KB · Views: 51
Slyz, I took a look at this script.. I noticed that you use the muscle skill the first turn, rather than on the same turn as the monster you want to banish. Wouldn't it be better to use the muscle skill on the turn of the monster you want to banish? I ask because often I have a different creature olfacted, and the window of opportunity to banish runs out after 10 turns.
 

slyz

Developer
Since the muscle skill is likely to kill the monster if you're in aftercore adventuring in a low level zone, I wanted to make sure the effect was up before encountering the target.

As you can see from my example, I was using it to farm tattered scraps, and there aren't many monsters in the Haunted Library. That's why I wasn't too concerned with the 10 turn window.

This script is fairly basic. If you want to adapt it to your needs, it shouldn't be too hard though!
 
So I noticed a problem when running a script that generates it's own macros as non-moxie classes. In your script you have something like this:

NANOBAN_MACRO += "pickpocket;"; // dummy first action
NANOBAN_MACRO += "if monstername " + target + ";";
NANOBAN_MACRO += " skill " + MUS_SKILL.to_int() + ";";
NANOBAN_MACRO += "endif;";

So I am wondering about this "dummy first action". I noticed that this works great for moxie classes, but for any other class even though mafia thinks it is doing a "clobber" or "toss" or whatever, it doesn't work for non-moxie
classes because it attempts to do it in round 0. Whereas for the moxie class, it does it in round 1 and it works.

I had to add in something like this for it to work:

NANOBAN_MACRO += "pickpocket;"; // dummy first action
NANOBAN_MACRO += "use spectre scepter;";
NANOBAN_MACRO += "if monstername " + target + ";";
NANOBAN_MACRO += " skill " + MUS_SKILL.to_int() + ";";
NANOBAN_MACRO += "endif;";

The use of the spectre scepter was kind of an attempt on my part to just delay the use of the muscle skill. I am wondering the following:

1) Is this a bug of some sort that the muscle skill is attempted to be used on round 0.
2) Is there a better way to delay using macros because using an item is only really good like this in aftercore.
 

slyz

Developer
I use pickpocket because it looks safe. I didn't know KoL discarded it and went on to use the next action as the "dummy" action. You could simply use "attack" instead, although that might backfire is someone figures out and fixes the issue one day.

I never managed to understand why exactly a "dummy" macro action was needed when using the 3 parameter version of adventure(). I documented in this thread what I managed to find out at the time.
 
Top