Page 26 of 36

Re: Daggerfall Unity Quest Pack #1

Posted: Thu Jan 23, 2020 10:31 am
by pango
I wonder if UnityEngine.Random is correctly seeded when quests are parsed, or not. It's hard to be sure.
Given that Daggerfall Unity is moddable, it seems difficult to assume that it will always be the case.

Just as a safety, I wonder if we should reseed UnityEngine.Random before calling the parser.
And as a warning, it can be called several times from the same frame, say to build lists of available quests, so just seeding with Time.time or Time.frameCount won't be sufficient, but they're other ways, including System.Random...

Re: Daggerfall Unity Quest Pack #1

Posted: Thu Jan 23, 2020 11:25 am
by Hazelnut
It's nothing to do with the quest parser from what I can see Pango. It's the pick one action that does the rng based choice when updated - i.e. when the quest is running, not when it's parsed. What issue will re-seeding it fix anyway? Unless there's something seeding it before the action updates to a fixed value or something? Did you find anything like that?

Re: Daggerfall Unity Quest Pack #1

Posted: Thu Jan 23, 2020 1:14 pm
by pango
Hazelnut wrote: Thu Jan 23, 2020 11:25 am there's something seeding it before the action updates to a fixed value or something? Did you find anything like that?
I'm trying to find such case, but it's hard to get proofs. However similar issues happened before (guild giving quests always in the same location).
And mods using seeding could break a lot of stuff, I don't know if we want to defend against that or declare mods shouldn't do that...

Re: Daggerfall Unity Quest Pack #1

Posted: Sat Jan 25, 2020 4:36 am
by sebastian7
I've gotten the same cartographer's guild quest, the one about going to a dungeon for a group of guards who are going to storm it, 4 times in a row on my main character now and 3 times in a row on another character - seems quite unlikely to be happening by chance.

Re: Daggerfall Unity Quest Pack #1

Posted: Sat Jan 25, 2020 11:53 am
by Hazelnut
Do you use any other mods?

Re: Daggerfall Unity Quest Pack #1

Posted: Sat Jan 25, 2020 9:32 pm
by sebastian7
Hazelnut wrote: Sat Jan 25, 2020 11:53 am Do you use any other mods?
Yeah quite a number of others: warm ashes, DREAM + all recommended graphics mod, villager overhaul, taverns redone, persistent dungeons, and a few others.

Re: Daggerfall Unity Quest Pack #1

Posted: Sun Jan 26, 2020 12:48 am
by alphaTECH
This is my lineup too:

Daggerfall Unity 0.10.17
Tedious Travel 0.4.2
Archaeologists 0.11
Warm Ashes 3.0.3
Handpainted Models 1.83c
Improved Interior Lighting 1.0.2
Post Processing 1.0.1
Enhanced Sky 2.1.1
Villager Immersion Overhaul 4
Birds In Daggerfall 2.0
World Map 1.0
Mountains & Hills 1.02
Skyshards 1.00
Convenient Clock 1.03
Vibrant Wind 0.5
Real Grass 2.6
Autosave 0.9.0b
Quest Pack 1 14-12-19
Cleaned Sound Clips 1.3
Charcoal Ghosts 1.1
Unofficial Book Patch 2
Fancy Vitals Indicators (type) 2
Persistent Dungeons 1?
Windmills of Daggerfall 1
Compass Retexture 20-04-19
Drafty Secret Doors 1.4
Harvestable Crops 1.2.1
DREAM 2020-rc1
Taverns Redone 0.12
Trees of Daggerfall 1.0
Roleplay & Realism 0.8
Loot Realism 0.1
Climates & Cloaks 1.0
Inventory Filter 1.1
Outfit Manager 2.0
Filling Food 1.1

Re: Daggerfall Unity Quest Pack #1

Posted: Sun Jan 26, 2020 2:32 am
by alphaTECH
Just ran into another bug.

JHMG007, the assassin is not in the dungeon I have been teleported to.

I've attached the save file.

Re: Daggerfall Unity Quest Pack #1

Posted: Sun Jan 26, 2020 5:06 am
by Jay_H
That quest has a two- to four-hour timer before the enemy spawns. Once that timer is met, the enemy will occasionally be spawned within the dungeon:

Code: Select all

Clock _battle_ 2:00 4:00

_spawn_ task:
	when _battle_ and _inside_ and not _slain_
	create foe _enemy_ every 5 minutes indefinitely with 5% success
This is to overcome a limitation in Daggerfall, that there can only be one spawn point for the quest in the same dungeon. Had I used a static spawn, you'd be teleported directly to the enemy every time, which isn't much of a quest.

Re: Daggerfall Unity Quest Pack #1

Posted: Sun Jan 26, 2020 9:18 am
by alphaTECH
Jay_H wrote: Sun Jan 26, 2020 5:06 am That quest has a two- to four-hour timer before the enemy spawns. Once that timer is met, the enemy will occasionally be spawned within the dungeon:

Code: Select all

Clock _battle_ 2:00 4:00

_spawn_ task:
	when _battle_ and _inside_ and not _slain_
	create foe _enemy_ every 5 minutes indefinitely with 5% success
This is to overcome a limitation in Daggerfall, that there can only be one spawn point for the quest in the same dungeon. Had I used a static spawn, you'd be teleported directly to the enemy every time, which isn't much of a quest.
We have been given the order
<ce> of disposing of an outlaw in some ruins,
<ce> who must be surprised by the use of teleportation.
<ce> Apparently all other means have failed to find
<ce> the knave. If you are willing and ready, we should
<ce> like to teleport you this instant to get this over with.
It's very heavily implied that the guy is already there. I get the logic behind the way you've done this, but it's going to throw off a lot of people. When I explore a room, I do it thoroughly and make an effort not to go back there. Dungeons can be huge, there is very little reason beyond making a mistake that will draw the player to an area they've already been, unless they're instructed to somehow, or whatever spawns in there comes after the player instead.