First Things First -- a multipurpose pre-combat consult script

Status
Not open for further replies.
For some reason FTF is trying to cast Olfaction while I am in BM. Obviously I don't have access to the Olfaction skill while in BM.
 
This is either a mafia problem or a KoL problem, since FTF checks have_skill(olfaction). I noted myself recently that Olfaction is not greyed out on my character sheet like all my other permed skills, despite being in Bad Moon.
 
3.3 Updates!

  • As per previous discussion, FTF is now mostly transparent with mafia's one-time Olfaction and putty settings. It will auto-olfact/putty in accordance with your settings for items, monsters, and goals.
  • While I was at it, I also added transparency for mafia's autoPotionID setting. It does this only if you are in the clear.
  • As per the previous request, I moved the always-olfact and grin monster lists out into ZLib settings (comma-delimited all-lowercase lists called ftf_olfact and ftf_grin). Editing FTF is now entirely unnecessary.
  • Revamped handling of Cyrus. It now shares code with the GMoB handling, which means it fully supports flyering/throwing items/funkslinging/running away.

Enjoy!
 
@asturia: Last time I considered this, mafia was not tracking camera uses. Does it now? (I'm at work so I can't check yet.)

If I add 4-d camera support there are a few issues:

1. Should it use the camera even when you can't fight the resultant monster today?
2. How putty/camera plays together:

If you have both putty and a camera, it should probably consider them as effectually giving you 6 available daily putties, and throw both of them if necessary. Which means putty/camera logic would all be in the same place.

Unfortunately (again), since there is no way of knowing how many of a goal is still needed (sigh), it is impossible to determine whether or not to also use the camera if you have specified "goals" for autoPutty, so only putty would be thrown.
 
@asturia: Last time I considered this, mafia was not tracking camera uses. Does it now? (I'm at work so I can't check yet.)

_cameraUsed

However, since cameras cost money and get used up I'd suggest only adding them to putty uses if the player sets it that way.
 
_cameraUsed

However, since cameras cost money and get used up I'd suggest only adding them to putty uses if the player sets it that way.
I didn't know that they get used up.
I thought that they would stay when you used them, similarly to the putty.
 
"You reach down to open up the camera, but before you can do so, it's ripped into bits as a full-sized <monster name> explodes out from inside it..."
 
Seems like since it's a bit costly and once-daily it might be something best left out of FTF...?

There are already a couple options for using the camera in company with FTF:
1) a basic CCS which throws the camera after FTF.
2) using mafia's one-time putty/camera setting (assuming you don't have putty or have used it up for today) and including "special action" in your CCS.

...he said, lazily. :)
 
Hi,

why does FTF olfact the first monster i encounter instead of the goth giant?
I set "boolean should_olfact = true;"

and i didnt change: setvar("ftf_olfact","blooper, dairy goat, shaky clown, zombie waltzers, goth giant, knott yeti, sponge, hellion, violent fungus");

Sorry if this sounds really noobish, but i'm trying to pick up scripting from studying your code :)
 
The should_olfact variable is not meant to be adjusted by users. It is set to true later in the script (in the set_autoputtifaction() function) if conditions are met (i.e. you are fighting a monster specified in ftf_olfact). Leave it false, and I think you'll see FTF olfact a Goth Giant (unless you're bounty hunting Ravers).
 
Last edited:
Monster olfaction works perfectly now. After testing that out I tested out something else and... I hate to point this out right after you made an update, but there's a problem with this code:

Code:
   monster[int] menage = get_monsters(my_location());
   if (count(menage) == 0) return;
   int[monster] sources;               // monster => percentage of drop
   int[item] goals;                    // goal => number of occurances
   int[item] drops;
   foreach m in menage {
      drops = item_drops(menage[m]);
      if (count(drops) == 0) continue;
      foreach it in drops {
         if (is_goal(it)) {
            sources[menage[m]] = drops[it];
            goals[it] = goals[it] + 1;
         }
        // more settings transparency
         if (get_property("autoOlfact").contains_text(to_string(it))) should_olfact = true;
         if (get_property("autoPutty").contains_text(to_string(it))) should_putty = true;
      }
   }
I usually olfact by monster, not item, so I hadn't noticed this before, but this will olfact any monster in the zone if there is a single monster in the zone that drops the relevant item. Ooops. I'm a little hesitant to tamper because I'm not sure why you did it that way and I fear I'd break something.
 
Trying to olfact a cavewomyn hippy and have the variable set right, but she never gets olfacted. I just get a line that says:

Unable to load bounty.txt. Skipping auto-puttying/olfaction.

but i'm not trying to olfact a bounty, and the bounty.ash script doesn't make a bounty.txt file anyway, it complains about not having a canadv.ash script :P


edit: also the script casts entangling noodles on everything, is there a way to disable that?
 
Last edited:
I need canadv.ash to run bounty.ash which is needed by firstthingsfirst.ash that calls for zlib.ash, even though I don't want to do bounties in the first place? reminds me a bit of linux dependency hell :)
 
Last edited:
I'd like to suggest a new feature for this script. If you encounter a clingy pirate and you've got a cocktail napkin, use it. That's pretty much a no-brainer. Specific, yes, but there is a lot of specific handling in here.
 
Nice. And how about whatever it is you have to use against grouper groupies to get the groupie familiar? Is that a no-brainer or are there other reasons for holding on to ice skate decoys? I'm just wondering whether to make using the skate decoy goal-dependent, and I decided I could just ask you instead of check the Wiki/mall. : pbbth :

@fxer: I hear you on that. If a script requires too many libraries or supplements it's almost not worth the installation/configuration hassle to run it -- it's a turnoff, to be sure. I submitted a feature request a while ago which, if implemented, would allow people to run FTF without ever needing bounty.ash, since the requisite data file could be fetched as part of a ZLib routine.
 
Actually, ice skate decoys mall for more than grouper fangirls. I cannot imagine why, but that is a reason not to use them. The relationship between the price of roller skate decoys and urchin roe is more complicated. This is not a no-brainer of a decision... somehow. Perhaps after the Sea is completed and more people have adventured there, the prices will become more sensible.

For now I'd say that automatic use of those items should be goal dependent only.

BTW, my last ascension I finally decided to trust SmartStasis to handle the gremlins for me. Oh lordy, that was sweet! I loved it.
 
Last edited:
Status
Not open for further replies.
Back
Top