Buying buffs w/ price changes?

bluestars

New member
Right now, my farming prep script requests free buffs from Test and Iocaine, which I don't really want to do, since that hurts those bots. I would much perfer to purchase the ~40 meat buffs from Testudinata, but they change just often enough that I don't want to hard code them into a script. So, how can I either a) access KoLmafia's internal buff purchaser, or b) parse Test's pricelist?

[modbreak=Updated information...]Since the time of this post, the CLI command "csend" was implemented, and will do what is desired. -Daychilde[/modbreak]
 

holatuwol

Developer
If you're worried about hurting bots, it's actually better for you to buy the highest bulk they have available once per week (at most) rather than requesting their small, non-philanthropic sets once per day.  Doing so also allows you to remove buff requests from scripts.  For example, requesting 10,000 turns of every farming buff from Testudinata will last you about a month and allows you to remove the crazy "wait" scripts you have for your farming characters.
 

bluestars

New member
That's true, except for two concerns:

1) This is my main character. I do things like fight the NS or switch AT buffs every once in a while that make me not want to have more than about 600 turns of each buff on hand at a time.
2) I'm essentially a lazy person, so I don't want to have to deal with all of that stuff. Also, I don't like having imperfect scripts that require me to do stuff by hand to fit the situation. After all, what would be the point of a script then?

Since my script doesn't autofarm, I just send the right amounts of meat to the right bots, then go on with eating and drinking while waiting for the buffs.

So, while I may eventually end up following that suggestion, I'd perfer a way to access the buffing interface and/or read the prices in ASH.

Oh, and holatuwol, thanks for taking the time to answer me.
 

holatuwol

Developer
In that case, just give the buffbots in question a sizeable donation and then request the philanthropic buffs as they are needed. That way, you eliminate the guilt feeling while being able to request buffs which are consistently priced in your script. (I have no intention of letting buff requests be scriptable beyond this.)
 

Aprocalypse

New member
[quote author=bluestars link=topic=375.msg2048#msg2048 date=1156547566]
Okay. Not to be insulting, but I'm curious as to why this shouldn't be scripted.
[/quote]

Pretty much, it leads to having a set of multis all using a script to buy all freebuffs, which is generally not what the runners of buffbots want to have happening with their bots. Generally, anyways.
 

holatuwol

Developer
Okay. Not to be insulting, but I'm curious as to why this shouldn't be scripted.

As previously stated, if you send donations in before you start asking for buffs, requests for philanthropic buffs are fundamentally no different from requests for non-philanthropic buffs. In fact, the donation route is preferred because it temporarily gives the buffbot extra funds to offset any temporary losses.

Why are you going out of your way to make a statement that could be interpreted as an insult when you're requesting that I add a feature that doesn't save you any time, doesn't save me any time, and encourages people to do things the wrong way? Or did you have another use for this feature that you'd like to clarify?
 

bluestars

New member
My apologies. I'm a perfectionist programmer. I like things to work perfectly, and sending a donation just isn't perfect. I also don't want to get blacklisted from Test or Iocane. I also like kolmafia over things like the kolCLI because it has advanced scripting support that nothing else can really match. I don't really like the idea of functions that can be accessed through the GUI but not through ASH. Anyway, it's your coding time, so it's your philosophy and your decision.

EDIT: Aprocalypse, I just now saw your response. I can already buy free buffs (since these don't change in price) with:
Code:
cli_execute("kmail X meat to testudinata");

I want to purchase the ever-so-slightly more expensive non-free buffs daily, for three reasons: it's not as hard on the buffbots, it won't get me blacklisted, and it won't lead to my buffs getting refunded if I accidentally do something dumb. But those change in price, so it's somewhat of an imperfect solution to kmail the right amount of meat, since these scripts will need to be changed.

If I knew enough Java, I'd impliment it myself, but unfortunately, I can barely read the code, let alone write it.
 
another simple option is to remove the buff requests from your script, and place them in a seperat script which you would then edit as needed...or place the price in a variable at the top of the script, and edit the script.
 

Nightmist

Member
I personally use a ASH map to store buff prices and buff quantities, quick and easy to update but your looking for something that doesnt require "hard coding" into the script then your out of luck. (As far as I know of)
 

macman104

Member
Another option is to have in your main function variables like
Code:
void main(int buff1, int buff2...)
When the script runs it will prompt you for buff1 and so on, you have to put in the numbers, but if buff prices changed, you can do so. Actually, ooooo...

1) Create set_property (multiple needed), for the buff prices you're interested in.
2) Save the current values for the buff prices
3) Your main will have int buffs for the number of buffs.
4) Tell your script that if the value entered equals 0, use the get_propterty value, if it doesn't equal 0, overwrite the previous value in property with the new value
5) Request your buffs using the values in your properties.

Yes it requires a bit of work, but, what fun would KoL be if it required no work :)
 
Top