MacGuffin 2.0 -- level 11 quest, automated

shazbot

Member
So there is still a bug with getting the Mega Gem in the newest version (at least for me). When I get to that stage, I have a meatcar. So it goes ahead and gets the stew. But if never adventured in the lab to turn it in (nor does it adventure there to get the next step of the quest. And because the next step checks for the 'lion oil, a bird rib, and some wet stunt nuts' in the quest log, it never adventures in the lab to turn it in for the Mega Gem. One option is to make that check look for that quest, or have wet stunt nut stew in inventory. However, rumor has it that the probability of the stew items dropping is hire after seeing Mr. Alarm, so it may be worthwhile to always go to the lab first. But that's just speculation.
 

Theraze

Active member
Huh... at some point I'll finally have to try the zarqon Macguffin again, instead of the Rinn Level 11 script I've been doing the last 10 ascensions or so. Just to debug. :) Think I might have a character a day or three away from this, but we'll see...
 

fronobulax

Developer
Staff member
I almost always have to handle the Mega Gem manually. I believe, although there is no particular basis for doing so, that at one time Mr. Alarm always appeared immediately in the Laboratory if the stew was in your inventory and that is what the script expects. I have a vague recollection that was because the adventure was changed from unconditional to super-likely. In any event my experience has been that if the first adventure with the stew in the lab is not Mr. Alarm with the Mega Gem then the script doesn't know what to do and stops.
 

Theraze

Active member
First major problem, obvious due to the fact it hasn't had an official update in a while, is that it looks for the wrong familiar for BHY BM unlock... after I finish doing the basic run, I may look into fixing/spinning a BHY aware version. Just need to check what else needs fixings. My copy of Level 11 does that, but has manual code to validate finding the right choiceadv for Mr Alarm...

Bug 2... it runs obtain pirate fledges, but doesn't equip the swashbuckling outfit first to make it actually work. It didn't automatically use the ball polish or rigging shampoo. I'd already used the mop, so... sort of tragic, and not sure what the best way to do this. Probably pulling this part of obtain:
Code:
      if (retrieve_item(n, to_item(cond))) return vprint("You have "+n+" "+cond+", no adventuring necessary.",5);
      if (!in_hardcore() && storage_amount(to_item(cond)) > 0) take_storage(n-have_item(cond),to_item(cond));
Basically, check if I can pull fledges or they're closetted or somehow else available. If not, try to obtain any of the 3 items, using them as soon as we get them, with pirate fledges or out of adventures as the end-goal.
Thought regarding Bug2: Unless someone dislikes this plan, I think what I'll just do is combine (!retrieve_item(1, $item[pirate fledges]) && !take_storage(1, $item[pirate fledges])) and run the adventuring if both of those fail.
 
Last edited:

Winterbay

Active member
Setting a goal of "1 pirate fledges" will fail if you have already used any of the items since Mafia uses them all at the same time so you have to make sure to use them as you go along or you will get a problem with infinite adventuring. Just pointing this out so it's not missed since I have not looked at the code at all (so for all I know it may already be there) :)
 

Theraze

Active member
Nope, it just tries to do an obtain, which sets it as a goal if retrieve and storage both fail. However, if you've done any manual adventuring or used Rinn's Pirate script for any of it, you're kinda sunk. So I think I'll end up with my obtain replacement on them. :) Still won't help if you haven't unlocked the F'c'le yet, but I'll try to give a more useful abort message there about manually adventuring to unlock, etc.
 

shazbot

Member
So I took some time to work out at least A solution-
Code:
   boolean get_stew() {
      if (item_amount($item[wet stunt nut stew]) > 0) return true;
      vprint("Getting wet stunt nut stew...",2); 
      if (item_amount($item[wet stew]) + creatable_amount($item[wet stew]) == 0) {
         visit_url("guild.php?place=paco");
         obtain(1,"wet stew",$location[whitey's grove]);
      }
      obtain(1,"stunt nuts",$location[palindome]);
      return create(1,$item[wet stunt nut stew]);
   }  
   if (contains_text(questlog,"Fats, but then you lost it")) {
      get_stew();
      vprint("Meeting Mr. Alarm...",2);
      cli_execute("conditions clear");
      obtain(1,"choiceadv",$location[Cobb's Knob Laboratory]);
      updatelog();
   }
   if (contains_text(questlog,"lion oil, a bird rib, and some stunt nuts")) {

The tweaks to get_stew aren't necessary (I originally did it because I was going to do things a little bit differently). But with the change I made, it should attempt to make the stew and then tries to visit Mr. Alarm whether or not it fails. That way you either turn it in and get the Mega Gem or quest log updates to the next step and Whitey's Grove is then available. It should probably have a message saying which conditions is happening, but it's quick and dirty. Caveat- I already had the wet stunt nut stew in my inventory by the time I ran it with my alterations, so I'm not actually positive if it will work in the other use cases.
 

Theraze

Active member
My change to the same section was as follows...
PHP:
   if (contains_text(questlog,"Fats, but then you lost it")) {
      if (item_amount($item[bitchin meatcar]) > 0 && item_amount($item[wet stunt nut stew]) < 1) get_stew();
      vprint("Meeting Mr. Alarm...",2);
      cli_execute("conditions clear");
      obtain(1,"choiceadv",$location[Knob Laboratory]);
      updatelog();
   }
No sense in trying to get another stew if you've already made it... I don't need it telling me that I've already made it. :) I know. But yeah, actually ran into this today... on one of my rare Macguffin runs instead of Level 11 runs. :)
 

Raven434

Member
Any chance for a tweak to *not* buy black paint or the forged documents automatically when you're on a fist run?

Gracias!
 

stannius

Member
Any chance for a tweak to *not* buy black paint or the forged documents automatically when you're on a fist run?

Gracias!

Or even automatically fight Wu the Betrayer.

It bought me some black paint, luckily I had enough meat from the cyrpt that the loss of 1000 wasn't a huge deal, but not enough to afford the documents.
 

jeseravi

New member
when I tried using this and it got to the spooky forest part... it told me that it needed me to manually complete the three choice adventures... Is there a way for me to make it so it does this by itself?
 

zarqon

Well-known member
I think fighting Wu automatically based on your macguffin_fightbosses setting would be lovely. I don't want it to be 100% automatic because on my first Fistcore run, he beat me up twice before I realized I needed to buff myself up a bit more and heal up more HP going in.

I'll post a path-friendly version of this once I get the URL to visit for fighting Wu.
 

Theraze

Active member
Yeah... what I'm doing on the Rinn script is this:
Code:
		if (my_path() != "Way of the Surprising Fist")
		{
			if (available_amount($item[forged identification documents]) == 0)
			{
				buy(1, $item[forged identification documents]);
			}

			if (available_amount($item[can of black paint]) == 0)
			{
				try_acquire(1, $item[can of black paint]);
			}
		}
		else
		{
			buffer page = visit_url("woods.php?action=fightbmguy");
			page = run_combat();
		}
 

zarqon

Well-known member
Now that there are three bosses, I'm moving all the boss combats into a fight_boss() function. Will update after I test the function on a multi this evening.
 

kain

Member
I'm sure you're aware, but black_market_available() returns false after you beat wu-tang, thus ensuring that you spend all your adventures in the black forest looking for the map/bird parts if you have to resume the script for some reason.

Changing the first line of mg_start() to
Code:
   if (!black_market_available() && !contains_text(visit_url("woods.php"), "blackmarket.gif")) {
seems to fix things.

in a totally unrelated note, I wonder if batbrain will throw tangle of rat tails at tomb rats ...
 

zarqon

Well-known member
Argh, forgot about the fix to Mr. Alarm. I still don't exactly understand the problem, as it's worked fine for me every run in both HC and SC, but I'll review this thread and see what changes others have posted to get a clue.
 

fronobulax

Developer
Staff member
Argh, forgot about the fix to Mr. Alarm. I still don't exactly understand the problem, as it's worked fine for me every run in both HC and SC, but I'll review this thread and see what changes others have posted to get a clue.

This is from memory but what I recall happening is that the script would visit the laboratory once, expecting to encounter Mr. Alarm and essentially giving up when he did not appear at that first adventure. I'm pretty sure that the script had also obtained the stew before visiting and that I did not manually visit the lab without the stew although I am less certain of that.
 
Top