## Slime Speed Run Script by Alhifar (mod 1.1a by Gemelli) ## Version 1.3a #################################### ## SETUP: ## (1) Copy this file to your Mafia scripts directory. ## (2) Set auto-recover settings for HP and MP fairly aggressively. I recover my HP to 100% from about 95% to be on the safe side. ## (3) Set your battle action to a script or action that will GUARANTEE to kill slimes ## (4) Ensure that you have enough HP and MP restorers on hand for the # of turns you will be running ## (5) Check the chamois on hand to ensure you won't run out mid-fight. ## (6) Configure all of the settings below. #################################### ## EXECUTION: ## In the gCLI window, type "slime.ash.txt X" to run the slime script for X turns. ## For example, "slime.ash.txt 100" will burn 100 turns on fighting slimes. #################################### ## CONFIGURATION: ## Outfit settings. Max ML should be loaded up with as much +ML gear as you can carry. Min ML should have *no* +ML gear at all; ## and can be focused on item drop (if you'll be pickpocketing) or survival. string max_ml_outfit = "slimy"; string min_ml_outfit = "oasis"; ## Determine whether you want to use a tattered scrap (or equivalent) on your minimum-ML turns. NOTE: It's recommended to use ## something more reliable than a tattered scrap here, such as a divine champagne popper. boolean use_tatter_like = false; item which_tatter = $item[tattered scrap of paper]; boolean use_cleesh = false; ## Familiars. Nice_kitty is the familiar you will use during minimum-ML turns. Bad_kitty is the one you will use during max-ML turns. familiar nice_kitty = $familiar[lobster]; familiar bad_kitty = $familiar[purse rat]; ## Set this to true if you want to use your hot tub for turns when the chamois runs out. But really, don't let it get to this point. boolean use_hottub = true; ## When you have this many turns of slime left, grab a chamois instead of adventuring int towel_grab = 5; ## If you have fewer than this many of your scrap-like things left, abort. int scrap_limit = 30; #################################### float[int] slime_percent; slime_percent[1] = 5.334167; slime_percent[2] = 4.001677; slime_percent[3] = 2.9025; slime_percent[4] = 2.016667; slime_percent[5] = 1.325; slime_percent[6] = .805833; slime_percent[7] = .4391667; slime_percent[8] = .200833; slime_percent[9] = .066667; slime_percent[10] = 0; int slimy_turns = 0; int scraplikes = 0; int slime_damage() { int damage = my_maxhp() * slime_percent[ have_effect( $effect[Covered in Slime] ) ]; return ceil( damage * ( elemental_resistance( $element[slime] ) / 100 ) ) + expected_damage( $monster[slime1] ); } boolean chamois() { visit_url( "clan_slimetube.php?action=chamois" ); if ( have_effect( $effect[Covered in Slime] ) > 0 ) { ## Tub code stolen... err... "borrowed" from matt.chugg print( "Chamois failed!" , "red" ); if( use_hottub && get_property( "_hotTubSoaks" ).to_int() < 5 ) { print ( "Using VIP bath..." ); cli_execute( "soak 1" ); if ( have_effect( $effect[Coated in Slime] ) > 0 ) { return false; } return true; } return false; } print( "Chamois successfully used." ); return true; } string run_choice( string page_text ) { while( contains_text( page_text , "choice.php" ) ) { int begin_choice_adv_num = ( index_of( page_text , "whichchoice value=" ) + 18 ); int end_choice_adv_num = index_of( page_text , ">" , begin_choice_adv_num ); string choice_adv_num = substring( page_text , begin_choice_adv_num , end_choice_adv_num ); string choice_adv_prop = "choiceAdventure" + choice_adv_num; string choice_num = get_property( choice_adv_prop ); if( choice_num == "" ) abort( "Unsupported Choice Adventure!" ); string url = "choice.php?pwd&whichchoice=" + choice_adv_num + "&option=" + choice_num; page_text = visit_url( url ); } if( contains_text( page_text , "Combat" ) ) page_text = run_combat(); return page_text; } void main( int adv_to_use ) { string old_action; string page_text; if( adv_to_use < 1 ) adv_to_use = my_adventures(); while( my_adventures() > 0 && adv_to_use > 0 ) { slimy_turns=have_effect($effect[Covered in Slime]); scraplikes=item_amount(which_tatter); print(adv_to_use + " turns to go; "+slimy_turns+" turns of slime; "+scraplikes+" tattered-scrap items."); if(scraplikes