0.10.4 Restart Guard the Guild Quest [RESOLVED]

newsamsam
Posts: 7
Joined: Sun Sep 01, 2019 3:46 am

0.10.4 Restart Guard the Guild Quest [RESOLVED]

Post by newsamsam »

So I accidentally click a door that leads outside the guild(I didn't have the magic item in inventory at the moment) , went back in and loiter after 3 am.The game decided I stole the magic item even I leave it there.

How do I restart this quest?I tried endquest n0b10y03 but it didn't work.

Jay_H
Posts: 3419
Joined: Tue Aug 25, 2015 1:54 am

Re: Restart Guard the Guild Quest

Post by Jay_H »

Welcome to the forums :)

That is a very new bug! Haven't seen it yet. No idea how it could be caused, either.

Interkarma wrote a guide here about using the quest debugger. The easiest way to get rid of a quest is to turn that on and use the console command "enddebugquest" when you're viewing the one you want to cancel.
Farewell DFU community! My time here has been a joy.

newsamsam
Posts: 7
Joined: Sun Sep 01, 2019 3:46 am

Re: Restart Guard the Guild Quest

Post by newsamsam »

Thank you! I end the quest. After that I use startquest to test it a little bit. It seems if player pick up the magic item it will count as stolen.Not like what wiki said "but you can pick up and use the magical item you should guard at will between 00:00 and 03:00 as long as you stay in the guildhall."

Jay_H
Posts: 3419
Joined: Tue Aug 25, 2015 1:54 am

Re: Restart Guard the Guild Quest

Post by Jay_H »

Yeah, the wiki's dead wrong there :lol: The game registers the stolen item as stolen, regardless of exploits.
Farewell DFU community! My time here has been a joy.

User avatar
JorisVanEijden
Posts: 103
Joined: Mon Aug 12, 2019 5:02 pm

Re: Restart Guard the Guild Quest

Post by JorisVanEijden »

Nope, the wiki is correct. Between 00:00 and 03:00 it should be safe to pick up the item.

Relevant lines from decompilation of QBN version:

Code: Select all

4: >> IfTimeOfDayBetween (00:00:00, 03:00:00): set s_midnight3
12: >> IfItemPickedUp (i_treasure): set s_stoletreasure
13: >> IfItemDroppedAt (i_treasure, l_magesguild): set not s_stoletreasure
14: >> If (s_stoletreasure and not s_midnight3): set s_persecute
16: s_persecute => CreateLogEntry (1011, 1)
17: s_persecute => AdjustReputationWithNpc (n_qgiver, -30)
18: s_persecute => CreateFoe(m_knights, 60, 10%, 5)
And this is what Template made of it:

Code: Select all

_S.02_ task:
	daily from 00:00 to 03:00 

_S.06_ task:
	clicked item _treasure_ 

until _S.06_ performed:
	dropped _treasure_ at _magesguild_ 

_S.07_ task:
	when _S.06_ and not _S.02_ 
	create foe _F.01_ every 60 minutes 5 times with 10% success 
	log 1011 step 1 
	change repute with _qgiver_ by -30 
No idea what DFU is doing or is even supposed to do with that.

Jay_H
Posts: 3419
Joined: Tue Aug 25, 2015 1:54 am

Re: Restart Guard the Guild Quest

Post by Jay_H »

Fascinating. I hadn't dug into the quest enough in classic to know that.

I just tested it in classic and saw where my confusion could have come from:

1. I killed the thieves (12:30)
2. I grabbed the magic item
3. I rested until 3:30
4. Enemy knights started appearing to claim my bounty
5. I couldn't turn in the quest, even after dropping the magic item.

I tried several variations on it, and the only way to stay good was to grab the magic item after 12 and drop it before 3, and never leave the guild hall while carrying it. This is like easter egg-level directions in most other games :geek: But I was certainly wrong as you said. Good work.
Farewell DFU community! My time here has been a joy.

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

Re: Restart Guard the Guild Quest

Post by Interkarma »

JorisVanEijden wrote: Mon Sep 02, 2019 7:03 pm No idea what DFU is doing or is even supposed to do with that.
It will do the best it can, by gum. :lol:

On an related subject, I've been quite grateful for your insights lately Joris. Cheers!

User avatar
JorisVanEijden
Posts: 103
Joined: Mon Aug 12, 2019 5:02 pm

Re: Restart Guard the Guild Quest

Post by JorisVanEijden »

Interkarma wrote: Mon Sep 02, 2019 9:39 pm
JorisVanEijden wrote: Mon Sep 02, 2019 7:03 pm No idea what DFU is doing or is even supposed to do with that.
It will do the best it can, by gum. :lol:
Lol. I was in a hurry (dogs needed to go out) and meant to write "I have not looked into the DFU code related to these actions and tasks yet so I can't comment on its handling of this quest."
Interkarma wrote: Mon Sep 02, 2019 9:39 pm On an related subject, I've been quite grateful for your insights lately Joris. Cheers!
No worries, this project is a dream to work with. Make me wish I could do this as a dayjob ;)
Maybe it helps that I never owned or played Daggerfall. I came at this all fresh after noticing your alpha release announcement somewhere.

newsamsam
Posts: 7
Joined: Sun Sep 01, 2019 3:46 am

Re: Restart Guard the Guild Quest

Post by newsamsam »

To add some supplements, here's what exactly I've done during the quest:
1. Killed the thieves
2.Wandering around in the building to find where the magic item is, accidentally click a door on 2nd floor, got outside.
3.Door is Locked outside so I punched in, All the guild member is gone.Oh hey the magic item is on 2nd floor.
4.There's a 2nd wave enemies appear after I found the magic item,killed them too.
5.Pick up the magic item,identify it,then remove it to the ground.
6.loiter after 3 am, item counts as stolen.

So I guess the problem is accidentally went outside.

User avatar
JorisVanEijden
Posts: 103
Joined: Mon Aug 12, 2019 5:02 pm

Re: Restart Guard the Guild Quest

Post by JorisVanEijden »

Template turns two different concepts into "until performed" syntax.

1. It turns "if x is unset then unset y" into

Code: Select all

until x performed:
clear y
2. It turns "if condition then unset y" into

Code: Select all

until y performed:
check condition
DFU needs to check if there are any conditionals in the "until" task and if so use the 2nd form, which should clear the "targettask" (y) when the condition becomes true.

Or we can find and change all instances in the quests where the 2nd form is used and rewrite the logic to either not use "until" or to the 1st form.

@interkarma: what would you prefer?

Locked