When ACR Quests Go Bad...
Posted: Fri May 30, 2008 7:37 am
We don't always think about it in quest design, but sometimes a PC is going to bite off more than he or she can chew. Sometimes this will be seeing the defenses at a camp you signed on to scout, and realizing there's no way to get close enough to complete the quest without being flattened. Other times it's a raid quest, and the bounty creature wins. What next?
For the former, we could add a script/function to Remove Quest, which could be added to questgiver dialog options as an alternative path for an active, but incomplete quest. No reward, but freedom from the persistent nagging reminder of a quest incomplete that comes with journal persistency. Could be up to the builder to decide if the questgiver would re-offer the quest- they might even decide questgiver X would think highly of an adventurer who knew when to turn back from a dubious job gone sour.
For Raid quests especially though- we have the question of what happens to the triumphant bounty-creature (we'll use the catchy "Doomboar" as an example). So sure, you didn't like the looks of his bloodied tusks (or the bones of ten and forty men strewn about his lair) and fled the scene before Doombear caught your scent. What happens for the next PC who tries to do the quest? Will they end up facing Doomboar and Friend(s)?
I know these quests stretch IC believability in the best of cases, but for logistical reasons we should devise some sort of handling for aborted/failed raid quests.
-Timed Despawn via DelayCommand()? Not sure what amount of time from quest triggering is an appropriate window- could test to see if the quest trigger PC is still in the area after 5 minutes, if so, give it another 5 min, etc- we just really don't want to end up with a situation where the party finally fights their way through the Triad defenders only to find out the third and final boss has despawned because they took too long RPing through binding their wounds and such in the dungeon.
-Death of triggering PC? Could put a pointer on the PC to the mob at time of spawning, and dereference it to start a 5-min despawn timer on the mob, though this can be a bit OOC as well, if friends go in to try to recover the body- Doomboar is there defending his kill for a while, but then wanders off?
-Quest reported as failed? If we do set that pointer on the triggering PC, we could use it to clear the spawn if/when they return to apologise to the questgiver- though if there was a party doing the quest, they're likely not going to know who triggered the spawn, ideally anyone who was there when it spawned should be able to report failure and get it to despawn- but adding pointers for each and every party member with the quest active seems excessive.
-Quest trigger controls? We could add a ACR_QUEST_SPAWNED integer for TRUE/FALSE on the trigger, updated to synchronize with the spawn state, such that a new mob will never spawn if a prior one is already there- this would have to update pointers so whatever doomboar is there will "work" for the most recent party. I can see some potential for this getting tangled as well, though. Despawn or spawn death would set it back to FALSE, naturally.
Other ideas?
For the former, we could add a script/function to Remove Quest, which could be added to questgiver dialog options as an alternative path for an active, but incomplete quest. No reward, but freedom from the persistent nagging reminder of a quest incomplete that comes with journal persistency. Could be up to the builder to decide if the questgiver would re-offer the quest- they might even decide questgiver X would think highly of an adventurer who knew when to turn back from a dubious job gone sour.
For Raid quests especially though- we have the question of what happens to the triumphant bounty-creature (we'll use the catchy "Doomboar" as an example). So sure, you didn't like the looks of his bloodied tusks (or the bones of ten and forty men strewn about his lair) and fled the scene before Doombear caught your scent. What happens for the next PC who tries to do the quest? Will they end up facing Doomboar and Friend(s)?
I know these quests stretch IC believability in the best of cases, but for logistical reasons we should devise some sort of handling for aborted/failed raid quests.
-Timed Despawn via DelayCommand()? Not sure what amount of time from quest triggering is an appropriate window- could test to see if the quest trigger PC is still in the area after 5 minutes, if so, give it another 5 min, etc- we just really don't want to end up with a situation where the party finally fights their way through the Triad defenders only to find out the third and final boss has despawned because they took too long RPing through binding their wounds and such in the dungeon.
-Death of triggering PC? Could put a pointer on the PC to the mob at time of spawning, and dereference it to start a 5-min despawn timer on the mob, though this can be a bit OOC as well, if friends go in to try to recover the body- Doomboar is there defending his kill for a while, but then wanders off?
-Quest reported as failed? If we do set that pointer on the triggering PC, we could use it to clear the spawn if/when they return to apologise to the questgiver- though if there was a party doing the quest, they're likely not going to know who triggered the spawn, ideally anyone who was there when it spawned should be able to report failure and get it to despawn- but adding pointers for each and every party member with the quest active seems excessive.
-Quest trigger controls? We could add a ACR_QUEST_SPAWNED integer for TRUE/FALSE on the trigger, updated to synchronize with the spawn state, such that a new mob will never spawn if a prior one is already there- this would have to update pointers so whatever doomboar is there will "work" for the most recent party. I can see some potential for this getting tangled as well, though. Despawn or spawn death would set it back to FALSE, naturally.
Other ideas?