Rinn's Quest Scripts

Theraze

Active member
True (regarding line count)...

Personally I tend to think of it as having two different levels of "if" statements.
One is a simple if. If something, do something. One check, one action. No brackets, because it's irrelevant to anything else but that one check. This only works depending on code context... if an else is nearby, brackets come into play.
Two is a more complicated if. This may involve being near an else, it may be an actual if/else if/else system, it may be just that it runs two or three actions. For whatever reason, it needs brackets.

But because it involves the personal evaluation of whether or not an if qualifies as simple or not, it tends to be more difficult on code that is shared, at least shared code that multiple people will be making personal judgements on. If the code is shared and only one person makes official judgements, easy. If the code is compiled and nobody sees it, whatever the coder thinks is right... long as it works. :D

I'll try to remember to keep the brackets on the various ifs as I'm going through. :)
 

Theraze

Active member
Not sure who was going through and updating the dropbox on Feb 2, but when they were trying to clean stuff up, the code to handle the MCD bosses was broken. I'll clean my copy and overwrite those, since they don't work to accomplish their goals...

Modified files were Levels 1, 3, 4, 5, 6, 7, 8, and 11, as well as Spookyraven Upstairs and the unlocks for DoD and Temple. Since at least the MCD sensitive locations were broken, I'm not confident that only tabs were fixed in the others as well.
 

Rinn

Developer
Oh sorry that was my fault, I moved the call to "request_monsterlevel(0);" from inside the if check to after it. That function should have been before, the issue with it being inside the check is it wouldn't get called on your first ascension or in badmoon.

Additionally I made several other changes I'd like kept. I'll revert what you just did and fix where that function needs to go.

For future reference you can view the revision history from the webpage to see who made changes, and revert from there.

Edit: Okay that's fixed, my bad.
 
Last edited:

Theraze

Active member
Well, requesting 0 MCD shouldn't get called if you're badmoon or 1st ascension... you don't have MCD, so any call will result in no change. You can leave the calls in the main area... they just won't matter (besides the wasted processing).

Did make one change to the Level 4/5/7 scripts... set the mysticality trophy check as the first offered MCD level, as it would really suck to get 2 of 3 because you forgot which you were doing, or to end up missing out on the item you want because you thought you were doing the trophy.
 

Rinn

Developer
Right but that function also changes your mood, which I'd like to always happen just in case. Even on a first ascension someone could have a mood setup to request buffbot buffs or something.
 

Theraze

Active member
Ah, true. Yeah, I wasn't trying to make it skip otherwise. The mood clearing is a good choice though. :)
 

Theraze

Active member
Agreed on the changes to Level 6. Disagree on the changes to Level 3, as it removes the entire benefit of the script.

The uploaded Level 3 just replaces the entire script with "tavern". No reason to have it exist. Which also removes the potential Baron von Ratsworth fight. As that's the main benefit to having a unique script as opposed to just running the tavern solver, I did put the potential to fight Baron von Ratsworth back into the script... haven't had the chance to test it yet, but will find out in a few days.
 

Rinn

Developer
I'd rather it use mafia's internal handling for the main quest, but there's nothing preventing you from using your solution to keep looking for ratsworth after mafia's functionality has finished.
 

Theraze

Active member
Well, it's the same code running for either Rats or the Faucet... but if the goal is to have people use mafia's internal handling, why have a script for it at all? If the tavern's been solved, the built in function won't run and try to turn off the faucet again, right?
 

Theraze

Active member
A note on the level 6 script, and the change to use mafia's request types: There is no such comedy type as observe. :D

Replaced it with observational, the script ran fine. Though it did visit Mourn 4 times for every band item harvested... so something went (very) wrong there.
 

Theraze

Active member
Regarding prior post, comedy type SHOULD have been observe, but mafia had been set to observational. Mafia has since been updated to look for observe instead, and that part now works. The Mourn bit is fixed also... another mafia bit where it wanted to visit Mourn instead of Sven.

Also tested the Level 3 script yesterday and it properly found/fought/beat Baron von Rats with my desired MCD. Wouldn't you know that his mansion was in the last possible spot though... diagonally in from the bottom left corner. Ah well, least it met spading, and the visits did get properly marked...
tavernLayout=1111110000100001400011131
or, if you prefer the numbers in the grid...
11111
10000
10000
14000
11131
 

Theraze

Active member
Added a new script to the folder, Cell 37.ash, which should automatically solve the new Cell 37 quest.
If you have the lab key, but not the menagerie key, it should unlock the menagerie. If you don't have the lab key yet, it tells you to get it yourself. The lab key is just a random drop from adventuring elsewhere in the knob but it's also guaranteed from the king, so whether you want to spend adventures hoping for RNG drop or if you'd prefer the certainty on the fight you need anyways, either way you'll be picking it up eventually.

Designed the script to minimize additional server hits... It just checks to see if "The Pretty Good Escape" is in your completed quests yet, visits the cell, and then starts matching words. I believe all the checks I picked should be unique... in the case of the weremoose spit, it checks to make sure that it doesn't have the word "blubber" and abominable blubber checks that "escape" isn't on the page, as both of those might have otherwise led to adventure-sinks.

Let me know if there are any changes it needs or that you've made... as this is my current script in progress, I'm unlikely to notice that I'm wiping out someone else's changes to the script unless alerted to check, since my date/time will be different from what's already uploaded.
 

zarqon

Well-known member
This is old, but might still work...?

PHP:
import <canadv.ash>
string questlog = visit_url("questlog.php?which=2");

boolean go_primordial() {
   if (contains_text(questlog,"Primordial Fear")) return vprint("You have already completed the Primordial Fear quest.",2);
   if (!can_adv($location[primordial soup],true)) return false;
  // open the zone
   string prop = get_property("usedAgainstCyrus");
   if (prop == "") {
      while (item_amount($item[memory of some delicious amino acids]) == 0) {
         set_property("choiceAdventure349","3");           // swim down
         obtain(1,"memory of some delicious amino acids",$location[primordial soup]);
      }
      if (use(1,$item[memory of some delicious amino acids])) {}
      set_property("choiceAdventure349","1");              // swim up
      obtain(1,"choiceadv",$location[primordial soup]);
   }
   boolean have_pair() {
      for i from 4011 to 4016
         if (!contains_text(prop,to_item(i)) && retrieve_item(1,to_item(i)))
            return true;
      return false;
   }
  // go fight cyrus a few times
   while (!contains_text(questlog,"Primordial Fear")) {
      obtain(3,"memory of some delicious amino acids",$location[primordial soup]);
      while (!have_pair() && my_adventures() > 0) adventure(1,$location[primordial soup]);
      if (my_adventures() == 0) return vprint("Out of adventures.",-2);
      if (use(3,$item[memory of some delicious amino acids])) {}
      obtain(1,"choiceadv",$location[primordial soup]);        // let FTF throw the correct item at Cyrus
      questlog = visit_url("questlog.php?which=2");
   }
   return true;
}
 

Rinn

Developer
That probably doesn't work because you're not accounting for the 4 forced choice adventures you have to encounter to unlock the rest of the zone. I think the cyrus flyering in your wossname script has the same problem last I checked.
 

Theraze

Active member
Recent tweaks...
Level 3 no longer has the request_monsterlevel(0) in TavernAdventure, because it was breaking the MCD for Baron von Ratsworth.
Level 13 now has a check for the really evil rhythm tablet before the clover confirmation. If you already have the tablet, there's no difference between clover and non-clover entryway, so we can eliminate that pop-up box.

Edit: Also changed the cli_execute("maximize") from level 4 and 11 to use maximize("", false) instead.
 
Last edited:
Top