ACR Quest System

Scripted ALFA systems & related tech discussions (ACR)

Moderators: ALFA Administrators, Staff - Technical

User avatar
indio
Ancient Red Dragon
Posts: 2810
Joined: Sat Jan 03, 2004 10:40 am

Post by indio »

Quick update.

Firstly, thanks to AL for solving my database setup problems, and to cipher for this wonderful system.

Scouting works flawlessly, as do item-based quests. I need help with bounties and escort quests.

I can't work out how to factor the mob's death into the quest. The mob spawns, but its death does not increase the quests variable state. Any help would be great.
User avatar
ç i p h é r
Retired
Posts: 2904
Joined: Fri Oct 21, 2005 4:12 pm
Location: US Central (GMT - 6)

Post by ç i p h é r »

indio wrote:If you see this in passing cipher, does the waypoint function get used here? I assume the trigger is where the spawn is initiated when entered, but its at the waypoint where the creature actually spawns. I'll be testing it anyway, but just to make sure.
That's exactly right, Indio. That's how it *should* work, anyway. :lol:

If a waypoint isn't defined, the system will spawn the creature on the trigger (where the player is).
indio wrote:Scouting works flawlessly, as do item-based quests. I need help with bounties and escort quests.
Great! And FYI patrols are setup in much the same way as scouting, just with multiple triggers.
indio wrote:I can't work out how to factor the mob's death into the quest. The mob spawns, but its death does not increase the quests variable state. Any help would be great.
The mob's death is supposed to be handled by the ACR. The creature blueprint will require the acf_cre_* scripts for that to work. If you have your own custom creatuer scripts, you'll want to invoke the following function from your death script (include acr_quest_i):

void ACR_QuestCreatureOnDeath(object oKiller);

Now I had some problems with death triggering properly when testing, but I thought I fixed that. Please let me know if this issue persists.

Thanks.
User avatar
indio
Ancient Red Dragon
Posts: 2810
Joined: Sat Jan 03, 2004 10:40 am

Post by indio »

UPDATE

Working perfectly:
1. Scouting
2. Item Delivery

Working well, but with single problem:
1. Bounties (the trigger needs to be set to DoOnce, for if entered multiple times, multiple mobs spawn)
2. Escort (the variable state increases to its finished state, reflected in both the database and journal, but no xp is rewarded as defined in the journal)

Can't get to work:
1. Exploring/Patrols: Setting the upper state at 4, lowest at 1, and laying down 3 triggers with the same quest ID, only the first trigger is fired when entered.

Remote Database
I've browsed the remote database which is working perfectly, although I think it would be of significant advantage to store the player's character name along with their quests and states.

Lag
There is definite lag from Australia while doing these quests...in the range of .5 to 2 seconds in order for the following to occur:
- A conditionally-fired conversation
- Journal Updates
- Trigger spawns

Given quests can often involve combat, I strongly recommend storing quest data locally and then upload it to the database once per hour, or at other intervals approrpiate to the functioning of the server.
User avatar
ç i p h é r
Retired
Posts: 2904
Joined: Fri Oct 21, 2005 4:12 pm
Location: US Central (GMT - 6)

Post by ç i p h é r »

indio wrote:Working well, but with single problem:
1. Bounties (the trigger needs to be set to DoOnce, for if entered multiple times, multiple mobs spawn)
Roger. I thought that was already in the code but either it's not or just not working properly.
2. Escort (the variable state increases to its finished state, reflected in both the database and journal, but no xp is rewarded as defined in the journal)
Well we could just call these "Screw PC" quests and call it a day. :mrgreen:

Can you describe your setup - or email me the mod - so I can look into this one?
Can't get to work:
1. Exploring/Patrols: Setting the upper state at 4, lowest at 1, and laying down 3 triggers with the same quest ID, only the first trigger is fired when entered.
Interesting. How did you configure the lower states? Did you set them to 1, 2, and 3 on the triggers, respectively?
Remote Database
I've browsed the remote database which is working perfectly, although I think it would be of significant advantage to store the player's character name along with their quests and states.
You can actually achieve the same effect by joining on the characters table when querying the quests table. I can elaborate if you would like.
Lag
There is definite lag from Australia while doing these quests...in the range of .5 to 2 seconds in order for the following to occur:
- A conditionally-fired conversation
- Journal Updates
- Trigger spawns

Given quests can often involve combat, I strongly recommend storing quest data locally and then upload it to the database once per hour, or at other intervals approrpiate to the functioning of the server.
Good observations, Indio. I'll take a look and see what we can do to optimize performance.

Thanks for the report.
User avatar
indio
Ancient Red Dragon
Posts: 2810
Joined: Sat Jan 03, 2004 10:40 am

Post by indio »

I'll upload the area now and continue some experiments.

It was AL's suggestion to store locally and upload periodically, which I think was the way Knat's NWN1 database worked.

http://www.thesilvermarches.net/uploads ... ts_lab.rar
User avatar
indio
Ancient Red Dragon
Posts: 2810
Joined: Sat Jan 03, 2004 10:40 am

Post by indio »

The link to the area is in the above post.

On the issue of exporation and patrols, no, my triggers are not sequentially ordered. For patrolling sequences make sense, b ut exporation quests, where multiple locations need to be found in any order, would benefit from essentially generic parameters which update as triggers are entered. I'll test the patrol triggers now and post back.
User avatar
ç i p h é r
Retired
Posts: 2904
Joined: Fri Oct 21, 2005 4:12 pm
Location: US Central (GMT - 6)

Post by ç i p h é r »

indio wrote:The link to the area is in the above post.

On the issue of exporation and patrols, no, my triggers are not sequentially ordered. For patrolling sequences make sense, b ut exporation quests, where multiple locations need to be found in any order, would benefit from essentially generic parameters which update as triggers are entered. I'll test the patrol triggers now and post back.
Ah, ok. I was assuming just a single location per exploration quest gated by conversation nodes.

The reason it's not working past the first trigger is because 1 is the quest state required to activate the trigger. As soon as you step on the first trigger, your quest state increments and subsequently exceeds the entry quest state requirement for all remaining triggers. Thus they no longer activate. So it sounds like we just need to support triggers with no entry state requirements that allow a player to trigger them in any order but still only once. Easy to do for a single session, but it gets trickier with persistence.
User avatar
indio
Ancient Red Dragon
Posts: 2810
Joined: Sat Jan 03, 2004 10:40 am

Post by indio »

If you've downloaded already, redownload. Fixed a few things that got broken when transferring to a new, smaller area.
User avatar
indio
Ancient Red Dragon
Posts: 2810
Joined: Sat Jan 03, 2004 10:40 am

Post by indio »

Patrols work well. Very elegant system here cipher.

OK...so you're looking at escort quests, and I'm finishing up conversation templates. I've got one for each quest type, and when combined with the demo area and journal, should make quest setup pretty easy.
User avatar
indio
Ancient Red Dragon
Posts: 2810
Joined: Sat Jan 03, 2004 10:40 am

Post by indio »

http://www.anauroch.net/alfa/alfa_quests_lab.rar

Here's the first draft, conversation, test area and journal.

Grab this plugin to import the journal.
http://nwvault.ign.com/View.php?view=NW ... tail&id=58
User avatar
ç i p h é r
Retired
Posts: 2904
Joined: Fri Oct 21, 2005 4:12 pm
Location: US Central (GMT - 6)

Post by ç i p h é r »

Ok some very overdue fixes in place now:

1. Activated triggers won't reactivate for the same player (do once)

2. Triggers w/o activation requirements can be created (to support random order exploration quests), but I would still encourage using sequential triggers gated through conversations (ie setup as multiple or multi-part quests). That's less vulnerable to exploits.

3. Escort quests now give quest xp once the destination is reached.

One question about #3. Currently, escort quests assume a single destination. Do we need to support multi destination escort quests where a PC has to hit a series of locations in sequence? As with exploration quests, this can be setup in parts so it's not entirely necessary, but I want to be sure more flexibility is desired before I close the book on this.

Thanks.
User avatar
indio
Ancient Red Dragon
Posts: 2810
Joined: Sat Jan 03, 2004 10:40 am

Post by indio »

That would be great actually, especially for exploration quests in truth. Receiving the quest then locating two separate locations, being rewarded on entering the second location.

And if that's convenient to add to escort quests also, then excellent.
User avatar
ç i p h é r
Retired
Posts: 2904
Joined: Fri Oct 21, 2005 4:12 pm
Location: US Central (GMT - 6)

Post by ç i p h é r »

That shouldn't be a problem. Just a few extra lines of code. I'll get that in today.
User avatar
AcadiusLost
Chosen of Forumamus, God of Forums
Posts: 5061
Joined: Tue Oct 19, 2004 8:38 am
Location: Montara, CA [GMT -8]
Contact:

Post by AcadiusLost »

In their current state, scouting quests that have multiple triggers (queststate 1->2, 2->3, etc) seem to give the Module journal amount of XP on each trigger entry, rather than once on completion (or achieving the queststate just before). Is this by intention? If so, the Module Journal entries for XP reward will be somewhat misleading when reviewing statics.

Is this also true for multi-opponent bounty quests and the like?
User avatar
Teric neDhalir
Githyanki
Posts: 1495
Joined: Mon Jan 05, 2004 10:04 pm
Location: Manchester UK

Post by Teric neDhalir »

Eh, have we got a "how-to" that's fairly idiot-proof for this system (or better yet some examples)? If I'm going to put some statics in the OAS I need to gear up with this pretty quick-sharp.
Luv,
An Idiot.
Locked