Alias: Difference between revisions

From Kolmafia
Jump to navigation Jump to search
imported>Fluxxdog
imported>Bale
prefref is a default feature of KoLmafia now
Line 67: Line 67:
four:4
four:4
Returned: void</pre>In the first example, an extra space is added. It is currently unknown what is causing this.
Returned: void</pre>In the first example, an extra space is added. It is currently unknown what is causing this.
===Searching Preferences===
<pre style="white-space:pre-wrap;">alias prefref => ashq record r{string d ; }; r[string,string]m; file_to_map("defaults.txt",m); foreach t,p,d in m if(to_lower_case(p).contains_text(to_lower_case($string[%%]))) print(p+"("+t+", now '"+get_property(p)+"', default '"+d.d+"')")</pre>This will search your preferences to find matches against your argument and tell you it's type,current value, and default value.<pre style="white-space:pre-wrap;">> prefref cheese
_stinkyCheeseCount (user, now '95', default '0')</pre>

Revision as of 23:28, 3 March 2015

Creates a new alias in the KoLmafia CLI or displays the list of registered aliases. An alias is a shortcut for complex CLI command(s) that are too long to type every time you want to. To create a new alias, type

alias [alias_name] => [actual_command]

into the CLI, where [alias_name] and [alias_command] are replaced with the shortcut string you want to use and the actual command string. For example, to create an alias "f" for the familiar CLI command, type:

alias f => familiar

Now, instead of typing familiar pixie or familiar sandworm, you can just type f pixie or f sandworm.

To see the list of aliases that you have created so far, type alias into the CLI without any arguments.

Aliases are preserved across multiple characters. You can remove existing aliases by using the unalias command.

Complex Examples

Automatically Getting Dentures

alias dentures => checkpoint; equip frilly skirt; ash visit_url("inv_use.php?which=3&whichitem=2951&pwd"); visit_url("choice.php?whichchoice=188&option=3&choiceform3=Catburgle&pwd"); cli_execute("outfit checkpoint");

This equips a frilly skirt, chooses the right choice in the Orcish Frat House Blueprints adventure, and then re-equips whatever pants you had on when you type dentures into the CLI.

Open Beach

alias openbeach => ash if(item_amount($item[sweet rims]) < 1 && item_amount($item[bitchin' meatcar]) < 1) hermit(1, $item[sweet rims]); retrieve_item(1, $item[bitchin' meatcar]); if(item_amount($item[Degrassi Knoll shopping list]) < 1) visit_url("guild.php?place=paco"); if(item_amount($item[Degrassi Knoll shopping list]) > 0) use(1, $item[Degrassi Knoll shopping list]); visit_url("guild.php?place=paco"); visit_url("forestvillage.php?place=untinker"); if(knoll_available()) {visit_url("knoll.php?place=smith"); visit_url("forestvillage.php?place=untinker"); cli_execute("untinker bitchin' meatcar");}

This opens the beach, getting the rims from the hermit and accounting for the muscle sign correctly.

See How many charges left on Bartender/Chef

alias boxen => ashq if(have_chef()) print("Chef turns used: "+get_property("chefTurnsUsed"),"green"); else print("No chef-in-a-box","gray"); if(have_bartender()) print("Bartender turns used: "+get_property("bartenderTurnsUsed"),"green"); else print("No bartender-in-a-box","gray");

This prints something similar to:

> boxen

Chef turns used: 5
Bartender turns used: 10

See How Many Substats we need to Level

alias level => ashq stat s; switch(my_primestat()){case $stat[muscle]:s=$stat[submuscle];break;case $stat[mysticality]:s=$stat[submysticality];break;case $stat[moxie]:s=$stat[submoxie];break;default: } int s_left =(my_level()**2+4)**2 - my_basestat(s);print("Missing "+s_left+" substat for level "+(my_level()+1));

Prints something similar to:

> level

Missing 2839 substat for level 12

Get a Pagoda

alias pagoda => ashq if(!can_interact()) print("Wait for aftercore!"); else if(get_campground() contains $item[pagoda plans]) print("You already own a Pagoda, surely one is enough for any man.", "red"); else if(item_amount($item[Hey Deze map]) < 1) print("You need Hey Deze map from The Pandamonium Slums to continue.", "red"); else {foreach doodad in $items[guitar pick, heavy metal sonata, heavy metal thunderrr guitarrr, Elf Farm Raffle ticket, ketchup hound] retrieve_item(1, doodad); if(!in_bad_moon()) retrieve_item(1, $item[ten-leaf clover]); use(1, $item[Elf Farm Raffle ticket]); use(1, $item[Hey Deze map]); use(1, $item[ketchup hound]);}

Make Key Lime Pies

makeKLP => ash foreach i in $items[Jarlsbergs Key Lime Pie, Boris's     Key Lime Pie, Sneaky Pete's Key Lime Pie, digital key lime pie, star key     lime pie] { if (creatable_amount(i) > 0) create(creatable_amount(i),i); }

Calling ASH Files

EatDrink Shortcut

alias eatdrinkquick => ashq import <EatDrink.ash>; void main(int advmeat, boolean overdrink) { eatdrink(fullness_limit(), inebriety_limit(), spleen_limit(), overdrink, advmeat, 100, 10, 1000, false); }

This calls EatDrink with a set of defaults, allowing you to have a shortcut for aftercore or other situations where you want to use as much organ as appropriate.

Adding An Argument

By adding %% to an alias, you can pass an argument to the alias. However, specifying it as a data type is needed to properly use it with ash functions. Consider the following 2 aliases:

alias testing => ash print("%%:"+length("%%"));
alias testing2 => ash print($string[%%]+":"+length($string[%%]));

The two aliases are written to take an input and print it with a colon followed by the number of characters. Both are technically correct as they will work without error. However, they output different results.

> testing four

four :5
Returned: void

> testing2 four

four:4
Returned: void

In the first example, an extra space is added. It is currently unknown what is causing this.