Bug - Not A Bug Macro Aborted: 37 instructions (In a row?!) executed without any actions being taken

fronobulax

Developer
Staff member
Not sure this is worthy of a new report but I'm not sure where it best fits otherwise. It may also be a duplicate since I'm not sure what UR does in combat and whether what it does is actually supported by the current state of macrofication.

Hardcore, oxy, Sauceror auto adventuring in the Goatlet to get cheese. r8419 (so I had the hasskill update). No CCS. Action set to skill saucestorm. Bale's UR in use but no other scripts or Greasemonkey running.

Adventuring stops in the middle of a fight popping up a mini-browser. Message in title appeared on mini-browser page. Was able to manually end fight casting Saucestorm. Happened several times but not always on the first adventure of auto-adventuring. May have occurred after UR triggered but I'm not certain. Have mafia debug log if anyone is interested but did not capture the special macro specific output.
 

jasonharper

Developer
Procedure for reporting a problem related to macrofication:

1. Type:
set macroDebug = true
in the CLI.
2. Duplicate the problem.
3. Post the CLI output from the failed combat.

Were you able to immediately cast Saucestorm in the mini-browser, or did you need to restore some MP first?
 

fronobulax

Developer
Staff member
Couldn't duplicate because I ran out of adventures. Tomorrow's another day.
I was able to cast Saucestorm immediately in the mini-browser.
 

fronobulax

Developer
Staff member
It didn't happen today. Could be because I was running r8421 or could have been some edge case that my stats have now passed. FWIW below is the macro generated today (and yesterday's debug log attached - see the end) but I think this probably belongs in the Could Not Reproduce category.
Code:
Generated macro:
sub mafiaround
endsub#mafiaround
sub mafiamp
if     hascombatitem 518
call mafiaround; use 518
goto mafiampexit
endif
abort     "No MP restoratives!"
mark mafiampexit
endsub#mafiamp
#mafiaheader
mark     mafiafinal
while mpbelow 10
call mafiamp
endwhile
if hasskill     4005
call mafiaround; skill 4005
endif
goto mafiafinal
 

Attachments

  • DEBUG_20100505.txt
    1.2 MB · Views: 60

fronobulax

Developer
Staff member
So, it happened again and because I didn't bother to turn it off, I do have the generated macro. This time, I was autoing in the Orc Chasm.
The Generated macro is:
Code:
sub mafiaround
endsub#mafiaround
sub mafiamp
****if hascombatitem     347
********call mafiaround; use 347
********goto     mafiampexit
****endif
****if hascombatitem 518
********call     mafiaround; use 518
********goto mafiampexit
****endif
****abort     "No MP restoratives!"
****mark mafiampexit
endsub#mafiamp
#mafiaheader
mark     mafiafinal
while mpbelow 10
****call mafiamp
endwhile
if     hasskill 4005
****call mafiaround; skill 4005
endif
goto     mafiafinal

A portion of the session log is:
[1032] Orc Chasm
Encounter: me4t begZ0r
Strategy: skill saucestorm
Round 0: cafebabe loses initiative!
You lose 17 hit points
Generated macro:
...
Round 1: cafebabe executes a macro!
Round 1: cafebabe casts SAUCESTORM!
You acquire an effect: Burning Ears (duration: 1 Adventure)
You lose 18 hit points
Round 2: cafebabe uses the Dyspepsi-Cola!
You gain 12 Mana Points
You lose 17 hit points
You're on your own, partner.
The decision to use the cola was made for me by UR.

Hope this is helpful. Thanks.

Perhaps related, I only have Dyspepsi-Cola in my inventory because it drops. A hypothesis offered in ignorance is that the macro was generated at the start of combat and the generated macro no longer does "the right thing" when an item is consumed durign combat. Lots of places to check, though, if that is the case.
 
Last edited:

jasonharper

Developer
The decision to use the cola was made for me by UR.

No, UR only deals with out-of-combat restoration, other than perhaps ensuring that you have some in-combat restorers available.

This would appear to be a server-side problem with the new 'hasskill' predicate. I don't think I can do anything about it.
 

Bale

Minion
No, UR only deals with out-of-combat restoration, other than perhaps ensuring that you have some in-combat restorers available.
perhaps = whenever there is meat to purchase them. Because mafia's in-combat restoration is awesome.
 

StDoodle

Minion
Yeah, in my experience thus far UR is pretty smart about how much it keeps on hand vs. how much meat you have. Keeping 4 anti-anti-whatevers does seem a bit much, though. ;)

Also -- on topic -- every time I've had the 37 message, it's been user-error (lack of repeat). YMMV.
 

fronobulax

Developer
Staff member
Also -- on topic -- every time I've had the 37 message, it's been user-error (lack of repeat). YMMV.
User error? AFAIK I am not doing anything different than I did before the KoL macros. I have never looked at them and if I am using them it is because mafia is doing so on my behalf. What errors were you making? Maybe I'm doing something unintentionally wrong?
 

StDoodle

Minion
Sorry, I was just trying to include something on-topic; I didn't mean to imply that that may or may not be relevant to your situation, just saying that the only times I've seen it come up, it was my own fault, so I don't really have any useful experience to add.
 

Bale

Minion
Yeah, in my experience thus far UR is pretty smart about how much it keeps on hand vs. how much meat you have. Keeping 4 anti-anti-whatevers does seem a bit much, though. ;)
I've gotten poisoned 4 times in the same darn fight, so I'll have my 4 antidotes. :p
 

Bale

Minion
Thanks. It's nice to know that I'm not the only one who thinks that 4 antidotes is not excessive.
 

StDoodle

Minion
You guys should really perm entangling noodles, then. :p

Seeing as this is my biggest "complaint" on UR to date, I'm not too worried. I would find having 2 useful, so that means a whopping 60 meat "wasted," which... yeah. No biggie. </threadjack>
 

Bale

Minion
I've been getting this problem also. Here's my CLI with macroDebug on.:

Code:
[971] Themthar Hills
Encounter: dirty thieving brigand
Strategy: skill weapon of the pastalord
Round 0: bale wins initiative!
Round 0: bale casts ENTANGLING NOODLES! (auto-attack)
Generated macro:
sub mafiaround
endsub#mafiaround
sub mafiamp
****if hascombatitem 518
********call mafiaround; use 518
********goto mafiampexit
****endif
****abort "No MP restoratives!"
****mark mafiampexit
endsub#mafiamp
#mafiaheader
while mpbelow 3
****call mafiamp
endwhile
if hasskill 3004
****call mafiaround; skill 3004
endif
mark mafiafinal
while mpbelow 24
****call mafiamp
endwhile
if hasskill 3008
****call mafiaround; skill 3008
endif
goto mafiafinal

Round 2: bale executes a macro!
Round 2: bale casts WEAPON OF THE PASTALORD!
KoLmafia thinks it is round 3 but KoL thinks it is round 2
Round 3: dirty thieving brigand takes 122 damage.
Round 3: Chu climbs up and sits on your shoulder, and hands you some Meat. Huh, where did he find that?
You gain 62 Meat.
Round 3: bale casts WEAPON OF THE PASTALORD!
Round 4: dirty thieving brigand takes 103 damage.
Round 4: bale uses the magical mystery juice!
You gain 24 Mana Points
You lose 31 hit points
You're on your own, partner.

minibrowser pops up with:

>You're fighting a dirty thieving brigand
HP: 4, Atk: 213, Def: 215
You call forth a Lascivious Katana of Manicotti, which strikes your opponent for 61 (+61) damage.Chu climbs up and sits on your shoulder, and hands you some Meat. Huh, where did he find that?You gain 62 Meat.Your opponent struggles against your entangling noodles, but to no avail.Round 3!You call forth a Lascivious Axe of Macaroni, which strikes your opponent for 52 (+51) damage.Your opponent struggles against your entangling noodles, but to no avail.Round 4!You drink the Magical Mystery Juice, and your Mana Points are partially refreshed.You gain 24 Mana Points.Your opponent struggles free of your entangling noodles.He finally manages to steal some of your Meat, but not the Meat in your wallet -- the meat that makes up your thigh, your bung, and your giblets.Eek! Ouch! Argh! Eek! Ow! Argh!You lose 31 hit points.Macro Aborted: 37 instructions (In a row?!) executed without any actions being taken.

At that point I have 35MP.
 
Last edited:

StDoodle

Minion
Is the hasskill predicate failing to properly return true from KoL right after mp restoration? That would do it, but I dunno of anyone else having this problem (but haven't checked in in a while, either).
 

jasonharper

Developer
Definitely a server-side bug - hasskill apparently will never return true once it's returned false, within a single macro invocation. I'm working up a bug report right now.
 

StDoodle

Minion
Wow, that's an annoying bug. :(

EDIT to avoid double-post:

On the GD forum, RoyalTonberry wrote:
There is currently a bug with macros such that "hascombatitem <ID>" always returns true. "hascombatitem <name>" still works though.

I stumbled upon this a couple days ago. The devs know about it.
I wonder if something similar applies to hasskill?
 
Last edited:

slyz

Developer
Marking this as Not A Bug, since apparently the problem wasn't on KoLMafia's end. I have no idea if the server-side problem with "hasskill" or "hascombatitem" was fixed though.
 
Top