Difference between pages "Help:To Do List" and "Quest Tracking Preferences"

From Kolmafia
(Difference between pages)
Jump to navigation Jump to search
imported>Bale
(r13280 & r13282: monster_initiative() & jump_chance())
 
imported>Bale
(→‎questL11MacGuffin: questL11Desert)
 
Line 1: Line 1:
 
{{TOCright}}
 
{{TOCright}}
 +
KoLMafia internally tracks progress for a number of quests. These are stored as preferences in settings\[charactername]_prefs.
  
== "To Do" List ==
+
==Quests Granted by Familiars==
 +
===questF01Primordial===
 +
=unstarted
 +
===questF02Hyboria===
 +
=unstarted
 +
===questF03Future===
 +
=unstarted
 +
===questF04Elves===
 +
=unstarted
 +
===questF05Clancy===
 +
=unstarted
  
This is a list of stuff that is missing from the wiki or else needs major work. Please help!
+
==Guild Quests==
 +
===questG01Meatcar===
 +
Possible values: unstarted, started
  
 +
===questG02Whitecastle===
 +
=unstarted
 +
===questG03Ego===
 +
=started
 +
===questG04Nemesis===
 +
=started
 +
===questG05Dark===
 +
=unstarted
 +
===questG06Delivery===
 +
=unstarted
  
If you need tips for editing the wiki, find that here: [[Help:Editing]].
+
==Quests Granted by Items==
 +
===questI01Scapegoat===
 +
=unstarted
 +
===questI02Beat===
 +
=unstarted
  
*CLI Commands are usually only added to the [[CLI Reference]]. Only very complicated commands require their own page.
+
==Council Quests==
 +
===questL02Larva===
 +
=finished
 +
===questL03Rat===
 +
=finished
 +
===questL04Bat===
 +
=finished
 +
===questL05Goblin===
 +
=finished
 +
===questL06Friar===
 +
=finished
 +
===questL07Cyrptic===
 +
=finished
 +
===questL08Trapper===
 +
=finished
 +
===questL09Lol===
 +
=unstarted
 +
===questL09Topping===
 +
=finished
  
*ASH commands need to be listed on their category page as well as on the [[Ash Functions]] list.  
+
====booPeakProgress====
**It is not necessary to always create a code sample, although it is preferred.
+
booPeakProgress tracks the hauntedness level of {{kolwiki|A-boo Peak}}. A value of 18, for instance, indicates that A-boo Peak is 18% haunted.
**If you don't add a code sample, please remember to add '''needscode=yes|''' to the page.
 
  
 +
Possible values: 0 - 100
  
== Missing Stuff ==
+
====chasmBridgeProgress====
10078: ash function format_dtg
+
chasmBridgeProgress tracks the player's progress in building a bridge across the {{kolwiki|Orc Chasm}}. A value of 10, for instance, indicates that the bridge is 10 planks long.
10081: ash function format_dtg renamed to be
 
string '''format_date_time(inFormat, dtg, outFormat)'''
 
more info: http://kolmafia.us/showthread.php?8451-time_to_string()-with-parameter&p=64058&viewfull=1#post64058
 
  
Modify examples on proxy record page because of:
+
Possible values: 0 - 30
10122: Add the boolean "fancy" and "candy" fields to item '''proxy records'''.
+
====oilPeakProgress====
10147: Initial support for "Crimbo 2011" coinmaster: trade candy for Candy Credits
+
oilPeakProgress tracks the remaining pressure at {{kolwiki|Oil Peak}}. It decreases as the player reduces the pressure in the zone.
10412: Add $skill '''proxy records''': .dailylimit and .timescast
 
10879: Add a boolean "boss" field to $monster[]
 
  
10227: Add the <s>"'''closet empty'''" CLI command, and</s> the '''empty_closet()''' ASH function.
+
Possible values: 0.00 - 310.66
 +
* 310.66: Pressure not yet reduced
 +
* 0.00: Subquest completed
  
r9181, 9183, 9184 & r9190: '''moods''' per slyz's summary here: http://kolmafia.us/showthread.php?8852-Composable-Moods
+
====twinPeakProgress====
 +
twinPeakProgress is a nibble bitmask with least significant bit set for the first choice and the most significant for the fourth. You can parse this with bitwise operators. Here's some code that demonstrates how to use it.
  
r10344 Add '''tavern( string goal )''' ASH function.
+
<syntaxhighlight>
goal can be "faucet", "baron", or  "explore" (to explore all remaining unexplored squares).  
+
void comma(buffer b, string s) {
r10345 Add ASH '''tavern( "fight" )''' to explore cellar until the Baron's mansion is found
+
if(length(b) > 0)
and then go in to fight him.
+
b.append(", ");
 +
b.append(s);
 +
}
  
r10753-6 '''get_goals()''' returns a string[int] containing all the conditions that KoLmafia will
+
boolean mysterious(int progress, int c) {
try to satisfy. Add g'''oal_exists()''' where you can pass in a goal type (choiceadv, autostop,
+
return (progress & (1 << c)) == 0;
meat, health, mana, item) and KoLmafia will tell you if there are any goals that match.
+
}
  
'''static''' scope is added!
+
string twinPeak() {
r10765: Add a "final" scope type to ASH which allows data/commands to be executed only
+
int p = get_property("twinPeakProgress").to_int();
once per session.
+
buffer need;
r10772: A final declaration can either take a block, surrounded by {}, or a single
+
if(mysterious(p, 0)) need.comma("4 Stench Resistance");
command or declaration.
+
if(mysterious(p, 1)) need.comma("+50% Item Drop");
r10774: ASH: "final" -> "static"
+
if(mysterious(p, 2)) need.comma("Jar of Oil");
 +
// Only check for final if first three complete
 +
if(length(need) == 0) {
 +
if(mysterious(p, 3))
 +
return "Need +40% Initiative";
 +
return "Twin Peak Completed";
 +
}
 +
return "Need " + need;
 +
}
 +
</syntaxhighlight>
  
10922: Add '''get_player_id()''' method to ASH
+
===questL10Garbage===
 +
=finished
 +
===questL11MacGuffin===
 +
=finished
  
10937: Add '''minstrel_quest()''' boolean function,
+
====questL11Black====
which returns true when Clancy has a new quest for you.
+
Tracks Black Market discovery
  
10971: Added boolean '''hippy_stone_broken()''' function
+
====questL11Manor====
 +
=finished
  
11023: Make the CLI "attack" command work again. Make "pvp" equivalent to "steal" instead
+
=====wineCellarProgress=====
of "attack". Added "swagger" as equivalent to "flowers".
+
=3
  
11055: Added a 2-parameter version of '''to_string()''', where the first parameter can
+
====questL11Desert====
currently be an int or float (other types are possible, but didn't seem
+
Explore the Arid, Extra-Dry Desert to find the pyramid mentioned in your father's journal.
useful), and the second is a format string as defined by the Java
 
String.format() method (which in turn is based on C printf() format strings).
 
For example, "%.2f" will output a float with exactly two digits after the
 
(localized) decimal point.
 
  
11110: Add ASH function: '''pvp_attacks_left()'''. This is guaranteed accurate only if you
+
====questL11Pyramid====
have recently looked at the Fight! page. Tracking of PVP fights gained via
+
Make your way into the depths of the Ancient Buried Pyramid.
consumption or familiar action and initialization at login will come later -
 
after api.php is updated to include the figure.
 
 
Add '''beforePVPScript''' setting which contains a script to be executed before a PVP
 
attack. At the moment, this is only called from the Relay Browser - and only if
 
relayRunsBeforePVPScript is true
 
 
11112: Call beforePVPScript, if present, during automated PVP via the "flowers" command
 
  
11112: Change ASH '''have_outfit()''' to work with custom outfits, as well as normal outfit
+
=====gnasirProgress=====
Add ASH '''is_wearing_outfit()''' to return TRUE if you are currently wearing the
+
gnasirProgress is a nibble bitmask with one bit for each possible way you can advance {{kolwiki|Quest_for_the_Holy_MacGuffin|Gnasir's quest}}. You can parse this with bitwise operators. Here's some code that demonstrates how to use it.
specified custom or normal outfit.
+
<syntaxhighlight>
 +
int gnasirProgress = get_property("gnasirProgress").to_int();
 +
buffer gnasir;
 +
if((gnasirProgress & 1) == 0)
 +
print("Gnasir wants a stone rose");
 +
if((gnasirProgress & 2) == 0)
 +
print("Gnasir wants a can of black paint");
 +
if((gnasirProgress & 4) == 0)
 +
print("Gnasir wants a killing jar");
 +
if((gnasirProgress & 8) == 0)
 +
print("Gnasir wants a 15 worm-riding manual page");
 +
if((gnasirProgress & 16) == 0)
 +
print("You need to use a drum machine to ride the worm");
 +
</syntaxhighlight>
  
10815: Allow certain ASH constants to be used in custom combat settings.
+
====questL11Ron====
$phylum[] refers to the monster categorization, see the built-in ASH constants documentation for more information.
+
Ron Copperhead
$element[] refers to either the attack or the defense element. As long as one matches, this check will be satisfied. This may limit its usefulness, but we can evaluate it later.
 
$item[] refers to an item that the monster drops. If there are multiple monsters that drop the item, or if you just can't remember which one it is, and your combat strategy happens to depend on it...
 
In order to match, everything that you specify must match. So if you specify an impossible combination, that CCS section will not run.
 
 
[ $element[ spooky ] $item[ hobo nickel ] ]
 
skill entangling noodles
 
skill weapon of the pastalord
 
 
[ bathroom $element[ spooky ] ]
 
attack
 
 
[ $phylum[ beast ] ]
 
skill stomp
 
attack
 
  
11197: new ASH functions:
+
=====zeppelinProtestors=====
boolean '''is_familiar_equipment_locked()'''
+
Tracks protesters removed
-returns true if current familiar equipment is locked, otherwise false
 
void '''lock_familiar_equipment(boolean locking)'''
 
-tries to lock/unlock fam equipment accordingly.
 
  
11208: Add int '''get_clan_id()''' and string '''get_clan_name()''' functions.
+
====questL11Shen====
 +
Shen Copperhead
  
11267: Pass chat events along to '''chatbotscript'''. The sender is an empty string,
+
====questL11Palindome====
the channel is "Events", and the message is stripped of its HTML.
+
=finished
  
11432: Add '''is_discardable()''' which will return true even if an item can be autosold,
+
====questL11Worship====
so be careful you don't get cheated out of some meat.
+
=finished
  
11438: Revert use of gift flag to previous interpretation: KoL has the item marked as
+
=====questL11Business=====
a "Gift Item". Instead, change isGiftable() - which is also used by the ASH
+
=====questL11Curses=====
is_giftable() function - to allow either the "tradeable" or "gift" flags.
+
=====questL11Doctor=====
Fix the item.gift proxy field to return the value of the gift flag, rather than
+
=====questL11Spare=====
being a synonym for is_giftable().
 
  
11555: Add monster.raw_attack, monster.raw_defense, and monster.raw_hp to return the
 
unmodified stats from monsters.txt.
 
  
11561:  Add monster '''image_to_monster( string )''' ASH function for looking up monster by image file name.
+
=====hiddenApartmentProgress=====
Add monster.image proxy field for going the other way.
+
hiddenApartmentProgress tracks progress through the {{kolwiki|Hidden Apartment Building}} during the Quest for the Holy MacGuffin.
  
11771: experimental: add overloaded maximize() signature in ASH
+
Possible values: 0, 1, 6 - 8
+
* 0: Haven't opened the Hidden Apartment Building
'''maximize( string maximizerString, int maxPrice, int priceLevel, boolean simulate, boolean showEquipment )'''
+
* 1: Hidden Apartment Building is open for adventuring
+
* 6: Encountered the Protector Spirit
returns an aggregate of records with each record containing the fields:
+
* 7: Found the stone sphere
**display => display text, as it is shown in the maximizer frame
+
* 8: Placed the stone sphere in the relevant overgrown shrine
**cmd => actual command string that the maximizer runs to get the boost
 
**score => the boost's score
 
**effect => the effect provided by the boost - if applicable. effect[none] if it is equipment.
 
**item => $item[] that is being suggested for use or equipment
 
**skill => $skill[] that is being suggested
 
 
If the showEquipment argument is false, equipment will be omitted from the results.
 
  
r11707: Experimental ASH feature: the main() function of imported scripts can now be
+
=====hiddenBowlingAlleyProgress=====
invoked, under the alternate name main@filename()
+
hiddenBowlingAlleyProgress tracks progress through the {{kolwiki|Hidden Bowling Alley}} during the Quest for the Holy MacGuffin.
(where 'filename' can be overridden by a 'script' directive, any ".ash"
 
suffix is dropped, and non-alphanumeric characters are replaced by
 
underscores). Note that no spaces are allowed around the @, the whole thing
 
is a single token.
 
  
r11965: Add my_companion()
+
Possible values: 0, 1, 6 - 8
 +
* 0: Haven't opened the Hidden Bowling Alley
 +
* 1: Hidden Bowling Alley is open for adventuring
 +
* 6: Encountered the Protector Spirit
 +
* 7: Found the stone sphere
 +
* 8: Placed the stone sphere in the relevant overgrown shrine
  
r11985: Add the "skeleton" CLI command.
+
=====hiddenHospitalProgress=====
 +
hiddenHospitalProgress tracks progress through the {{kolwiki|Hidden Hospital}} during the Quest for the Holy MacGuffin.
  
r12019: Add "eudora" CLI command
+
Possible values: 0 - 8
 +
* 0: Haven't opened the Hidden Hospital
 +
* 1: Hidden Hospital is open for adventuring, but haven't bowled.
 +
* 2-5: Number of times bowled is 1 less than hiddenHospitalProgress
 +
* 6: Encountered the Protector Spirit
 +
* 7: Found the stone sphere
 +
* 8: Placed the stone sphere in the relevant overgrown shrine
  
r12060: add ASH get_moods(), returns an aggregate of currently defined mood names.
+
=====hiddenOfficeProgress=====
"mood listall" in the gCLI will also print a list of defined moods.
+
hiddenOfficeProgress tracks progress through the {{kolwiki|Hidden Office Building}} during the Quest for the Holy MacGuffin.
  
r12062: add ASH get_outfits() and get_custom_outfits()
+
Possible values: 0, 1, 6 - 8
 +
* 0: Haven't opened the Hidden Office Building
 +
* 1: Hidden Office Building is open for adventuring
 +
* 6: Encountered the Protector Spirit
 +
* 7: Found the stone sphere
 +
* 8: Placed the stone sphere in the relevant overgrown shrine
  
r12070: Overloaded version of appearance_rates considers monster queue:
+
=====hiddenTavernUnlock=====
appearance_rates( $location[] location, boolean includeQueue )
+
hiddenTavernUnlock tracks whether or not you have unlocked the {{kolwiki|Hidden Tavern}} during the Quest for the Holy MacGuffin.
  
r12105: maximizerMRULength is now maximizerMRUSize
+
Possible values: 0 - N
That affects this page: [[Hidden_Features#Most_Recently_Used_Modifier_Maximizer_Expression]]
+
* When the value is equal to your number of ascensions, the Tavern is unlocked
 +
* When the value is any other number, the Tavern is locked
  
'''SVN Features added''' by Roippi! SVN integration was (brokenly) implemented in r12141 and more correctly implemented in r12144.
+
===questL12War===
+
=finished
FOR USERS:
 
* svn checkout <svnurl> - checks out a svn repository and adds the files from the working copy to the appropriate locations.
 
* svn update - updates all of your installed projects and pushes any changes to the appropriate locations.
 
* svn list - lists installed projects.
 
* svn delete <scriptname> - deletes installed projects and the corresponding files that it pushed. <scriptname> fuzzy matches the script names from svn list.
 
 
FOR SCRIPTERS:
 
You can provide a <nowiki>svn://, http://, or https://</nowiki> link to a valid svn repo. The link does not need to be to the root of the repository.
 
At the location specified by the url, there are only four permissible folders:
 
* ccs/
 
* data/
 
* images/
 
* relay/
 
* scripts/
 
 
Any files or directories in the location specified by your url that are not named the above will cause your repo to fail validation and thus it will not be checked out.
 
Within the valid folders, you can nest files however you want.
 
When users check out your project, the files (and nested folders) will be pushed to the corresponding mafia directories.
 
 
r12157: '''svn increment <projectname>''' and '''svn decrement <projectname>''' moves an installed svn project up/down one revision, respectively.
 
'''svn update''' can also take <projectname> argument or a <SVNURL> argument. Or just be blank to update everything.
 
r12177 svn inc/dec does the same thing as svn increment/decrement. Because typing stuff is hard.
 
 
12167: command "'''svn sync'''"
 
 
Looks through your working copies for modifications, then checks if that file differs from the local copy. If it differs, the WC file is copied over the local copy one.
 
Note that this is very different from "svn update" and indeed does not contact the repository server at all.
 
 
If you are unsure if you want this feature, this is only for people who maintain modifications to the files in their svn/ folders that they want merged in with updates from the repo.
 
If you are just doing checkout/update operations and don't know what this "merging" business is about, you don't need this feature.
 
 
Users who want to automatically sync after update operations can set syncAfterSvnUpdate = true.
 
  
r12153: add '''svnUpdateOnLogin''' (global, default false), which runs svn update before breakfast/loginScript.
+
====warProgress====
This could be useful if your loginScript has svn dependencies.
+
Possible values for the progress of the {{kolwiki|Mysterious Island Quest|Isle War}}:
+
*unstarted: We can still visit the small version of the Mysterious Island
r12188: add global preference '''_svnUpdated'''
+
*started: The war is in progress
only do login svn update (mediated by svnUpdateOnLogin) at most once per day.
+
*finished: The final boss or bosses were defeated
  
r12181: add preference '''simpleSvnUpdate''' (global, default true)
+
====sideDefeated====
If true, simply checks if the root of your working copy is at HEAD, skipping it if so.
+
Which side of the {{kolwiki|Mysterious Island Quest|Isle War}} was defeated during the Level 12 quest.  
Speeds up the average update operation by 75% (and is probably nicer on servers).
 
Advanced users who have done something like a non-root "svn switch" or are using svn externals should know whether they want to turn this off.
 
 
Again the ticky box goes at the bottom of general preferences, it is soon time for these to be moved to their own page.
 
  
r12198 new ash svn functions:
+
Possible values:
boolean '''svn_exists'''( String projectname ) - returns true if a valid working copy named projectname exists in the svn/ folder
+
*neither
boolean '''svn_at_head'''( String projectname ) - returns true if projectname exists, is a valid WC, and is currently at the same revision # as the repository.
+
*hippies
This will hit the repo server, so be nice.
+
*fratboys
 +
*both
  
r12206: initial support for automatic svn dependency installation.
+
===questL13Final===
global preference '''svnInstallDependencies''' (default true) controls whether svn will try to install dependencies.
+
=finished
 
Scripters are now allowed to place a file called dependencies.txt in the top-level of a project.
 
Calling it anything else will fail validation, as before. This special file will not be "pushed" to anywhere locally, it will just remain in the working copy folder.
 
On each line of dependencies.txt, you specify one URL to another SVN project.
 
  
r12211: preference '''svnShowCommitMessages''' (global, default false) controls whether you want to see new commit messages from svn update operations.
+
==Miscellaneous Quests==
 +
===questM01Untinker===
 +
=finished
 +
===questM02Artist===
 +
=unstarted
 +
===questM03Bugbear===
 +
=unstarted
 +
===questM04Galaktic===
 +
=started
 +
===questM05Toot===
 +
=unstarted
 +
===questM06Gourd===
 +
=unstarted
 +
===questM07Hammer===
 +
=unstarted
 +
===questM08Baker===
 +
=unstarted
 +
===questM09Rocks===
 +
=unstarted
 +
===questM10Azazel===
 +
=finished
 +
===questM11Postal===
 +
=unstarted
 +
===questM12Pirate===
 +
=finished
 +
===questM13Escape===
 +
=unstarted
 +
===questM14Bounty===
 +
=unstarted
 +
===questM15Lol===
 +
=started
 +
===questM16Temple===
 +
Dakota Fanning's quest to find the Hidden Temple
  
r12215: add ash function: '''record svn_info( String project )'''
+
===questM17Babies===
record has the following fields-
+
Lady Spookyraven's Babies
 
String url: the url that the project was checked out from
 
int revision: the revision that the working copy is at
 
String lastChangedAuthor: the author who committed the last change
 
int lastChangedRev: the revision that most recently modified this working copy (note, not necessarily the same as revision field)
 
String lastChangedDate: the date/time when lastChangedRevision happened
 
  
r12238: Add _floristPlantsUsed as a comma-separated list and '''florist_available()'''.
+
===questM18Swamp===
Add "florist plant [plantname]" to add a plant. [plantname] is case-insensitive, but otherwise must exactly match KoL's name for the plant.
+
Marty and His Swamp Problems
Check what is currently planted when you log in.
 
  
r12244: Add string [location][int] '''get_florist_plants()'''
+
===questM19Hippy===
+
Hippy Give a Hippy a Boat...
example 1...
 
foreach loc, counter, plant in get_florist_plants() {
 
    print( "Location '" + loc + "'" );
 
    print( "Counter '" + counter + "'" );
 
    print( "Plant '" + plant + "'" );
 
}
 
 
example 2...
 
string [location][int] plants = get_florist_plants();
 
foreach loc in plants {
 
    print( "Location '" + loc + "'" );
 
    string [int] array = plants[ loc ];
 
    foreach index in array {
 
        string plant = array[index];
 
        if ( plant != "" )
 
            print( "Plant = " + plant );
 
    }
 
}
 
  
r12255: Experimental support for Dad Sea Monkee - untested in-game.
+
===questM20Necklace===
- When we first see Dad Sea Monkee, parse the clues and solve for them.
+
Lady Spookyraven's Necklace
- "'''dad'''" CLI command lists the elemental weakness (and spell) for rounds 1-10
 
- element '''dad_sea_monkee_weakness( int round )''' ASH function for consult scripts.
 
  
12657: Add "'''cache clear'''" command to remove all cached images from /images
+
===questM21Dance===
+
Lady Spookyraven's Dance
12659: New setting - lastImageCacheClear - records the time when you last cleared the
 
image cache. "'''cache'''" command with no arguments reports that time.
 
  
12662: Add '''get_ignore_zone_warnings()'''
+
==Sea Quests==
 +
===questS01OldGuy===
 +
=finished
 +
===questS02Monkee===
 +
=unstarted
  
12905: ASH changes:
+
====merkinQuestPath====
'''take_shop( item )''' -> "shop take all item"
+
merkinQuestPath indicates which path the player has chosen in the {{kolwiki|Mer-Kin Deepcity}}, during the {{kolwiki|Sea Monkees Quest}}.
'''take_shop( num, item )''' -> "shop take num item
 
When these are added, deprecate the take_shop( item, boolean ) command. Let's not use that anymore since it is equal to take_shop(1, item) with extra confusion.
 
  
12906: Add '''shop_price( item )''' and '''refresh_shop()'''
+
Possible values:
 +
* none: Player has not yet chosen a path
 +
* gladiator: Player will fight Yog-Urt, Elder Goddess of Hatred
 +
* scholar: Player will fight Shub-Jigguwatt, Elder God of Violence
 +
* done: Player has completed the Sea Monkees Quest
  
12932: Adds my_discomomentum().
+
====skateParkStatus====
  
13088: Make Prismatic Damage a real, if derived, modifier name. It cannot be used in
+
==Bug Bear Invasion Properties==
modifiers.txt, bit you can ask for it by name either in ASH or the Maximizer
 
  
13175: Add ash command my_soulsauce().
+
===mothershipProgress===
 +
mothershipProgress tracks progress of level completion in the {{kolwiki|Bugbear Mothership}}. It goes from 0 to 3 as that level is cleared.
  
13213: Add "debug ash on" and "debug ash off" to turn on and off ASH script tracing
+
Possible values: 0-3
ASH tracing goes into ASH_datestamp.txt
 
  
13222: Add preference banishedMonsters to track banishes. Add ash command is_banished($monsterName[name])
+
===statusEngineering===
 
+
===statusGalley===
13223: Add "thrall" datatype to ASH.
+
===statusMedbay===
New ASH function: thrall my_thrall()
+
===statusMorgue===
 
+
===statusNavigation===
13234: New ASH functions: to_thrall( int ), to_thrall( string ), to_int( thrall )
+
===statusScienceLab===
New proxy fields for thralls: .id, .image, .tinyimage, .skill
+
===statusSonar===
 
+
===statusSpecialOps===
13256: Add CLI command to buy or sell from a coinmaster:
+
===statusWasteProcessing===
coinmaster buy nickname item, item ...
+
All of these work the same way.  
coinmaster sell nickname item, item, ...
+
*0-x (integers): insufficient bodata collected)
 
+
*open: all biodata collected and zone accessible
r13280 & r13282: Added Ash functions:
+
* unlocked: biodata collected but zone not yet accessible
'''monster_initiative( [monster] )''' - returns initiative + ML penalty
+
* cleared: zone has been cleared
'''jump_chance( [monster] [,initiative] [,monster_level] )''' - returns chance of getting the jump vs the monster, optionally at a given initiative, optionally at a given monster level, otherwise current values.
 
'''jump_chance( [location] [,initiative] [,monster_level] )''' - returns chance of getting the jump in the location, optionally at a given initiative, optionally at a given monster level, otherwise current values.
 
 
 
== Needs Major Work ==
 
 
 
[[Proxy Records]] is only slightly better than a placeholder.
 
 
 
In r10047, the adventure tab interface was altered. Fix SinginSally's guide on pages...
 
 
http://wiki.kolmafia.us/index.php?title=KoLmafia_Guide:_Attack_Script
 
http://wiki.kolmafia.us/index.php?title=KoLmafia_Guide:_Custom_Combat_Script
 
http://wiki.kolmafia.us/index.php?title=KoLmafia_Guide:_Goal-Oriented_Adventuring
 
 
 
Information on moods calling other moods: http://kolmafia.us/showthread.php?8852-Composable-Moods&p=66468&viewfull=1#post66468
 
 
 
r10025: Added '''choice''' CLI command, to resolve manual or unsupported choiceadventures
 
Added "choice" CLI command, to resolve manual or unsupported choice
 
adventures without having to visit the relay browser - which might be
 
inconvenient if you're already in the CLI, and don't need to see the full
 
adventure text to decide which option you want. With no parameter, "choice"
 
just lists the options. With a numeric parameter, it picks that option.
 
With any other parameter, it picks the first option containing that text (in
 
either the actual button text, or mafia's spoiler text).
 
 
 
== Needs Code Samples ==
 
 
 
There is a list of all pages that require code samples: [[:Category:Needs_Code_Sample|Category:Needs Code Sample]]
 
 
 
Information on how to create a code sample: [[Template:CodeSample]]
 

Revision as of 22:32, 25 June 2014

KoLMafia internally tracks progress for a number of quests. These are stored as preferences in settings\[charactername]_prefs.

Quests Granted by Familiars

questF01Primordial

=unstarted

questF02Hyboria

=unstarted

questF03Future

=unstarted

questF04Elves

=unstarted

questF05Clancy

=unstarted

Guild Quests

questG01Meatcar

Possible values: unstarted, started

questG02Whitecastle

=unstarted

questG03Ego

=started

questG04Nemesis

=started

questG05Dark

=unstarted

questG06Delivery

=unstarted

Quests Granted by Items

questI01Scapegoat

=unstarted

questI02Beat

=unstarted

Council Quests

questL02Larva

=finished

questL03Rat

=finished

questL04Bat

=finished

questL05Goblin

=finished

questL06Friar

=finished

questL07Cyrptic

=finished

questL08Trapper

=finished

questL09Lol

=unstarted

questL09Topping

=finished

booPeakProgress

booPeakProgress tracks the hauntedness level of A-boo Peak. A value of 18, for instance, indicates that A-boo Peak is 18% haunted.

Possible values: 0 - 100

chasmBridgeProgress

chasmBridgeProgress tracks the player's progress in building a bridge across the Orc Chasm. A value of 10, for instance, indicates that the bridge is 10 planks long.

Possible values: 0 - 30

oilPeakProgress

oilPeakProgress tracks the remaining pressure at Oil Peak. It decreases as the player reduces the pressure in the zone.

Possible values: 0.00 - 310.66

  • 310.66: Pressure not yet reduced
  • 0.00: Subquest completed

twinPeakProgress

twinPeakProgress is a nibble bitmask with least significant bit set for the first choice and the most significant for the fourth. You can parse this with bitwise operators. Here's some code that demonstrates how to use it.

void comma(buffer b, string s) {
	if(length(b) > 0)
		b.append(", ");
	b.append(s);
}

boolean mysterious(int progress, int c) { 
	return (progress & (1 << c)) == 0;
}

string twinPeak() {
	int p = get_property("twinPeakProgress").to_int();
	buffer need;
	if(mysterious(p, 0)) need.comma("4 Stench Resistance");
	if(mysterious(p, 1)) need.comma("+50% Item Drop");
	if(mysterious(p, 2)) need.comma("Jar of Oil");
	// Only check for final if first three complete
	if(length(need) == 0) {
		if(mysterious(p, 3))
			return "Need +40% Initiative";
		return "Twin Peak Completed";
	}
	return "Need " + need;
}

questL10Garbage

=finished

questL11MacGuffin

=finished

questL11Black

Tracks Black Market discovery

questL11Manor

=finished

wineCellarProgress

=3

questL11Desert

Explore the Arid, Extra-Dry Desert to find the pyramid mentioned in your father's journal.

questL11Pyramid

Make your way into the depths of the Ancient Buried Pyramid.

gnasirProgress

gnasirProgress is a nibble bitmask with one bit for each possible way you can advance Gnasir's quest. You can parse this with bitwise operators. Here's some code that demonstrates how to use it.

int gnasirProgress = get_property("gnasirProgress").to_int();
buffer gnasir;
if((gnasirProgress & 1) == 0)
	print("Gnasir wants a stone rose");
if((gnasirProgress & 2) == 0)
	print("Gnasir wants a can of black paint");
if((gnasirProgress & 4) == 0)
	print("Gnasir wants a killing jar");
if((gnasirProgress & 8) == 0)
	print("Gnasir wants a 15 worm-riding manual page");
if((gnasirProgress & 16) == 0)
	print("You need to use a drum machine to ride the worm");

questL11Ron

Ron Copperhead

zeppelinProtestors

Tracks protesters removed

questL11Shen

Shen Copperhead

questL11Palindome

=finished

questL11Worship

=finished

questL11Business
questL11Curses
questL11Doctor
questL11Spare
hiddenApartmentProgress

hiddenApartmentProgress tracks progress through the Hidden Apartment Building during the Quest for the Holy MacGuffin.

Possible values: 0, 1, 6 - 8

  • 0: Haven't opened the Hidden Apartment Building
  • 1: Hidden Apartment Building is open for adventuring
  • 6: Encountered the Protector Spirit
  • 7: Found the stone sphere
  • 8: Placed the stone sphere in the relevant overgrown shrine
hiddenBowlingAlleyProgress

hiddenBowlingAlleyProgress tracks progress through the Hidden Bowling Alley during the Quest for the Holy MacGuffin.

Possible values: 0, 1, 6 - 8

  • 0: Haven't opened the Hidden Bowling Alley
  • 1: Hidden Bowling Alley is open for adventuring
  • 6: Encountered the Protector Spirit
  • 7: Found the stone sphere
  • 8: Placed the stone sphere in the relevant overgrown shrine
hiddenHospitalProgress

hiddenHospitalProgress tracks progress through the Hidden Hospital during the Quest for the Holy MacGuffin.

Possible values: 0 - 8

  • 0: Haven't opened the Hidden Hospital
  • 1: Hidden Hospital is open for adventuring, but haven't bowled.
  • 2-5: Number of times bowled is 1 less than hiddenHospitalProgress
  • 6: Encountered the Protector Spirit
  • 7: Found the stone sphere
  • 8: Placed the stone sphere in the relevant overgrown shrine
hiddenOfficeProgress

hiddenOfficeProgress tracks progress through the Hidden Office Building during the Quest for the Holy MacGuffin.

Possible values: 0, 1, 6 - 8

  • 0: Haven't opened the Hidden Office Building
  • 1: Hidden Office Building is open for adventuring
  • 6: Encountered the Protector Spirit
  • 7: Found the stone sphere
  • 8: Placed the stone sphere in the relevant overgrown shrine
hiddenTavernUnlock

hiddenTavernUnlock tracks whether or not you have unlocked the Hidden Tavern during the Quest for the Holy MacGuffin.

Possible values: 0 - N

  • When the value is equal to your number of ascensions, the Tavern is unlocked
  • When the value is any other number, the Tavern is locked

questL12War

=finished

warProgress

Possible values for the progress of the Isle War:

  • unstarted: We can still visit the small version of the Mysterious Island
  • started: The war is in progress
  • finished: The final boss or bosses were defeated

sideDefeated

Which side of the Isle War was defeated during the Level 12 quest.

Possible values:

  • neither
  • hippies
  • fratboys
  • both

questL13Final

=finished

Miscellaneous Quests

questM01Untinker

=finished

questM02Artist

=unstarted

questM03Bugbear

=unstarted

questM04Galaktic

=started

questM05Toot

=unstarted

questM06Gourd

=unstarted

questM07Hammer

=unstarted

questM08Baker

=unstarted

questM09Rocks

=unstarted

questM10Azazel

=finished

questM11Postal

=unstarted

questM12Pirate

=finished

questM13Escape

=unstarted

questM14Bounty

=unstarted

questM15Lol

=started

questM16Temple

Dakota Fanning's quest to find the Hidden Temple

questM17Babies

Lady Spookyraven's Babies

questM18Swamp

Marty and His Swamp Problems

questM19Hippy

Hippy Give a Hippy a Boat...

questM20Necklace

Lady Spookyraven's Necklace

questM21Dance

Lady Spookyraven's Dance

Sea Quests

questS01OldGuy

=finished

questS02Monkee

=unstarted

merkinQuestPath

merkinQuestPath indicates which path the player has chosen in the Mer-Kin Deepcity, during the Sea Monkees Quest.

Possible values:

  • none: Player has not yet chosen a path
  • gladiator: Player will fight Yog-Urt, Elder Goddess of Hatred
  • scholar: Player will fight Shub-Jigguwatt, Elder God of Violence
  • done: Player has completed the Sea Monkees Quest

skateParkStatus

Bug Bear Invasion Properties

mothershipProgress

mothershipProgress tracks progress of level completion in the Bugbear Mothership. It goes from 0 to 3 as that level is cleared.

Possible values: 0-3

statusEngineering

statusGalley

statusMedbay

statusMorgue

statusNavigation

statusScienceLab

statusSonar

statusSpecialOps

statusWasteProcessing

All of these work the same way.

  • 0-x (integers): insufficient bodata collected)
  • open: all biodata collected and zone accessible
  • unlocked: biodata collected but zone not yet accessible
  • cleared: zone has been cleared