win_64 0.7.91 A0C00Y07 Extermination quest [RESOLVED]

User avatar
Interkarma
Posts: 7247
Joined: Sun Mar 22, 2015 1:51 am

Re: win_64 0.7.91 A0C00Y07 Extermination quest

Post by Interkarma »

Cheers. I actually updated the questlist notes on this same quest only about a week ago.

Code: Select all

A0C00Y07, Commoners, N, 0, 0, Passed with issues. Does not check victory condition correctly. Does not confine enemy spawns to target building.
I think the issues are with the classic quest's scripting though, rather than Daggerfall Unity's quest system specifically.

Anyway, Jay has some fixes in his recent PR that should fix this one. :)

User avatar
Jay_H
Posts: 4072
Joined: Tue Aug 25, 2015 1:54 am
Contact:

Re: win_64 0.7.91 A0C00Y07 Extermination quest

Post by Jay_H »

Indeed. The quest has a curious quirk that'll cause swarm spawning if you re-enter the building. I've fixed it so that spawning is only possible until the requisite number of monsters is slain. Likewise, they'll only spawn in the building. Finally, you'll get an alert when you've slain enough enemies.

I just now added an additional layer to ensure spawning can only ever happen once.

I've also fixed the timer to be strictly 24 hours. Part of the problem with your time running out is due to a difficulty in detecting monsters while resting. Classic could detect enemies and stop rest on a dime, but DFU has a delay before rest stops. I'm certain that'll get a look when it's relevant.

User avatar
jayhova
Posts: 924
Joined: Wed Jul 19, 2017 7:54 pm
Contact:

Re: win_64 0.7.91 A0C00Y07 Extermination quest

Post by jayhova »

I'm assuming that the quest debugger works in the way it appears to work, that as you fulfill the quest objectives they turn green. I noticed that no matter how many MOBs I killed in the first part the quest would not advance. This behavior seems to be repeated in later parts. In the first part I didn't have multiple monsters but all the monsters were the same (bats). The second part could be bats and rats. The third or forth parts could be bats, rats or scorpions. It looks like this particular quest suffers from several behaviors that deviate from classic.

The time delay until spawn is a thing that affects guard quests. You go to steal a widget from some house and the guard that is supposed to stop you isn't there. I could make it all the way back to the thieves guild and complete the quest before the guard would spawn. Of course when he did spawn he did so outside the house and typically the city where he was supposed to.
Remember always 'What would Julian Do?'.

User avatar
Interkarma
Posts: 7247
Joined: Sun Mar 22, 2015 1:51 am

Re: win_64 0.7.91 A0C00Y07 Extermination quest

Post by Interkarma »

The quest is being executed as it's scripted. Jay has resolutions for these in his PR, so I'll mark this one as resolved.

User avatar
Jay_H
Posts: 4072
Joined: Tue Aug 25, 2015 1:54 am
Contact:

Re: win_64 0.7.91 A0C00Y07 Extermination quest [RESOLVED]

Post by Jay_H »

This is how it looks in its patched state.


User avatar
Interkarma
Posts: 7247
Joined: Sun Mar 22, 2015 1:51 am

Re: win_64 0.7.91 A0C00Y07 Extermination quest [RESOLVED]

Post by Interkarma »

Looks good, thanks Jay! :)

User avatar
jayhova
Posts: 924
Joined: Wed Jul 19, 2017 7:54 pm
Contact:

Re: win_64 0.7.91 A0C00Y07 Extermination quest [RESOLVED]

Post by jayhova »

Jay_H wrote: Fri Apr 19, 2019 11:36 pm This is how it looks in its patched state.
While you did get it working in that the quest does terminate. It still does not seem to be working as I would expect.

You are still getting a stream of the same monster. When I got the quest to progress, the monsters varied. I'm thinking the idea for how the quest was supposed to operate was that the quest starts with a fairly easy monster then progresses to more difficult monsters as you kill the creatures. That does not seem to be happening here. I believe also that the way it is supposed to work if you kill some monsters leave and come back there are fewer monsters to kill because you advanced in the quest. In the patched version if you leave do you have to fight the rats all over again? Do the monsters change if you come back?
Remember always 'What would Julian Do?'.

User avatar
Jay_H
Posts: 4072
Joined: Tue Aug 25, 2015 1:54 am
Contact:

Re: win_64 0.7.91 A0C00Y07 Extermination quest [RESOLVED]

Post by Jay_H »

I'll post relevant snippets of the unpatched quest file to show how the mechanics work.

Code: Select all

--	Quest start-up:
	start timer _oneday_ (time limit of 24 hours)
	log 1010 step 0 
	pc at _house_ set _S.01_ (once the PC steps inside the house, S.01 will activate)
	create npc at _house_ 

Code: Select all

_S.01_ task:
	pick one of _S.04_ _S.05_ _S.06_ _S.07_

_S.04_ task:
	create foe _bats_ every 3 minutes 8 times with 25% success 

_S.05_ task:
	create foe _rats_ every 3 minutes 10 times with 25% success 

_S.06_ task:
	create foe _scorpions_ every 3 minutes 4 times with 25% success 

_S.07_ task:
	create foe _spiders_ every 3 minutes 4 times with 25% success 
This is badly programmed. The wiser choice would have been to do the "pick one" at the start of the quest, not when the PC enters the house. This runs the risk of what you found: if you step outside the house and re-enter, the game decides to do another "pick one," which can be a different one. One idea is that they hadn't planned or implemented a "when _condition1_ and _condition2_, do _action1_" scheme yet, making this sort of brute-force action necessary.

Code: Select all

_S.03_ task:
	killed 6 _bats_ 
	killed 3 _spiders_ 
	killed 7 _rats_ 
	killed 3 _scorpions_ 
When a series of conditions lines up like this, it always means "or," not "and." Any of these conditions can be met, and the game will activate S.03.

A corollary can be found in the Fighters Guild bats-or-rats quest:

Code: Select all

_mondead_ task:
	killed 4 _rats_ 
	killed 4 _monster_ 
	say 1020 
You can either kill 4 bats or 4 rats (_monster_ is bat here) and the game will accept it as victory. The game will not spawn both bats and rats, only the one or the other.

Code: Select all

_questdone_ task:
	clicked npc _qgiver_ 
	give pc _gold_ 
This is the culprit behind the instant win glitch players frequently meet. There's no check for whether S.03 is activated; merely talking to the questgiver is enough to grant you the gold.

This is my patched version:

Code: Select all

_pcgetsgold_ task:
	when _questdone_ and _S.03_
	give pc _gold_ 
	end quest
It's easy to surmise that this was one of the very first quests written for Daggerfall, before they really had the matter of conditions and actions well-planted. Later quests avoid the instant victory glitch as a matter of routine, showing they were made later. This one has several execution flaws that show a lack of experience with the DF engine, one of which being the fact that monsters will spawn in any location, not only at the quest house; this doesn't become apparent until you test it, which they likely had no time to.

There's nothing in the quest to suggest monsters will get progressively harder. "pick one" will randomly choose one of the available options. It would be easy to make a cascading monster creation by using something like this:

Code: Select all

_slain1_ task:
  killed 8 _rat_
  start task _spawn2_

_spawn2_ task:
  create foe _spider_ every 8 minutes with 25%  success
But since that wasn't the route they chose, it can't be substantiated by the quest file. The only way to get multiple monster spawns is by exiting and entering the building multiple times, which isn't a necessary step toward victory.

User avatar
jayhova
Posts: 924
Joined: Wed Jul 19, 2017 7:54 pm
Contact:

Re: win_64 0.7.91 A0C00Y07 Extermination quest [RESOLVED]

Post by jayhova »

Okay That clears things up. I am curious about timing in the quests. Is that real world time or game world time? That is to say a 3 minute spawn delay would be very short if it was based on Daggerfall world time.

There is always the possibility the quest would have functioned differently if the quest system in classic did not interpret the quests as the DFU. The original quest system might have been buggy in ways no one ever noticed because the quest operated as expected. I was able to finally complete the original quest by leaving and coming back multiple times. That seems to be the only thing that made this quest uncompletable. A bug in the original might have advanced the quest after each kill regardless. I'm not sure how to test this theory but my memory of quests similar to this is that the quest had 4-5 monsters and that was it. Memory of course is a subjective thing.
Remember always 'What would Julian Do?'.

BansheeXYZ
Posts: 555
Joined: Fri Oct 23, 2015 8:19 pm

Re: win_64 0.7.91 A0C00Y07 Extermination quest [RESOLVED]

Post by BansheeXYZ »

Seems odd to me that the spawns would be based on timers. It would be less confusing to the player if the first spawn happened on entry, and subsequent spawns on killing the prior spawn.

Locked