Harvest – A highly customisable farming script

Hmm, seems fairly awesome. I can't test it myself as I don't have a hand and I sold my time sword a while back, but it equips my stuff perfectly. And that'll equip a time sword as well? What if the character has a hand but no time sword? Will it still equip the hand or leave the old familiar? Not that it'll make much difference in terms of rollover adventures, and I doubt there are many people who have the hand and don't have a time sword to go with it, but I like to be tidy :).
 
It won't equip the Hand if you don't have anything that gives you +adv to go in it.
 
Last edited:
Now that's one of those features that should already be there. But since there's only one adventure giving familiar (I don't see the hare being used for farming) and only one item you'd ever want to equip it with I'll make Harvest do it all automatically and avoid adding another cluttery option. That'll be in the next release.

EDIT: Wait. Hold the phone. I thought it was odd that I hadn't already added that feature. I have already added that feature (or more accurately it was already in some code I borrowed from BCC et al.). It should equip your hand and time sword automatically. Is it not doing that?

Did tonight. no idea why it didn't before. shrug.
 
@Winterbay: Sweet, thanks for the confirmation.

@Xenthes: Was the sword equipped to the hand when the maximizer ran? I'd guess not. I'm pretty sure I fixed the bug. For now just make sure the sword's not equipped to your fam when you run Harvest and you should be fine. Fingers crossed the update should be out some time in the next week.
 
@Xenthes: Was the sword equipped to the hand when the maximizer ran? I'd guess not. I'm pretty sure I fixed the bug. For now just make sure the sword's not equipped to your fam when you run Harvest and you should be fine. Fingers crossed the update should be out some time in the next week.

It was last night since I hadn't used the hand for anything else. If I remember I will unequip the sword before I run the script and see if that changes anything.
Thanks for the quick replies and fix though. :)
 
PHP:
if(can_equip($item[time sword]) && have_familiar($familiar[Disembodied Hand]))
	{
	familiar oldFam = my_familiar();
	use_familiar($familiar[Disembodied Hand]);
	if(valid("time sword"))
		maximize("adv -tie", false);
	else
		{
		use_familiar(oldFam);
		maximize("adv -tie -familiar", false);
		}
	}
If you don't simply want to use the maximize bit, replace the above by:
PHP:
if(can_equip($item[time sword]) && available_amount($item[time sword])>0 && have_familiar($familiar[Disembodied Hand]))
{
	familiar oldFam = my_familiar();
	use_familiar($familiar[Disembodied Hand]);
	maximize("adv -tie", false);
}

Valid() will return false when the hand is already equipped on your Disembodied Hand, whether it is your current familiar or not. available_amount() will return the correct amount, however.
 
Last edited:
Thanks for the great script- it's saved me a lot of RL time.
One thing though- is it possible to move the bounty hunting so it happens before eating, drinking and spleening? Since the 40 advs from rollover should be enough, there's no need for it to happen after and this would allow for buffs from consumption (such as beastly, mmmelon, fishy, etc) to be used for farming.
 
@Xenthes: No problem :)

@Slyz: Shouldn't that be like this? Otherwise it won't maximise unless the if statement evaluates true, and we don't need to remember oldFam at all. Or have I misunderstood something?
PHP:
if(can_equip($item[time sword]) && available_amount($item[time sword])>0 && have_familiar($familiar[Disembodied Hand])) 
    use_familiar($familiar[Disembodied Hand]); 

maximize("adv -tie", false);

@unwanted: Glad you like it, it's saved me heaps of time as well! Well... Apart from the hours I've put into making it ;). Hmm, that's possible. I'll definitely think about it, but there are a few possibilities I want to work through before I say yes.
 
The "switch" keyword tells the maximizer to check if there is an advantage to switching to a specified familiar. The maximizer will check if you actually have that familiar and can equip anything useful on that familiar to make it worth switching. If the answer is negative then it will not switch familiars. All your additional code is unnecessary. Just do this:


PHP:
maximize("adv, switch Disembodied Hand", false);

Also, adv means "adventure -tie" so having "-tie" is redundant. Yeah, it is odd that adventure and adv are not the same.
 
Last edited:
For the testing I unequiped the time sword and equiped hodgemans whackin' stick. ran harvest and let it do its thing. when done the hand was the familiar with the time sword equiped.
w00t!
 
Great, it's nice to know I was on the right track. Happily that bug has already been removed from the development version thanks to Slyz (and Bale).

I'm trying to add disco combos (including rave combos) to Harvest Combat and I'd quite like to take advantage of the CCS combo command, but because the script works by building up a string which is eventually submitted as a macro I can't think of a way of doing this. Does anyone have any ideas?
 
Doesn't the raveCombo1-6 preferences keep the names of the skills so that you could use get_property() on those in the submitted macro string? (possibly with some string manipulation first though)
 
True true, I was just trying to cut corners ;). Do you know how they're stored? As a string? Separated by what? Or as an aggregate? I haven't done the nemesis quest and am not a DB at the moment so I can't test.
 
Code:
raveCombo1=Break It On Down,Pop and Lock It,Run Like the Wind
raveCombo2=Run Like the Wind,Pop and Lock It,Break It On Down
raveCombo3=Pop and Lock It,Run Like the Wind,Break It On Down
raveCombo4=Break It On Down,Run Like the Wind,Pop and Lock It
raveCombo5=Run Like the Wind,Break It On Down,Pop and Lock It
raveCombo6=Pop and Lock It,Break It On Down,Run Like the Wind

Appears to be a comma separated list.
 
raveCombo1 Rave Concentration
raveCombo2 Rave Nirvana
raveCombo3 Rave Knockout
raveCombo4 Rave Bleeding
raveCombo5 Rave Steal
raveCombo6 Rave Substats
 
@Bale: Found that on the wiki, but thanks anyway.

@Slyz: Yep, but Harvest Combat writes the macro as a buffer, so it can't use any CCS lines at all. I was hoping there'd be a way to get access to the logic mafia uses internally to turn "combo <whatever>" into a meaningful macro. That way I could just write a function and append it to the macro buffer rather than having to process the strings stored in the mafia properties.

EDIT: Does rave steal have to be used immediately after pickpocket or can it be used on any round (the wiki isn't particularly clear on that point)? Please let it be the latter.

EDIT2: Here is a copy of Harvest Combat.ash updated with the ability to use disco and rave combos. I can't test it myself for aforementioned reasons, but hopefully some wonderful person will test it for me so I know if it works or not.
 
Last edited:
Back
Top