tsm.alandfaraway.info
Online players
Online DMs
bg.alandfaraway.info
Online players
Online DMs
MsArri_BG DM
ms.alandfaraway.info
Online players
Online DMs
The Hook to the quest is usually primarily the human-readable portion-- you will need to write something that players will read, either a bit of exposition, a description of some sort of object, or a conversation to be run through.
The conversation quest hook is by far the most common sort of hook. Generally speaking, static quests take the form of performing some task for someone else, and the players need to ask that person for work to be given an assignment, and return to that person to be paid. Conversation tutorials are best handled elsewhere. Here, we're most interested in two parts of the conversation: the conditional to see if it's the right time to start the quest and the action.
First, find the conversation nodes for the NPC's response to the PC asking for work and add two responses, one for explaining the task and one for shrugging off the request. In response to the NPC describing the quest, we generally give the PC the option to accept or decline the task, and then have some agreement from the NPC.
Once you have that, select the description (in the example above, that would be "OK, do this thing?") and look near the bottom of the screen, where the tabs are (3) and select Conditions. There, you can add a condition.
In the added condition, specify acr_quest_progress (1), and then click refresh.
Once this is done, places to specify sQuest and nState appear. sQuest is something you pick-- it needs to be unique per module, but other than that it can be anything you want. This is the quest's "name" for other purposes that we'll be talking about, so either write it down or be ready to come back to this conversation to verify what the quest's name is.
In the nState field, set it to 0. This is the state of a quest that hasn't been started yet.
With this in place, you've specified that the NPC will only speak the first line (describing the job) if the quest you've specified is in state 0 (that is, not started). You can add more lines if you'd like more conditions for this, but it's best to keep your first one simple.
Next, you'll want to select the PC's conversation option to accept the quest, (In the example above, "Yes, I would love to do that thing!") and find the Actions tab in the lower portion of the conversation.
Here you'll specify the script as acr_quest_update, and then refresh. You'll get three parameters this time: sQuest, nState, and bAllPartyMembers.
sQuest needs to be the same quest name that you'll be using repeatedly. nState is arbitrary-- it needs to be a number, it can't be zero, and you'll want to remember it (because we're going to use it to set up the journal too). bAllPartyMembers determines if everyone in the speaker's party gets the quest; 0 means no, 1 means yes.
Finally, open your module's journal (view > journal > module). Find the Add Category button near the top and set the journal entry's tag to be the quest's name. Then set its name to be something human-friendly. This will be the name that appears in the quest's header inside of the player's journal. You can also specify a quantity of XP here, though it's usually best to set it to something fake and low until you've tested your quest, and know how long it takes and how hard it is.
Finally, select the category you've created and find the Add Entry button near the top of the journal. This will make a tree node under the category. Select it, give it the same ID that you set nState to with acr_quest_update (above) and type a description of the quest (as understood from the in-character perspective) into the description field.
And thus you've written enough to get the quest started. Test it out-- start up your build module, log in, and talk to this NPC. See if you get a journal entry about your quest. Then talk to the NPC again and ask for work. Make sure that you don't get offered the same job again. If it works, success! Move on you building your challenge.
Some quests, which follow a very similar pattern to this, you'll want the character to carry and item to the destination. While there are many ways to do this, the one that is the most effective for the model is acr_quest_escort. This has two strong advantages over generic item creation scripts:
1. It will flag the item it makes as part of the quest the player is on
2. It will initiate the quest, assuming that nState is 1 when the quest starts.
To do this, you'll want to set up your checks like you did before to prevent people from restarting the quest (so make sure that the quest's nState is 0), and you'll need a journal entry the same as above so your players can keep track of the quest.
The parameters, however, will only be sQuest and sTemplate. sQuest will contain the quest name, which you'll need to keep track of and re-use throughought the building process. sTemplate is the blueprint resref of the item you're seeking to deliver. The quest will assume that it isn't applying to an entire party and it will assume that the quest started state is nState = 1, which you'll need to check for later.
TODO: explain how to put a hook on a trigger here
TODO: explain how to put a hook on a placeable here
Powered by Drupal & phpBB3