Custom quest support

For all talk about quest development - creation, testing, and quest system bug diagnosis.
Post Reply
User avatar
Jay_H
Posts: 3280
Joined: Tue Aug 25, 2015 1:54 am

Re: Custom quest support

Post by Jay_H » Mon Jun 29, 2020 8:50 am

No, you can only pre-define a number for that. You could set multiple ones using "pick one of" to make it a little more varied, but you can't choose a random number from X to Y.
Come join Lysandus' Tomb, a Daggerfall Unity fan Discord.
In-progress guide for Quest Pack 1 here.

User avatar
harbinger451
Posts: 30
Joined: Mon Apr 13, 2020 4:08 pm

Re: Custom quest support

Post by harbinger451 » Mon Jun 29, 2020 1:07 pm

I assumed as much, but thanks for the confirmation.
ImageImageImage

User avatar
harbinger451
Posts: 30
Joined: Mon Apr 13, 2020 4:08 pm

Re: Custom quest support

Post by harbinger451 » Tue Jun 30, 2020 5:30 pm

I have another question ... more a problem really.
As part of my Prostitutes and Lovers Quest Pack I want to add a quest that makes the prostitutes in the game always proposition the player when clicked while the quest is open. Using the "faction aFaction available" and "repute with anNPC exceeds nn do aTask" conditions and the "start quest" action.

Here's the QBN section I've come up with so far:

Code: Select all

QBN:

Person _qgiver_ group Questor

Clock _delayend_ 01.00:00

--Quest start-up:
    start timer _delayend_
    log 1010 step 0

_prostitute5_ task:
    faction The_Prostitutes available
    repute with _qgiver_ exceeds 60 do _choice1_

_prostitute4_ task:
    faction The_Prostitutes available
    repute with _qgiver_ exceeds 45 do _choice2_

_prostitute3_ task:
    faction The_Prostitutes available
    repute with _qgiver_ exceeds 30 do _choice3_

_prostitute2_ task:
    faction The_Prostitutes available
    repute with _qgiver_ exceeds 15 do _choice4_

_prostitute1_ task:
    faction The_Prostitutes available
    repute with _qgiver_ exceeds 00 do _prostitution1_

_choice1_ task:
    pick one of _prostitution5_ _prostitution4_ _prostitution3_ _prostitution2_

_choice2_ task:
    pick one of _prostitution4_ _prostitution3_ _prostitution2_ _prostitution1_

_choice3_ task:
    pick one of _prostitution3_ _prostitution2_ _prostitution1_

_choice4_ task:
    pick one of _prostitution2_ _prostitution1_

_prostitution5_ task:
    start quest PROST005
    clear _prostitute5_
    clear _prostitute4_
    clear _prostitute3_
    clear _prostitute2_

_prostitution4_ task:
    start quest PROST004
    clear _prostitute4_
    clear _prostitute3_
    clear _prostitute2_
    clear _prostitute1_

_prostitution3_ task:
    start quest PROST003
    clear _prostitute3_
    clear _prostitute2_
    clear _prostitute1_

_prostitution2_ task:
    start quest PROST002
    clear _prostitute2_
    clear _prostitute1_

_prostitution1_ task:
    start quest PROST001
    clear _prostitute1_

_qgiverclicked_ task:
    clicked npc _qgiver_

_delayend_ task:
    when _qgiverclicked_
    prompt 1011 yes _yes_ no _no_

_yes_ task:
    give pc nothing
    remove log step 0
    log 1012 step 1
    end quest

_no_ task:
    say 1003
    remove log step 0
    log 1013 step 1
    end quest
The quest startup works fine, as do the tasks from the _qgiverclicked_ task that make up the end of the quest. Everything else inbetween does not work.. I know that all the quests that are called with the "start quest" action work fine in their own right, but I can't get them to work via this quest.

Are there any obvious mistakes I've made? Or is it just that the prostitutes aren't a fully functioning faction?

Any insights or suggestions will be gratefully recieved.
ImageImageImage

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

Re: Custom quest support

Post by Jay_H » Tue Jun 30, 2020 7:40 pm

You're trying things that are beyond my experience, so I can't offer much. I put your quest file into VS Code and got this:

Image

Tipton wrote:
Checking faction availability
when aFaction is available
This condition checks whether the specified faction is available for assignment as a questor in an upcoming quest that the present quest would like to schedule. nnn is either a faction number, or the proper name of a faction. See the Person command for the complete list of factions.
This condition is triggered by the player clicking the mouse on an NPC sprite associated with the specific faction in the game world.

The main quest monitors the availability of NPCs connected with the main story before attempting to schedule a new subplot. The player triggers this check by clicking on the NPC sprite that corresponds to the specified faction.

Some permanent NPCs play a role in several different subplots. To avoid inadvertently scheduling a new subplot which uses a permanent NPC in a starring role while the same NPC is already starring in an active quest, the monitor quest checks whether the desired NPC is free at the moment, to schedule their entrance in the upcoming subplot.
Changing it to the "when... is" format removed the problems in VS Code for me.
Come join Lysandus' Tomb, a Daggerfall Unity fan Discord.
In-progress guide for Quest Pack 1 here.

User avatar
harbinger451
Posts: 30
Joined: Mon Apr 13, 2020 4:08 pm

Re: Custom quest support

Post by harbinger451 » Tue Jun 30, 2020 10:17 pm

Yeah, I tried that already. I tried it again just in case, but the quest doesn't even seem to start running at all with "when The_Prostitutes is available" in place of "faction The_Prostitutes available". I'll keep testing it to see if it runs, but I'm close to giving up on it ever working properly.

I've tried every combination of the "faction available" and the "repute at least" conditions mentioned in Donald Tipton’s documentation, but I can't seem to get any of them to work with this quest. The quest starting and closing properly is the most I've been able to get it to do, and that only with the way its presented above, but it never actually schedules any of the other quests its supposed to. That's why I was wondering if it was a result of The_Prostitutes not being a proper faction.

Thanks for having a look at it though.
ImageImageImage

Post Reply