Nemesis quest script

Winterbay

Active member
Where I notice it hijacking my combat is usually the nemesis lair in the mountains while farming for paper strips and things like that... It really likes to attack with weapons there. :) But yeah, when I care, I cancel out, change it back from attack to custom, and run the combat/boss myself.

Well, it's designed to be run in aftercore and at level 13 those monsters are not really hard to just hack away at even for a myst-class.
 

Theraze

Active member
Yeah, I know... I just tend to have it usually run around level 4-8 to pick off some of those adventures when I run out of useful things to do and don't feel like meatfarming the treasury. Or if I need an extra 20+ base stat... grabbing LEW and the hat are nice in HC. :)
 

Donavin69

Member
I used SmartStasis this time, but started another TT run yesterday, I'll test it later this week.

Thanks for the fix!

I started it today, got to the turtles, only had a few advs left, but didn't tame any (I'm not sure if any were French or not, is there a way to tell in automation?)

I'll try more tomorrow...I'll turn verbosity up
 

slyz

Developer
Turning up verbosity won't show anything. One thing you could check is if noodles is cast at the start of the battle (if you have noodles permed).
 

Donavin69

Member
This multi doesn't have noodles, I have my CCS set to throw gobs of wet hair, but I understand this is supposed to change my CCS?

My CCS contains:
[ guard turtle ]
attack with weapon
item gob of wet hair
consult FirstThingsFirst.ash
consult SmartStasis.ash
consult spamattack.ash

The attack sequence:
[1195] The Outer Compound
Encounter: guard turtle
Strategy: C:\KOLMafia\ccs\CastleFarm.ccs [guard turtle]
Round 0: cheesecake_baby loses initiative!
Round 0: cheesecake_baby attacks!
Round 1: Tort latches onto it and slows it down...
Round 1: guard turtle drops 21 attack power.
Round 1: guard turtle drops 21 defense.
Round 1: cheesecake_baby attacks!
Round 2: guard turtle takes 80 damage.
Round 2: cheesecake_baby attacks!
Round 3: guard turtle takes 83 damage.
Round 3: cheesecake_baby wins the fight!
 
Last edited:

slyz

Developer
Was that a french turtle?

EDIT: Mafia says
Code:
Strategy: C:\KOLMafia\ccs\CastleFarm.ccs [guard turtle]
but the CCS is overridden.
 

Donavin69

Member
That's what I thought...but it still isn't getting the frenchies...I'll leave the nemesis unfinished (I'll wait a couple of days to ascend) in case you want me to try something...it appears to just kill all of them...

I'm thinking another 'dummy' type action (or even acquire wet hair, and use it) might be good here
// build combat macro
string macro = "pickpocket; "; // dummy action that KoL will execute before starting the combat
if ( have_skill( $skill[ entangling noodles ] ) ) macro += "skill 3004; ";
macro += "if match french; skill 7083; repeat; endif; attack; repeat;";
 
Last edited:

slyz

Developer
Pickpocket is already a "dummy" action, why another one?

Or maybe using pickpocket would only work for moxie classes, and it would be better to use attack as the dummy action. Could you replace this line
PHP:
string macro = "pickpocket; "; // dummy action that KoL will execute before starting the combat
by
PHP:
string macro = "attack; "; // dummy action that KoL will execute before starting the combat

In any case, I should have a little of bit of time to figure this out next week.
 

Donavin69

Member
PHP:
string macro = "attack; "; // dummy action that KoL will execute before starting the combat

That worked, except now I need to get my mood set so that I buff enough to not get my butt kicked when I do it :)
 

Donavin69

Member
On the volcano maze, I have had it fail many times, is that a mafia problem?
PHP:
Mafia will now try to solve the Volcano Maze, please wait...
1 total platforms seen.
Map #1 has 34 platforms
35 total platforms seen.
Current position: 6,12 on map 1
Current position: 6,12 on map 1
Move to: 5,12 on map 1
Map #2 has 36 platforms
71 total platforms seen.
Move to: 5,11 on map 2
Map #3 has 30 platforms
101 total platforms seen.
Move to: 4,12 on map 3
Map #4 has 35 platforms
136 total platforms seen.
Move to: 3,11 on map 4
Map #5 has 33 platforms
169 total platforms seen.
Paths examined/made 21/21 ->no solution found.
You can't get there from here. Swim to shore and try again.

At this point I usually just manually do the maze, since I fight the nemesis manually, its no big deal...
 
Last edited:

slyz

Developer
PHP:
string macro = "attack; "; // dummy action that KoL will execute before starting the combat

That worked, except now I need to get my mood set so that I buff enough to not get my butt kicked when I do it :)
That would work, yes. The script just tries to maximize your muscle if you don't have enough to hit the turtles, and stops if you get beat up at the first combat, but surviving is up to you.
On the volcano maze, I have had it fail many times, is that a mafia problem?
No, it's a maze problem. Mafia does 5 jumps in order to see the whole maze and compute a solution. When those 5 jumps aren't enough, you have to swim back to shore and try again.

I had tried to add a loop in the script to swim back to the shore and solve again, but that didn't work. I think the problem was the result value of cli_execute(), which should be fixed now. I'll try to add it again.
 
Last edited:

Grotfang

Developer
I had tried to add a loop in the script to swim back to the shore and solve again, but that didn't work. I think the problem was the result value of cli_execute(), which should be fixed now. I'll try to add it again.

When these mazes first came out I set up a script based on the six known layouts (lava.ash). I am still receiving notify messages (about once a week now) and have yet to hear of it failing. If the native functionality -- which often costs HP -- still fails, that script will be unlikely to. It's there if you want to use it.
 

slyz

Developer
Thanks for the offer Grotfang :)

I just uploaded v1.6: the fix for turtle taming wasn't working for me, so I took a different approach which doesn't rely on adventure().

I also put back the maze solving loop, but Mafia solved it with problem the first time for me, so it's untested.
 

Donavin69

Member
I'm getting ready to ascend my multi again, does the TT fix still need to be tested? (he can do another TT run if needed)
 

slyz

Developer
I tested it myself before implementing the change. Even though it never hurts to be sure, don't choose your class just to test nemesis.ash :)
 

Theraze

Active member
Did find a TT problem, I think... doesn't it take 6 turtles saved? Version 1.6 of the script only tries to save 5. It's saving 6 turtles, using the skill on them 5 times each...
 

slyz

Developer
Thanks. Apparently I never let the script unlock the nemesis lair as a TT without interrupting it at least once during the turtle taming :)

v1.7 fixes that.
 

Winterbay

Active member
Did find a TT problem, I think... doesn't it take 6 turtles saved? Version 1.6 of the script only tries to save 5. It's saving 6 turtles, using the skill on them 5 times each...

Aha! That would explain it failing on me last time. Never understood why and so did that part manually :)
 

Theraze

Active member
With 3 lines being changed or added, this would be fully 100% run compliant... :)
Code:
	location farm_location = vars[ "nemesis_farm_location" ].to_location();
	familiar farm_familiar = vars[ "nemesis_farm_familiar" ].to_familiar();
	if (to_familiar(vars["is_100_run"]) != $familiar[none]) farm_familiar = to_familiar(vars["is_100_run"]);
	string farm_outfit = vars[ "nemesis_farm_outfit" ];
Added line is the 100% run one. If you have a 100% familiar set up, use that instead of the farm_familiar.
Code:
familiar choose_potato()
{
	if (to_familiar(vars["is_100_run"]) != $familiar[none]) return to_familiar(vars["is_100_run"]);
	foreach fam in $familiars[ Squamous Gibberer, Temporal Riftlet, Cotton Candy Carnie, Emo Squid, Levitating Potato, Untamed Turtle, Cuddlefish ]
If we're in a 100% run, instead of a potato, use your given familiar.
Code:
	set_property( "autoSteal", "true" );
	set_property( "battleAction","try to run away" );
	if ( have_familiar( $familiar[ Frumious Bandersnatch ] ) && to_familiar(vars["is_100_run"]) != $familiar[none] && to_familiar(vars["is_100_run"]) != $familiar[Frumious Bandersnatch] ) use_familiar( $familiar[ Frumious Bandersnatch ] );
	cli_execute( "conditions clear" );
If we're in a 100% run, even if we do have a frumious bandersnatch, if our 100% run isn't for a frumious bandersnatch, don't use it. We could cut out one side of this or the other, but if the user doesn't have a between battle script that reequips, they might end up familiar-less if this is the first step of their adventuring after training a different familiar in the arena or something. We don't protect any other familiar types there, but... hey, it's a chance to potentially save one familiar's 100% run. :)
 
Top