Fishbot.ash

digitrev

Member
So, the Floundry is a thing, and we all need to get that sweet, sweet fish. Well, savoury fish, but you get the idea.

Introducing, Fishbot! This is a very simple script. Install it via
Code:
svn checkout https://svn.code.sf.net/p/digitrev/code/fishbot
and then run it by fishbot n, where n is the number of adventures you want to spend fishing. It will try to keep your clan's fish stores balanced, so it will adventure in the location where your clan has the least number of fish that you can also access. It'll also try to keep you from burning turns if you don't have a fishin' pole. It won't stop you from burning turns if you aren't in a clan.

Fishbot will now maximize your fishing skill, and then try to maximize your +combat rate after that.
 
Last edited:

Erich

Member
Nice, thank you for this.

Suggestion: Zombies drop the wriggling worm, which is notrade. I know I've gotten a few from The Unquiet Garves, which was a fishing spot in the first 2 days of the floundry. If the script has to choose a zone, choosing one with a mob that can drop the worm can help with maximizing fishing skill.
 

digitrev

Member
Hm. A wriggling worm is only worth 5 extra fish, assuming full combat. Until I get a better idea for the wriggling worm drop-rate, I'll leave the logic as is.
 
Is it supposed to change locations automatically or will it just keep adventuring in the same place till it does all the turns? I think switching would be a great addition so it switches locations when it has fished somewhere enough
 

digitrev

Member
From the announcement.

To follow up, the script checks the clan stocks when you start it up, and then tracks the fish you obtain. So if you start with, say, 0 fish in two locations, it'll adventure in the first zone until it gets the first fish, then switch to the second zone until it gets another fish, and alternate between the two until they catch up with the other 4 fish stocks.

In order to minimize server hits, it only checks the clan stocks when you start running it, so it won't account for the fish that your clannies find while the bot is running.
 

Theraze

Active member
That's as simple as running the prep version of CanAdv after it's made its decision. Since it's already running it to see if the zone is available, it's just a single line addition to the adventure loop in main.
Code:
		keep_up_buffs();
		can_adv(leash_fish(), true);
		adventure(1, least_fish());
 
Two things today:

One of today's fishing zones is the Bubblin' Caldera. With the mandatory stat cap, this seems like a sufficiently dangerous zone that some players may prefer to avoid it entirely during automation. (Or maybe most players are only going to run this in aftercore? "Day 17 of a super-lazy HC run because I couldn't be assed advancing quests" is probably a non-central use for this script. Well, it's a thought.)

Another one of today's zones is the Spooky Gravy Burrow. This area requires a specific familiar to enter, which fishbot dutifully switched to, but it failed to switch back upon leaving.
 
(Or maybe most players are only going to run this in aftercore? "Day 17 of a super-lazy HC run because I couldn't be assed advancing quests" is probably a non-central use for this script. Well, it's a thought.)

*Looks at Mafia logs noting past 2000 turns spent in haunted library, for that exact reason* >.>
 

sadoatcakes

New member
Would it make sense to have fishbot check where the next adventure is going to be before doing things like changing familiars? I've been running it today & we're evidently low on trout because it's adventuring over & over in the spooky gravy barrow (which is fine). But because I'm seeing a lot of this:

Putting Iqaluit the Frozen Gravy Fairy back into terrarium...
Taking Keggy-Sue the Lil' Barrel Mimic out of terrarium...
plastic pumpkin bucket is better than (none). Switching items...
Stealing plastic pumpkin bucket from Iqaluit the Frozen Gravy Fairy...
Unequipping Iqaluit the Frozen Gravy Fairy...
Familiar equipped.
Putting on plastic pumpkin bucket...
Equipment changed.
Maximizing...
48 combinations checked, best score 30.00
Putting Keggy-Sue the Lil' Barrel Mimic back into terrarium...
Taking Iqaluit the Frozen Gravy Fairy out of terrarium...
plastic pumpkin bucket is better than (none). Switching items...
Stealing plastic pumpkin bucket from Keggy-Sue the Lil' Barrel Mimic...
Unequipping Keggy-Sue the Lil' Barrel Mimic...
Familiar equipped.
Putting on plastic pumpkin bucket...
Equipment changed.

Visit to MusSign: The Spooky Gravy Burrow in progress...

[8085] The Spooky Gravy Burrow
Encounter: spooky gravy fairy ninja
Strategy: C:\Users\Chrost\ccs\weapons.ccs [default]
Round 0: sadoatcakes wins initiative!
Round 0: sadoatcakes tries to steal an item!
Round 1: Iqaluit shoots a beam of ice-cold water at your opponent, hitting him for 21 damage.
Round 1: spooky gravy fairy ninja takes 21 damage.
Round 1: sadoatcakes attacks!
Round 2: spooky gravy fairy ninja takes 653 damage.
Round 2: Iqaluit throws an M-80 at him, hitting him for 50 points of explosive hot damage.
Round 2: spooky gravy fairy ninja takes 50 damage.
Round 2: sadoatcakes wins the fight!
After Battle: Iqaluit does a little fairy dance.Iqaluit holds out the plastic pumpkin bucket, hoping for extra goodies.
You acquire an item: spooky mushroom
After Battle: You gain 5 Beefiness
After Battle: You gain 6 Wizardliness
After Battle: You gain 14 Smarm

Putting Iqaluit the Frozen Gravy Fairy back into terrarium...
Taking Keggy-Sue the Lil' Barrel Mimic out of terrarium...
plastic pumpkin bucket is better than (none). Switching items...
Stealing plastic pumpkin bucket from Iqaluit the Frozen Gravy Fairy...
Unequipping Iqaluit the Frozen Gravy Fairy...
Familiar equipped.
Putting on plastic pumpkin bucket...
Equipment changed.
Maximizing...
48 combinations checked, best score 30.00
Putting Keggy-Sue the Lil' Barrel Mimic back into terrarium...
Taking Iqaluit the Frozen Gravy Fairy out of terrarium...
plastic pumpkin bucket is better than (none). Switching items...
Stealing plastic pumpkin bucket from Keggy-Sue the Lil' Barrel Mimic...
Unequipping Keggy-Sue the Lil' Barrel Mimic...
Familiar equipped.
Putting on plastic pumpkin bucket...
Equipment changed.

Visit to MusSign: The Spooky Gravy Burrow in progress...

It just seems like a bit of a waste to do all the familiar stuff before determining the next adventure location since it's putting the fairy away, de-equipping the bucket, getting out the barrel mimic, and equipping the bucket, only to put the barrel mimic away, de-equip the bucket, take out the fairy, equip the bucket...

I don't know that it matters in any significant way -- just thought that it could be more efficient.

EDIT: I realised that I didn't have any equipment on the fairy fishbot is using (since I usually use a different one), which is why the business with the pumpkin bucket is happening. So that's changed, but it's still putting the two in and out of the terrarium over and over between rounds.
 
Last edited:

digitrev

Member
Hm. This is what fishbot should be doing:
  • Find the locations you can adventure in (this should not entail changing familiars)
  • Save your current familiar
  • Prepare for the next zone (this may entail changing familiars)
  • Adventure once in that zone
  • Change to your previous familiar, if it was changed
  • Continue the loop
.

So in theory, it will change your familiar multiple times per adventure. However, if you know that you'll need to spend a large number of turns in the Burrow, you could consider manually switching familiars before running the bot. I'll think about trying to do some sort of insight as to whether or not it should bother changing your familiar back before the next iteration of the loop.
 

digitrev

Member
If your clan has more than 1000 fish in all its stocks, fishbot should no longer fail to find a place to adventure.
 

xKiv

Active member
This looks like "if the next location is the same as the current location, do not bother changing familiar back". So perhaps ...

Code:
familiar original_fam = my_familiar();
location previous_location = my_location();
try {
   while (...) {
      ...
      adventure(...);
      if (previous_location != lf && original_fam != my_familiar()) {
         original_fam.use_familiar();
      }
      previous_location = lf;
      ...
   };
} finally {
   // always return to the original familiar at the end
   original_fam.use_familiar();
}

(and get rid of "f" entirely)?
 

Lxndr

Member
I had a computer crash and had to recover my prefs file- which led to the loss of Mafia's memory of my last semi-rare. Fishbot stalled out as soon as I hit my SR number and then I manually got a semi-rare.

But I seem to recall fishbot actually getting a semi-rare every time it hit the number (and drinking a Lindy). But even though I've manually set my "last semi-rare" it still stalls out and doesn't get me my SR. What am I doing wrong, what can I fix? I'm sure there's something else that got damaged in the crash. Or maybe a script-specific variable I don't know about? I can't puzzle anything from the script out.
 

digitrev

Member
Fishbot shouldn't have anything to do with semirares. I know that CounterChecker can try to drink/eat to find out your SR info, as well as get the most profitable SRs.
 

Capn

Member
Love the script, thank!
I do wish i could tweak outfits a bit tho.
Given the option, after setting for Zone Specific gear / Fishing Skill / +Combat, I would be looking to select Item Drop (or at least/particularly Mr. Cheeng's Specs.)

just a thought.
 
Top