Page 9 of 9 FirstFirst ... 7 8 9
Results 81 to 89 of 89

Thread: September 2018 IotM - The Neverending Party

  1. #81
    Developer
    Join Date
    Apr 2010
    Posts
    5,049

    Default

    Aha, do you can pull three times a day AND they don’t reset!

  2. #82
    Senior Member
    Join Date
    Oct 2013
    Posts
    234

    Default

    Right. Unsure if they reset on ascension, I thought I saw somewhere that they did not. Which would make for some really ridiculous initiative.

  3. #83
    Developer
    Join Date
    Apr 2010
    Posts
    5,049

    Default

    r18971 - untested, should set correctly if item viewed - untested.

  4. #84
    Senior Member
    Join Date
    Oct 2013
    Posts
    234

    Default

    r18973. Just ran breakfast without viewing the pump-up high-tops first, and no pumps occurred. _highTopPumps and highTopPumped started at 0. highTopPumps was still 3. I pumped them three times in the relay browser, viewing the item description in between each pump, and all of those preferences are now 3.

    Is highTopPumps (no leading underscore) no longer used?

  5. #85
    Developer
    Join Date
    Apr 2010
    Posts
    5,049

    Default

    r18974 fixes recognising current number of pumps when viewing item description.

    No, there is no need for a how many pumped today count that doesn't reset overnight. We needed two counters as we have a daily limit and a current that doesn't have a daily limit.

  6. #86

    Default

    Would it be possible to track what once-per-day quest-expediting choice adventures have already been used? I'm trying to script the quest and it would be convenient - currently you can only find out if the option is available after unrevokably deciding on the first part of the choice (i.e. going upstairs, basement).

  7. #87
    Senior Member zarqon's Avatar
    Join Date
    Nov 2007
    Location
    Seoul, Korea
    Posts
    3,641

    Default

    @gausie: Mercenary Mood does it like so:

    PHP Code:
          case $location[The Neverending Party]: if (qprop("_questPartyFair < started") || qprop("_questPartyFair")) return;  // don't do anything if the quest isn't started OR is finished
             
    switch (get_property("_questPartyFairQuest")) {
                case 
    "food"friendlyset(1324,"2","Go to the kitchen for food stuff.");
                   if (
    get_property("_questPartyFairProgress") == ""friendlyset(1326,"3","Ask the kitchen lady which food to collect.");
                    else if (
    item_amount(to_item(to_int(excise(get_property("_questPartyFairProgress")," ","")))) >= to_int(excise(get_property("_questPartyFairProgress"),""," ")))
                       
    friendlyset(1326,"4","Turn in your snacks to the kitchen lady.");
                   return;
                case 
    "booze"friendlyset(1324,"3","Go to the backyard for booze stuff.");
                   if (
    get_property("_questPartyFairProgress") == ""friendlyset(1327,"3","Find Gerald.");
                    else if (
    item_amount(to_item(to_int(excise(get_property("_questPartyFairProgress")," ","")))) >= to_int(excise(get_property("_questPartyFairProgress"),""," ")))
                       
    friendlyset(1327,"4","Turn in the food to Gerald.");
                   return;
                case 
    "dj": if (my_buffedstat($stat[moxie]) < 300) break;
                   
    friendlyset(1324,"1","Go upstairs to look for meat.");
                   
    friendlyset(1325,"4","Crack the safe!");
                   return;
                case 
    "trash"friendlyset(1324,"2","Go to the kitchen to burn trash.");
                   
    friendlyset(1326,"5","Burn some trash! (25% progress)");
                   return;
                case 
    "woots": if (item_amount($item[very small red dress]) > && !contains_text(session_logs(1)[0],"Encounter: A Room With a View")) {  // detection method imperfect but good enough
                      
    friendlyset(1324,"1","Go upstairs for the lamp.");
                      
    friendlyset(1325,"5","Throw a red dress on the lamp.");
                   } else if (
    item_amount($item[electronics kit]) > && !contains_text(session_logs(1)[0],"Encounter: Basement Urges")) {
                      
    friendlyset(1324,"4","Go to the basement for the lights.");
                      
    friendlyset(1328,"4","Modify the living room lights.");
                   } else 
    friendlyset(1324,"5","Fight a random partier.");
                   return;
                case 
    "partiers": if (have_item($item[intimidating chainsaw]) == 0) {  // saw -> 30% -> 20% is optimal regardless of easy/hard
                      
    friendlyset(1324,"4","Go to the basement for a chainsaw.");
                      
    friendlyset(1328,"3","Pick up a chainsaw.");
                   } else if (
    item_amount($item[jam band bootleg]) > && !contains_text(session_logs(1)[0],"Encounter: A Room With a View")) {
                      
    friendlyset(1324,"1","Go upstairs for the stereo.");
                      
    friendlyset(1325,"3","Put a jam band bootleg in the stereo.");
                   } else if (
    item_amount($item[Purple Beast energy drink]) > && get_property("_questPartyFairProgress").to_int() >= 10 && !contains_text(session_logs(1)[0],"Encounter: Forward to the Back")) {
                      
    friendlyset(1324,"3","Go to the backyard for the pool.");
                      
    friendlyset(1327,"5","Pour Purple Beast in the pool!");
                   } else 
    friendlyset(1324,"5","Fight a random partier.");
                   return;
                default: 
    friendlyset(1324,"0","Decide what to do yourself!");
             } 
    This has worked well enough for me so far (three characters, one finished and two almost done with HARD MODE). If you're using MM and BBB all you need to script is starting the quest -- then you can simply adventure there until you're done. BBB will equip items you need and MM will set the choices for you.
    Last edited by zarqon; 11-06-2018 at 01:44 PM.
    Sig by JakAtk
    My scripts: Prefref Plus | Skillref Plus | One-Click Wossna | Om*****st (??) | Psychose-a-Matic | RandBot
    Combat suite: Best Between Battle | Mercenary Mood | SmartStasis | BatMan | BatMan RE
    For script authors: ASH Wiki | ZLib | BatBrain | CLI Links | Drag-n-Drop Inventories | CanAdv | Script Registry | Map Manager
    If you appreciate my work, help me become BAT KING OF THE WORLD! Thanks to all donators!

  8. #88

    Default

    Well I do use both of your scripts anyway and didn't realise I didn't need to write my own I guess searching the session logs is a good enough solution though yes.

  9. #89
    Senior Member
    Join Date
    Jun 2016
    Posts
    292

    Default

    My free fight script logs the encounters when they happened.

    Code:
    boolean StockPartyConsumables() {
    	string [int] PartyFairConsumableStrings;
    	item PartyFairConsumable,PartyFairConsumableCreator;
    	int PartyFairConsumableAmount, dummy;
    	PartyFairConsumableStrings = split_string(get_property("_questPartyFairProgress")," ");
    	if ( PartyFairConsumableStrings.count() == 2 ) {
    		PartyFairConsumable = to_item(to_int(PartyFairConsumableStrings[1]));
    		PartyFairConsumableAmount = to_int(PartyFairConsumableStrings[0]);
    		if ( PartyFairConsumable.fullness > 0 )
    			PartyFairConsumableCreator = $item[van key];
    		else if ( PartyFairConsumable.inebriety > 0 )
    			PartyFairConsumableCreator = $item[unremarkable duffel bag];
    		else
    			return false;
    		while ( available_amount(PartyFairConsumable) < PartyFairConsumableAmount ) {
    			if ( mall_price(PartyFairConsumable) > 2*mall_price(PartyFairConsumableCreator) ) {
    				if ( item_amount(PartyFairConsumableCreator)==0 )
    					buy(1,PartyFairConsumableCreator);
    				use(item_amount(PartyFairConsumableCreator),PartyFairConsumableCreator);
    			}
    			else				
    				dummy = buy(PartyFairConsumableAmount-available_amount(PartyFairConsumable),PartyFairConsumable,mall_price(PartyFairConsumable));
    		}
    	}
    	return retrieve_item(PartyFairConsumableAmount,PartyFairConsumable);
    }
    
    void UpdateNeverendingParty() {
    	string PartyNoncombatsVisited = get_property("_neverendingPartyNoncombatsVisited");
    	if ( get_property("_neverendingPartyFreeTurns").to_int() == 9 && UseClaraForPartying && have_effect($effect[Eldritch Attunement])==0 && $strings[food,booze,woots] contains get_property("_questPartyFairQuest") )
    		use(1,$item[Clara's Bell]);
    	switch ( get_property("_questPartyFairQuest") ) {
    		case "dj":			// crack the safe?
    		case "trash":		// burn trash in the kitchen?
    		case "":
    			set_property("choiceAdventure1324",5);	// combat
    			break;
    		case "food":
    			set_property("choiceAdventure1324",2);	// kitchen
    			switch ( get_property("_questPartyFair") ) {
    				case "started":
    					set_property("choiceAdventure1326",3);	// talk to geraldine
    					break;
    				case "step1":
    					if ( !StockPartyConsumables() )
    						abort("Couldn't acquire the required consumables");
    				case "step2":
    					set_property("choiceAdventure1326",4);	// give food to geraldine
    					break;
    			}
    			break;
    		case "booze":
    			set_property("choiceAdventure1324",3);	// backyard
    			switch ( get_property("_questPartyFair") ) {
    				case "started":
    					set_property("choiceAdventure1327",3);	// talk to gerald
    					break;
    				case "step1":
    					if ( !StockPartyConsumables() )
    						abort("Couldn't acquire the required consumables");
    				case "step2":
    					set_property("choiceAdventure1327",4);	// give booze to gerald
    					break;
    			}
    			break;
    		case "woots":
    			if ( item_amount($item[cosmetic football])>0 && equipped_item($slot[off-hand])!=$item[cosmetic football] )
    				equip($slot[off-hand],$item[cosmetic football]);
    			set_property("choiceAdventure1325",5);	// drape red dress over lamp
    			set_property("choiceAdventure1328",4);	// adjust lights
    
    			if ( !contains_text(PartyNoncombatsVisited,"1325-5") && item_amount($item[very small red dress])>0 )
    				set_property("choiceAdventure1324",1);	// bedroom
    			else if ( !contains_text(PartyNoncombatsVisited,"1328-5") && item_amount($item[electronics kit])>0 )
    				set_property("choiceAdventure1324",4);	// basement
    			else
    				set_property("choiceAdventure1324",5);	// combat
    			break;
    		case "partiers":
    			if ( item_amount($item[intimidating chainsaw])>0 && equipped_item($slot[weapon])!=$item[intimidating chainsaw] )
    				equip($item[intimidating chainsaw]);
    			set_property("choiceAdventure1328",3);	// intimidating chainsaw
    			set_property("choiceAdventure1325",3);	// play jam bad bootleg
    			set_property("choiceAdventure1327",5);	// throw purple energy drink into pool
    
    			if ( !contains_text(PartyNoncombatsVisited,"1328-3") )
    				set_property("choiceAdventure1324",4);	// basement
    			else if ( !contains_text(PartyNoncombatsVisited,"1325-3") && item_amount($item[jam band bootleg])>0 )
    				set_property("choiceAdventure1324",1);	// bedroom
    			else if ( !contains_text(PartyNoncombatsVisited,"1327-5") && item_amount($item[Purple Beast energy drink])>0 )
    				set_property("choiceAdventure1324",3);	// backyard
    			else
    				set_property("choiceAdventure1324",5);	// combat
    			break;
    		default: 
    			abort("Huh, were we unable to recognize the party quest?");
    	}
    }
    
    
    void NeverendingParty() {
    	if ( get_property("_neverendingPartyFreeTurns").to_int() < 10 ) {
    		HeavyRains((10-get_property("_neverendingPartyFreeTurns").to_int())*(have_effect($effect[Eldritch Attunement]) > 0 ? 2 : 1));
    		InitializeNeverendingParty();
    		if ( get_property("_partyHard").to_boolean() ) {
    			libramBurn();
    			equip($item[PARTY HARD T-shirt]);
    		}
    		while ( get_property("_neverendingPartyFreeTurns").to_int() < 10 && get_property("_questPartyFair") != "finished" ) {
    			UpdateNeverendingParty();
    			ChooseFamiliar();
    			adv1($location[The Neverending Party], -1, "");
    			while ( in_multi_fight() )
    				run_combat();
    			if ( last_choice()>=1325 && last_choice()<=1328 && last_decision()>=3 && !contains_text(get_property("_neverendingPartyNoncombatsVisited"),last_choice()+"-"+last_decision()) )
    				set_property("_neverendingPartyNoncombatsVisited",get_property("_neverendingPartyNoncombatsVisited")+last_choice()+"-"+last_decision()+" ");
    		}
    		if ( get_property("_questPartyFair") == "step2" )
    			adv1($location[The Neverending Party], -1, "");
    		if ( ( get_property("lastEncounter") == "Party's Over" || get_property("lastEncounter") == "All Done!" ) && get_property("_questPartyFair") != "finished" )
    			print(get_property("_questPartyFair"));
    	}
    }

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •