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

Status
Not open for further replies.
Can I please get some help? It told me I needed to update zlib and firstthingsfirst, so I went to the two threads, downloaded the new version, moved the old versions from my script folder to the trash, and them moved the new ones over. When I try to run Mafia, it says,

[2858] Giant's Castle
Encounter: Goth Giant
Strategy: /Users/gothictranquility/Library/Application Support/KoLmafia/ccs/default.ccs [default]
Round 0: gothictranquility wins initiative!
Expected ), found aggregate (zlib.ash, line 146)
Consult script 'firstthingsfirst.ash' not found.
You're on your own, partner.

My custom combat, which worked fine before, says:

[ default ]
1: special action
2: consult firstthingsfirst.ash
3: attack with weapon
 

zarqon

Well-known member
And for the record, the "special action" is unnecessary, since FTF is now fully transparent with mafia's combat settings (pickpocket, olfact/putty, ID potions/spheres, remove poison).
 

kain

Member
I dunno about anyone else, but in my stupid-lazy softcore runs, I like to pull the pirate insult book and insult pirates while I'm getting the pirate outfit.

I find that I have to re-add the ability of FTF to insult in the pirate cove after I update.

Would you mind adding the pirate cove to the release version of FTF? If not, no big deal :)

Code:
  if (my_location() == $location[barrrney's barrr] || my_location() == $location[pirate cove] ) {
 

Bale

Minion
As HC4L, my first reaction was, "Huh? How could you insult pirates while getting the pirate outf... OH!" LOL! :D
 

Bale

Minion
Good point! It could have happened that I'd have a lucre opportunity when I had the outfit, but hadn't finished collecting insults. It would have been a good opportunity to lucre. That may have happened to me when I was still collecting them.
 

Bale

Minion
zarqon, several times I've seen people who want to know how to make mafia abort combat on an unknown monster. How adding this...

PHP:
   setvar("ftf_abortOnUnknown",true);
   if(vars["ftf_abortOnUnknown"].to_boolean() && nowfightingonstageone = $monster[none]) 
      vprint("Unknown monster!",0);

I'll leave it to you if the feature is opt-in or opt-out. (Default true or false.) It'd just be nice to have.
 
Last edited:

zarqon

Well-known member
Sure. Instead of adding another setting I'll have FTF abort if unknown_ml is set to 0. Again, will be updated when proto-BatMan hits the forum.

EDIT: Also, in the future, please adhere to the naming conventions I recommended for ZLib settings (all lowercase). I'm not as OCD as you are but seeing your Java-style names mixed in with all the others' PHP-style names makes me cringe. Thanks. :)
 
Last edited:

Bale

Minion
Hm. Taking a look at my vars file, mine do look a little different from yours, don't they? :)

The interesting thing is that if you take a look at dj_d's vars you'll see that he alternates between my style, yours and another where he uses underlines between each word and captializes each word... At least my naming convention is consistent with itself. ;)

Sure. Instead of adding another setting I'll have FTF abort if unknown_ml is set to 0.
I don't understand why those two things should be linked. Often when I hit monsters with an unknown ml, mafia does know those monsters and I wouldn't want FTF to assume their level is 0.
 
Last edited:

heeheehee

Developer
Staff member
Sure. Instead of adding another setting I'll have FTF abort if unknown_ml is set to 0. Again, will be updated when proto-BatMan hits the forum.

Instead, can we have something along the lines of if(!(get_monsters(my_location()) contains foe) || (foe==$monster[none])) abort;? It seems like people would want to finish combat manually if the monster isn't from the zone (e.g. FoB monsters) or if it's a new monster.

Of course, don't add it unless the general consensus is that it'd be a step forward (as opposed to a massive pain).
 

zarqon

Well-known member
It would be a bit of a pain (not too massive). There are a couple serious problems with it though: 1) it would interfere with BBB synergy, since it would abort for dolphins and possibly putty monsters, and 2) it would also abort for the assassins in the new Nemesis content.

@Bale: that's only for $monster[none]. Known monsters would still be handled normally.
 

heeheehee

Developer
Staff member
The idea was that it would abort for those nemesis monsters, along with others, in case the user wanted to fight those manually (those monsters are sometimes stronger than other monsters in the zone).

I didn't think about those cases -- my_location() would return your previously visited location, then, right? I guess hardcoding something for those special cases would work. Although I thought that BBB would use putty monsters after getting them, so the location wouldn't be a problem.

Of course, it's all moot point if BatMan can handle unknown monsters and scaling monsters well.
 

zarqon

Well-known member
Aborts for monsters that have names can be added to your CCS. It's the unknown ones that need scripted aborts.

Also, I try to avoid adding settings where possible, since they are loaded into memory for every instance of ZLib. I think this is a good additional use of an existing setting -- unknown_ml is meant to specify the assumed ML for unknown monsters. Assuming unknown monsters to have a ML of 0 is fairly stupid, so it's safe to use that value to mean that the user wishes to abort for unknown monsters.
 

Bale

Minion
Looks like there's no real reason to add this feature after all. Jason has added it to mafia.

Code:
revision 8168

When an unrecognized monster is being fought, and there is no CCS section
that matches its name, look for an [unrecognized] section (so that the player
can choose to abort and see the new content for themself), rather than
looking for a match of the location name (which may be entirely inappropriate
for the new monster).

jasonharper on Sat Feb 20 19:36:00 PST 2010
 

Bale

Minion
By tidy, you mean you don't want to see anything except for [default], smartstasis and a method of killing everything?

Speaking of which, I just noticed that SmartStasis will try to kill off chasm monsters with a dictionary! I got to remove a section from my CCS for that.
 

zarqon

Well-known member
Yeah -- other than [default], I only want to see aborts and runaways. And maybe basement monsters.

The dictionary will be removed from FTF with the advent of BatMan, since location sensitivity is part of the damage formula for dictionaries.
 
Status
Not open for further replies.
Top