tsm.alandfaraway.info
Online players
Online DMs
bg.alandfaraway.info
Online players
Online DMs
MsArri_BG DM
ms.alandfaraway.info
Online players
Online DMs
A quest turnin is the last part of a quest. It provides rewards for the completion of the quest and sets the quest to its finished state.
This is the most common kind of turnin, as it is usually the most convenient. We usually expect to pay characters at the end of quests, and a quest turnin from an NPC is a very convenient way to do so.
The conversation tree will be a lot like the quest hook. You need a PC option to mention that work has been done, and a conversation line down that tree.
On the player bringing up the topic of work, you're going to have a conditional-- it will be just like the other ones checking for quest progress, but this time, we want to have nState be the one we set at the end of the challenge. We're also going to want to have a new journal entry, just like the ones we set up for the others. Our action script, which will be on the NPC's response to the character indicating that the job is done, will be the special one, because now we need to give out gold and XP.
So instead of acr_quest_update, we're going to use acr_quest_reward. This script does a few things:
-- It gives nGold to any character being rewarded
-- It gives the amount of XP specified in the journal classification to the character being rewarded
-- It takes away any quest item that was managed through the ACR
-- It logs that the quest was completed and the amount of XP earned
-- It updates the player's journal to read as nState is one point higher (so if the last challenge put nState at 2, this will make nState into 3)
Additionally you'll want that last journal entry to be called the endpoint of its journal category
This doesn't actually drive anything mechanical-- using acr_quest_reward is what tells the ACR that the quest is done, so that experience and rewards can be given out and our logs can say that it's complete. What it does is determine where in the PC's journal this item will appear once this state is achieved. Namely, it will start to appear on the "Completed" tab instead of the "Quests" tab. It's usually a friendly gesture to keep that particular thing up to date; it's much easier for a player to forget the errata of a video game than it is for a character to forget how they'll be paying for their food and shelter later, after all.
It might also be necessary to check if a given character owns an item when turning in a quest. If the character was told to carry a message to someone, and then arrived without the message, we shouldn't pretend that everything is fine and reward them, right? But this is slightly more complex-- because what if the character killed someone with a message and stole it. They're not working for anyone here, so they'd probably have a hard time collecting payment. This means that we need to have a conversation line with two conditional scripts on it: one to look for the item and one to look for the quest.
acr_quest_progress should look familiar. It's the same conditional we're using above. We're adding a new script to this in similar pattern-- again, you'll want to click Add over the conditions and then type the script name into the script column and refresh. acr_cs_has_item takes two parameters, sTag, which is the item's tag, and sQuest, which is the quest that the item is for. You should leave sQuest blank if the item isn't dropped using the ACR Quest System, though, as it will only regard an item dropped by the quest system for the PC on the quest as valid if it's told to look for an item by the quest name.
Also notice that there's the "And" button to the left of the next line, once we've added a second one. We want it to be an "and" in this case, but if this quest could feasibly be completed by someone who found this item or by someone who was hired to work, then you could click that button and it would accept both.
The rest of the turnin follows as above in this case.
TODO: Describe how to turn in a quest on a trigger.
TODO: Describe how to turn in a quest on a placeable
One thing to note about the state of a quest after you've gotten this far-- that combination of sQuest and nState doesn't go away. Once this quest is completed, you can reference that nState anywhere you need to. Does a merchant have a special store available because a PC has completed a long and complex quest arc? You can do that-- make two merchants, and two branches of conversation available. Put NPC responses under conditionals, just like you did in the Hook section, but this time we want nState to be or whatever the finished journal number is, instead of 0. Do you want a few quests to be done in order? Also doable-- just check for two conditionals:
In this example, this conversation option is only available of sample_quest_0 is nState of 3 (which is finished, if you've been following our especially-simplistic example) and sample_quest_1 isn't started. We could put the rest of our hook down this conversation line and thus have the two operate as a chain, and you could do it again with this quest once it's done (and so on).
Once you're done, don't forget that there's an XP field in the quest journal. You'll want to run your quest yourself to see how long it takes and how much it should reward. At the time of this writing, the standard was to award 25 xp per CR, assuming that the static takes about an hour-- but use your good judgment. If it feels like it's rewarding too much like that, it's usually safer to reward low than high: a quest that rewards too low doesn't get done as often as we like, but a quest that rewards too high disrupts play for the server. Once you have a value, it goes into the journal category, where you should have put a low number as a placeholder during your hook writing.
Powered by Drupal & phpBB3