Bug Fight Loop?

Running Loopgyou and this is what happens. Kasekopf thinks it's related to an infinite loop within Mafia fight handling:

 

Attachments

  • DEBUG_20221025.txt
    217.4 KB · Views: 3

Kasekopf

New member
Just to add some help understanding my script-specific log outputs, deMorphine is fighting a rampaging adding machine with CCS file
[default]
if monsterid 141;if hasskill 7408;skill 7408;endif;endif;if monsterid 141;while !mpbelow 20;skill Infinite Loop;endwhile;attack;repeat;endif;while !mpbelow 20;skill Infinite Loop;endwhile;attack;repeat;
and autoattack:
if monsterid 141;if hasskill 7408;skill 7408;endif;endif;

Mafia appears to go into an infinite loop when parsing the fight request.

This is probably caused by the fact that BALLS macros don't work against the adding machine according to the wiki. I will try to adjust the script's CCS file to not submit a BALLS macro against it, but I think there is a mafia issue here too.
 
Last edited:

Veracity

Developer
Staff member
I expect it is because KoLmafia will not macrofy vs. a Rampaging Adding Machine.

Macrofier.jmacrofy():

Code:
    if (monsterName.equals("rampaging adding machine")
        && !KoLConstants.activeEffects.contains(FightRequest.BIRDFORM)
        && !FightRequest.waitingForSpecial) {
      if (debug) {
        RequestLogger.printLine("(unable to macrofy vs. RAM)");
      }

      return null;
    }

Having failed to macrofy your CCS, FightRequest.nextRound():

Code:
      else if (monsterName.equals("rampaging adding machine")
          && !KoLConstants.activeEffects.contains(FightRequest.BIRDFORM)
          && !FightRequest.waitingForSpecial) {
        this.handleAddingMachine();
      }

Apparently, handleAddingMachine() is choosing "skip" as the action.

When we try to go to the next line in your CCS, there is none, so it reuses the last one.
That is the identical macro, which we will not macrofy, so, recurse ad infinitum.

I'm not seeing where it is getting the "skip". That will take further analysis.
What is the value of the "addingScrolls" preference?
I suspect it is "1", which means "get goal scrolls only" - and you have no goals.

Yes, our adding machine support seems to be a bit funky.
 

Veracity

Developer
Staff member
Other posts about adding machine automation:
People have disparate and strong opinions.

... many many other threads...
 

Crowther

Active member
Likely useless, but this is what I do in aftercore:
Code:
conditions clear;
conditions add 1 64067 scroll;
conditions add 12 334, 4 668, 4 30669;
conditions check;
conditions add 1 64735, 2 31337;
adv 30 valley of
Yes, I really should be using acquire instead. This causes mafia to make a 64735 first, then two 31337 and as many 668's as it can before combat ends. I ended at this point from using trial and error.
 
Top