Feature - Implemented improvements to quest tracking

Bale

Minion
Confirmed. It does not temporarily go to completed quests, in direct contradiction of how KoL handles every other quest log. I already looked for it there. Several times.
 

nworbetan

Member
QuestDatabase.java. I see you added something to it in your patch, just scroll down a bit.

I'm pretty happy with what I found (looking at QuestDatabase.findQuestProgress()), because it looks like adding an unmatchable placeholder string to questslog.txt (I used the form: "step1 placeholder", or maybe just an extra tab if you think that looks better) will work fine to set the various sub-cycle "started" steps to even numbers, and then we can set the sub-cycle "finished" steps to odd numbers in AdventureRequest and ResultProcessor. If TPTB do add notes to the completed section of the quest logs when the various stages of the Cycle get finished, those notes can replace the placeholders in questslog.txt without any other changes being needed. Unless it happens to be the exact same note every time, but I don't even want to consider that nonsense unless it actually happens. >_<

But in the meantime, I still think that setting the odd numbered steps via Clancy's unbuffed level would be the simplest thing to do in case mafia didn't happen to see the AdventureRequest and/or ResultProcessor bits happen. Coming up with a KoLCharacter.getMinstrelBaseLevel() function is something I could do, but I don't have any idea where a sane place would be to use it to set the quest progress.

And there's still that one choice adventure that only happens in your first AoB run... If that doesn't add anything to the quest logs, I think it can be safely and permanently ignored. Does anyone happen to know one way or the other about that?
 

Attachments

  • tracking_clancy_with_placeholders.patch
    9.2 KB · Views: 19

nworbetan

Member
Just tested the patch with placeholders in game, and mostly everything checks good up to and including setting "step5" at the Luter. The one thing that didn't work at all was checking for KoLmafia.isAdventuring() in choice adventures that doesn't actually cost an adventure (i.e. #571-577 in ChoiceManager). Who'd've guessed?
 
questM03Bugbear isn't progressing.

quest log: A Bugbear of a Problem
Now that you've got a powerful Gravy Fairy, Mayor Zapruder wants you to investigate the Spooky Gravy Barrow in the Distant Woods.

> get questM03Bugbear

unstarted

by now, this should be step2. thanks.
 
Started
Code:
<p><blockquote><b>A Bugbear of a Problem</b><br>Mayor Zapruder of Degrassi Knoll wants you to investigate the Gnolls' bugbear pens, located in the Distant Woods.<p>

Step1
Code:
 <p><blockquote><b>A Bugbear of a Problem</b><br>Mayor Zapruder wants you to find your way to the spooky gravy fairies' barrow, but first he needs you to bring him a frozen mushroom from the mushroom fields deep within Degrassi Knoll.<p>

Step2
Code:
<p><blockquote><b>A Bugbear of a Problem</b><br>Now that you've got a powerful Gravy Fairy, Mayor Zapruder wants you to investigate the Spooky Gravy Barrow in the Distant Woods.<p>

Step3
Code:
<p><blockquote><b>A Bugbear of a Problem</b><br>Now that you've slain Queen Felonia, you should go back to Mayor Zapruder for your reward.<p>

Finished
Code:
<b>A Bugbear of a Problem</b><br>You've helped Mayor Zapruder of Degrassi Knoll with his spooky gravy fairy problem.  Nice going!<p>

Finished did get set correctly.
 

roippi

Developer
questM03Bugbear isn't progressing.

quest log: A Bugbear of a Problem
Now that you've got a powerful Gravy Fairy, Mayor Zapruder wants you to investigate the Spooky Gravy Barrow in the Distant Woods.

> get questM03Bugbear

unstarted

by now, this should be step2. thanks.

It's not updating when you do.. what? That quest doesn't live-update, but it should update when you look at the quest log or do "refresh quests."

I looked at questslog.txt and there doesn't appear to be anything wrong with the text there.
 
OK, I went thru this again step by step tonight.

get questM03Bugbear
> unstarted
Visiting Mayor Zapruder (this officially "starts" the quest)
get questM03Bugbear
> unstarted
Visit to questlog
get quest M03Bugbear
> started
pull: 4 annoying pitchfork
Visit Zapruder (to turn in pitchfork this is step 1)
get questM03Bugbear
> started
Visit Questlog
get questM03Bugbear
> started
pull: 8 frozen mushroom
Visit Zapruder (this is step2)
get questM03Bugbear
> started
visit the questlog
get questM03Bugbear
> step2
Kill Felonia (this is step3)
get questM03Bugbear
> step2
visit questlog
get questM03Bugbear
> step3
visit Zapruder last time to get reward
get questM03Bugbear
> step3
visit to questlog (open quests)
get questM03Bugbear
> step3
visit to questlog (completed quests)
get questM03Bugbear
> finished

It never recognized step1 at all. Always needed an explicit visit to the questlog to update the quest property. I say this, because I've been rewriting my pirate script, and it just goes right along updating the property as things are completed. You use capm caronchs map, and get questM12Pirate returns step1. I'm assuming mafia is supposed to be hitting questlog in the background somewhere when I call "get questMxxWhatever". It doesn't seem to be doing that during the Felonia quest. iow: what is the purpose the property if I have to continue to explicitly pagehit the questlog to keep it updated?
 
Last edited:

Bale

Minion
Putting aside the lack of recognizing step1, I'd like to address a misconception...

I'm assuming mafia is supposed to be hitting questlog in the background somewhere when I call "get questMxxWhatever". It doesn't seem to be doing that during the Felonia quest.

It does not hit questlog in the background. Mafia has been programmed to recognize the steps of the pirate quest as they are completed. Because roippi is awesome. If you would care to post the html from the pages where the steps of the quest get completed then roippi might be convinced to have the Felonia quest updated live as well by programming mafia recognize key parts of KoL's response text. I'd recommend just posting the stuff between <body> and </body> so that roippi doesn't have to look through too much useless text to pick out the parts he likes as the key for advancing the quest.

Be nice to roippi, since it is very tedious work.
 
Last edited:

roippi

Developer
I'd just copy/pasted what was in the wiki for step1 without realizing there's a variable bit of text in there. r10886.

The reason that the pirate quest updates when you use cap'm caronch's map is because I've hardcoded it to advance that quest when you receive the booty (note, that's different than just using the map; you can lose to the crab). As bale points out, I (or any dev) have not yet added that functionality to many of the miscellaneous quests. Slyz recently added the elven generator quest, so there's hope that progress may accelerate on that front.
 
OK. That's excellent. I hope you didn't think I wasn't being nice. I admit to knowing just enough to scripting to get me into trouble so I was willing to concede that I was doing something wrong/not understanding the process. Thank you. I mean that.

I gotta say, after my experience rewriting my pirate script, this format is really super easy to follow and I very much do appreciate the time and work that has already gone into it.
 
There is still a bug with step3 in the Bugbear quest. It stopped moving to step3 because you had the items in your inventory, but acquiring thru the battle does not properly update the property until a visit to the quest log. My new felonia script has this workaround. If you want to check it, use my script, but add a "get_property" to step2 before the visit_url to the questlog to see it change from 2 to 3.
 
Top