My personal Meat farming script

Veracity

Developer
Staff member
I have confirmed that this script does not play nicely with CounterChecker.

The semirare adventure arrived, VMF decided where it wanted to go.
CounterChecker kicked in and went somewhere else.
VMF went where it wanted - and got a stupid adventure, as expected -and then drank another Lucky Lindy.
Next semirare, CounerChecker decided to go for a "black eyedrops", as opposed to what was configured - and then couldn't eat a fortune cookie.

Yeah. that sucks.

Either we defer to CounterChecker - which wants to collect semirares and then eat a fortune cookie - or we disable it and do our own counter handling.
 

Veracity

Developer
Staff member
And, by the way, revision 113 deals with the following bugs:

- searched for "best foods". At fullness 2, "bowl of maggots" was it - with a single seller in the entire mall at less than mall price limit - and that one had a limit of one.
(There are now a couple of sellers offering it at on-competitive prices), but, if you can't acquire the number you expected, move on,
- if you actually collect 3 semirares in a session, when it came time to drink another Lucky Lindy, you couldn't. We did not handle this case correctly.
- We do a bulk mallpricess to prime Sweet Synthesis.
There are 195 "potions" and 23 "food" candies
This means if I could search for "candy" in the mall, it would take 22 server hits,
Instead, searching for "potions" and "food", it takes takes 104 (potion) + 68 (food) = 172 server hits and 2 file updates.
This is still better than 218 server hits + 218 file updates.

I submitted a suggestion to KoL to let me search for "candy" and turn my 172 server hits to 22 server hits.
No response. But, heck - although the API improvement would help both them and us, there is a workaround - which we now use.
 

Magus_Prime

Well-known member
Would you consider the addition of challenging the God Lobster to the list of things that the script will automate? In aftercore I normally have all the familiar items granted by the challenge and I'm primarily interested in the dish of clarified butter.
 

heeheehee

Developer
Staff member
There are 195 "potions" and 23 "food" candies
This means if I could search for "candy" in the mall, it would take 22 server hits,
Instead, searching for "potions" and "food", it takes takes 104 (potion) + 68 (food) = 172 server hits and 2 file updates.
This is still better than 218 server hits + 218 file updates.

Isn't another alternative to search for "potions" and let mafia do individual searches for candy foods, for 24 server hits and 24 file updates?

(does mall_price really do a file update after each query? I would have assumed updates are cached until some event like logging out.)
 

Veracity

Developer
Staff member
Reasonable idea. Yes, mall_price really does update the file after each query. When I added category searches, I added the mechanism which separates mall search/update from the file write, but I did not change it to write only at logout. That is still potentially a good idea, but for now I did this in Revision 18937:

int mall_price( item ) - return the mall price for a single item. Will return cached value, if less than an hour old, otherwise does a mall search and file update
int mall_prices( string ) - does a category search for the category, updating all cached values, does a single file write at the end and returns the count. Subsequent mall_price( item ) will get cached value.

and now

int mall_prices( boolean[item] ) - takes an item set (the same data structure of $items[ ...] ) and effectively does a mall_price() for each one: only searches mall if the cached price is more than an hour old, and updates cached value from such searches. Does a file write at the end and returns the total number of prices that were updated.

I'll update this script to use this, by and by. For now, the "Update Prices" button in the Synthesis Frame uses this for the 23 foods, rather than doing 68 page loads for all "food" items.
 

Veracity

Developer
Staff member
Revision 114 of this script will look up the 23 food chocolates, one by one, rather than fetching all 68 pages of all foods.
 

heeheehee

Developer
Staff member
You mentioned "food chocolates" (although I assume that was a typo in which you meant food candies), which got me thinking about further consolidation with mall searches via common substrings, e.g. searching for "cane" / "bear" / "fudge" / "mint" / "candy" under category food.

Unfortunately, "bear" would match gummi bear, drunki-bear, and warbear stuff, among others, but either way we get 2 server hits. Some experimenting in-game suggests we could get away with only seeing the first page of results by sorting by level requirement (decreasing).

(either way, I doubt that the difference between 10 and 23 server hits is particularly noticeable or worth the effort.)
 

Veracity

Developer
Staff member
Revision 115 has a few changes inspired by a bug report from Big Oil, and a new feature.

New Feature: if you have Gallapagossian Mating Call, every encounter with a monster on your olfacted monster list will use that skill once. That will add one copy to the queue, so, you should end up with even more of your Chosen monster. It does this in addition to (or instead of, if you don't have it) Olfaction.

Bug Fix 1: Support for the Robortender assumes that you will pre-configure it with the item of your choice and set "default familiar item" to "none". That's mostly OK, but there are plenty of cases when the script will not use your chosen familiar. For example, if you only configured it to be your meat familiar, it will use a different one as your item familiar. Deep Machine Tunnels. And so on.

If you set a default familiar item, we would tell you "no" and let your Robortender run with whatever it currently has.

For now, we will not disable the "default familiar item" or the "amulet coin", if you have those configured, and will let the Robortender use them, whether or not it makes sense. I have a better solution in mind, but it will take testing next weekend.

Bug 2: The script was coded to assume that you'd use a Spooky Putty sheet to copy five monsters and a Rain-Doh black box to get one more copy. To my surprise, I now know that some people have only the Rain-Doh black box. So now, if you only have one of those copiers, it will get 5 copies using the one you have. If you have both, it will alternate using them to get 6 copies.

My future Robortender familiar item feature:

You will be able to configure it: "bounce", "bartend", "configured", "default". It will acquire - by toggling if necessary - a bounce or bartend switch, or it will use whatever you have configured, or, if you have a default familiar item set, it will use it, whether or not it is useful. Since I haven't done this yet, you have time to comment. :)
 

fronobulax

Developer
Staff member
How do I stop it from always equipping the Hookah?

Set VMF.FamiliarEquipment to none?

If I am reading the documentation in the script correctly it will try and use VMF.FamiliarEquipment on every familiar. If it is none then the familiars will keep whatever they are equipped with, Familiars may be swapped based upon other configuration parameters and where adventuring occurs.
 

Veracity

Developer
Staff member
Correct. If you are using a Robortender, doing what Frono said will keep the previous behavior - where if you had default familiar equipment, it would print a warning and ignore it for all of your familiars.

This weekend, I will implement what I proposed and allow you to configure your Robortender equipment independant of other familiars.
 

Veracity

Developer
Staff member
Revision 117 soups up Robortender item handling:

Code:
// There are several choices for what familiar item your Robortender should wear
//
// bartend			toggle switch (Bartend)
// bounce			toggle switch (Bounce)
// equipped			(whatever you manually equipped him with)
// default			(whatever your default familiar item is)

string robortender_item = define_property( "VMF.RobortenderEquipment", "string", "equipped" );

If you really want to use default familiar item (or amulet coin, if you got one), use "default".
If you want to manually equip him with something and use that - but let your default item be used for other familiars - use "equipped"
If you want a toggle switch (Bartend), use "bartend"
If you want a toggle switch (Bounce), use "bounce"

As always, set in the gCLI:

set VMF.RobortenderEquipment=bounce
 

Veracity

Developer
Staff member
Which Hobo consumables?

extra-greasy slider
jar of fermented pickle juice

Those are a food and a drink which have the side effect of also cleaning 5 spleen.
I think it is perfectly reasonable to exclude those.

frozen banguet
Hodgman's blanket
Tin cup of mulligan stew

Those are EPIC items which give lots of adventures and stats but have no additional effect.
Considering that they are tradable, if your value of adventure (and autoBuyPriceLimit) make them purchasable and cost effective, then why not?

I'lll fix vcon to explude the first two I mentioned.
 

Veracity

Developer
Staff member
You pull from your clan stash?

Well, I can add a user setting for "items to exclude from consideration".
 

Veracity

Developer
Staff member
And it is done, to vcon:

// If you want to exclude specific items from consideration, add them here.
// For example, to exclude Hobopolis consumables:
//
// set VCON.ExcludedConsumables=frozen banguet|Hodgman's blanket|Tin cup of mulligan stew

item_set user_excluded_consumables = define_property( "VCON.ExcludedConsumables", "item", "", "set" ).to_set_of_item();
 

Veracity

Developer
Staff member
Revision 121 lets you optionally configure an accessory to use in place of a mayfly bait necklace after you've used all 30 of your daily mayfly summons.

// With a mayfly bait necklace, you can summon 30 mayfly swarms per
// day. Once you are done, perhaps you'd reather equip a different
// accessry. Perhaps not; it does grant +10% Meat and Items.

item mayfly_bait_replacement = define_property( "VMF.MayflyReplacementAccessory", "item", "none" ).to_item();

so, if you do this:

set VMF.MayflyReplacementAccessory=incredibly dense meat gem

and after collecting FunFunds for 30 turns in Barf Mountain with your mayflies, you will swap in an incredibly dense meat gem.
 
Hey Veracity I don't if this is you or some other script I have but can we have it go get the voting monsters like it does with the Protonic pack?
 

Veracity

Developer
Staff member
My main is my only character with access to the Voting Booth. Since she has one more Disguises Delimit run to do (after the one she is in now) before she kicks back and runs this script again in aftercare.

I'll take a look this weekend. I assume you'll do voting manually, before running the script and will therefore already have your daily sticker.
 
Top