'making' statics for builders

For toolset tutorials as well as question and answers.
Locked
Dorn
Haste Bear
Posts: 2196
Joined: Sat Apr 17, 2004 5:00 pm
Location: Australia (West - GMT+8)

'making' statics for builders

Post by Dorn »

Hi all,

The linked thread spoke about a whole lot of statics that people thought were good.

http://www.alandfaraway.org/phpbbforum/ ... hp?t=40354

a) How can peopel who are not crash hot builders/scripters help get a library of these developed for DMs to include in servers.

b) Are there specific tutorials that might help with learning how to develop statics? Or is it all imbedded int eh lists you've put together in the NWN2 Brainstorming/toolsetting threads
playing Nathaniel Ward - Paladin of the Morninglord and devout of Torm (cookie cutter and proud of it)
User avatar
indio
Ancient Red Dragon
Posts: 2810
Joined: Sat Jan 03, 2004 10:40 am

Post by indio »

Best way to do this is to build the following and pass them along to a builder, all using the same toolset classification (ALFA|Quests|Dorn|Masked Thief):

- A naming convention for all submitted files (eg 003_questname_filetype)
- Conversation file for the Quest Giver NPC called 003_questname_convo
- The NPC file with convo attached (003_questname_NPCname
- The items required for the quest, if required (003_questname_kerchief)
- The monster files if it's a combat quest (003_questname_mobname)
- The journal entries required in .txt format

The builder can add the relevant scripts to convos, add the triggers, update the journal and the waypoint to spawn the Quest Giver.

But there could very easily be other ways.
Image
User avatar
Brokenbone
Chosen of Forumamus, God of Forums
Posts: 5771
Joined: Mon May 16, 2005 1:07 am
Location: London, Ontario, Canada

Post by Brokenbone »

If some kind of clear templates for the "simplest" sorts of statics were put on an FTP someplace, would that help? Let people "copy paste" the whole collection, rename them according to the scheme above, and just fill in their own stuff?

Example, if there's some "supplier NPC" who gives you a "package", to go to "buyer NPC" (basic fedex), there's a lot of ways to edit that to taste, and no two builders are likely to come up with the same convo / personalities for what's involved. New blood = new styles & ideas.

I guess if someone was going to write some statics out of the blue, they might want to chat with the team of where they want to donate, just to make sure they're not going to create something vastly off the mark, i.e., that they spend their time on something that stands a chance of getting adopted. If a volunteer is really into an "underworld flavored" static, but the DM team knows darn well they wanted a thieves' guild operating in a certain region who takes a heavy hand to freelancers, that might be suggested to be steered away from. Or if an NPC is asking for the head of a particular Knight in Silver, maybe a DM team will think "let's not have a static that will have hundreds of guard NPCs launch a manhunt", that sort of guidance is all I'm talking about. Same with the "Groundhog Day" effect that AcadiusLost mentioned the other day, i.e., doing something really remarkable and unique... but it happens every day, to every adventurer who speaks with an NPC. Prime example of "really interesting, but Groundhog Day" type static would be the Embergreen Farm static in NWN1 Shadowdale. Every day, people can go discover a farmhouse, on fire, with a bunch of peasant corpses everyplace. It was sitting there, a couple of screens offroad, on fire, for a couple of RL years. Would've been nice as a one-shot adventure, but ridiculous for every level 1 PC for those couple of years to say "oh my, farmers are dead!" and other PCs who discovered that months before to join in the "oh my" chorus. Terrible.

Anyhow, back to method...If such templates get made available, at least to the extent there are scripts, maybe those scripts should be HEAVILY COMMENTED, as that could be helpful for volunteer builders. Possibly helps the integrators as well, less "fixing" work to do in order to integrate something that gets offered. (some n-State discussion in the forums the other day blew my mind, we've obviously got some relatively complex methodologies in place for certain kinds of statics!)
ALFA NWN2 PCs: Rhaggot of the Bruised-Eye, and Bamshogbo
ALFA NWN1 PC: Jacobim Foxmantle
ALFA NWN1 Dead PC: Jon Shieldjack

DMA Staff
User avatar
darrenhfx
Beholder
Posts: 1982
Joined: Fri Jul 30, 2004 5:35 pm
Location: Halifax, Canada GMT -4 (AST)

Post by darrenhfx »

Design templates would be a great help to everyone I would think. Ok I can't add much more than what BB said, but thumbs up to this.

Nice use of a Groundhog Day ref. :)
MorbidKate
Dungeon Master
Posts: 1627
Joined: Thu Aug 12, 2004 10:45 pm
Location: GMT -5 (EST)

Post by MorbidKate »

I can't stress enough just how helpful this would be. As a player/builder I don't want to get involved at all in live content such as mobs but being able to help create statics would certainly be a big big help. Of course, the HDM would need to assign the rewards to be plugged in so there are no standards concerns but that's just a matter of teamwork and communication.

Kate
"We had gone in search of the American dream. It had been a lame f*ckaround. A waste of time. There was no point in looking back. F*ck no, not today thank you kindly. My heart was filled with joy. I felt like a monster reincarnation of Horatio Alger. A man on the move... and just sick enough to be totally confident." -- Raoul Duke.
User avatar
Wynna
Dungeon Master
Posts: 5734
Joined: Sat Jan 03, 2004 10:09 am
Location: Seattle, WA (PST)

Post by Wynna »

*Edit: Following the naming and creating conventions listed by Indio above would be perfect. Necessary items/creatures would need to come with the quest submission, too. We can lay the triggers, though, where necessary.

The following conversation tree template is annotated with instructions. With this template you may design either a Bounty Quest (go kill the critter) or a Scouting Quest (Go look in the Caves of Doom and return to tell the tale). In addition to a conversation tree, each designer would be required to submit intended journal entries. Updating a journal is a different matter than a conversation erf, however, so copy/pastable journal entries would be simpler, imo. If these are for NWN2 TSM, you may contact me about them with questions or when you are done. We reserve the right to nerf/tweak at will and offer profuse thanks for your understanding as much as your hard work in creating content. When you submit any quest dialog/item/critter set, if you could include in your post or email three journal entries to match your conversation tree, along the lines of:

1. You have been assigned a quest. Do it.
2. You have killed the critter/scouted the area. Return for your reward.
3. You have been rewarded for your deeds.

Caveat: The three quest scripts associated with this dialog may change as AL updates them to an ACR compatible form. If they do, I will ask each designer to replace the ones I have put in here with the ones AL creates.

http://download.alandfaraway.org/downlo ... ld_dlg.erf
Last edited by Wynna on Sun Aug 24, 2008 8:03 pm, edited 3 times in total.
Enjoy the game
User avatar
Wynna
Dungeon Master
Posts: 5734
Joined: Sat Jan 03, 2004 10:09 am
Location: Seattle, WA (PST)

Post by Wynna »

Reprinted with Curm's permission, a lesson on basic quest building. This is deconstructing a specific TSM quest and is not required to use the blank quest template linked above. The template should be plug and play. This offers a little more understanding for those who possess the module and so are already probably well-grounded in building and/or scripting.

[17:57] <Wynna> Open up the journal and the dialog for Anfaeris
[17:58] <Wynna> Duplicate the dialog and rename it Quest_Template
[17:58] <Curmudgeon> Opening the mod
[18:00] <Wynna> (Convo is called Fochlucan_Playwright)
[18:02] <Curmudgeon> Got the dialog open.
[18:02] <Wynna> Duped and renamed?
[18:03] <Curmudgeon> Is there a save as option?
[18:03] <Wynna> No
[18:05] <Curmudgeon> Did it in the Convo tab.
[18:05] <Wynna> There are four states in a basic quest: 0, 1, 2, 3. Each state corresponds to a dialog branch. 0=Greeting of PC who has never done quest and culminates in quest assignment; 1=Has the quest and has not completed it; 2=Has completed the quest but not been rewarded; 3=Has been rewarded and marked as "Case Closed".
[18:05] <Curmudgeon> Right-click, rename
[18:05] <Wynna> Right
[18:05] <Wynna> Look at the dialog and see the four main branches that equate to these states
[18:06] <Wynna> It does not matter which order they come in in the dialog, as we are going to put a conditional on each line to look for each individual state
[18:06] <Wynna> In this dialog they are in reverse order (3->0) They could be in 0->3 or jumbled up
[18:07] <Wynna> State 0 in the dialog begins with a greeting and proceeds through x number of responses before offering/taking the quest
[18:08] <Curmudgeon> Not sure where I should be seeing the state of the quest...
[18:08] <Wynna> You don't, here.
[18:09] <Wynna> The quest system monitors that based on the scripts we will assign to the right branches
[18:09] <Wynna> So, where the NPC confirms the PC's decision to take the quest, usually the last line of the State 0 Greeting branch, you will put into the action field:
[18:10] <Wynna> the script: quest_a_start
[18:10] <Curmudgeon> Okay. "I'll mark my room on this map..."?
[18:11] <Wynna> The arguments will be (sQuestName, nState, nAllParty, nAllowOverride, nXP)
[18:11] <Wynna> That is the correct line, yes
[18:11] <Wynna> sQuestName == foc_muse
[18:11] <Wynna> nState equal 1 because we will be setting the PC to 1 now
[18:12] <Wynna> All Party members is 0
[18:12] <Wynna> Allow Override is more complex, just keep it at 0 as a default for now
[18:12] <Wynna> nXP is usually 0 at this point unless you are awarding XP for just taking the quest
[18:12] <Curmudgeon> bear with me a minute.
[18:12] <Wynna> Did you follow that on the Actions tab for this line?
[18:12] <Wynna> OK
[18:13] <Curmudgeon> I don't see quest_a_start here...
[18:13] <Wynna> It is not in the dropdown list
[18:13] <Wynna> You must type it in yourself
[18:13] <Curmudgeon> Duh.
[18:15] <Wynna> Let me know when you're ready
[18:16] <Curmudgeon> The argument fields are not all visible to me.
[18:17] <Wynna> Hit refresh
[18:18] <Curmudgeon> The override field is blocked.
[18:18] <Curmudgeon> horizontal slider won't open to it.
[18:18] <Wynna> Oh, yes, irritating
[18:19] <Wynna> You can just grab it by hovering your mouse over the end of that bar
[18:19] <Wynna> And slide it /through/ the string ref box
[18:19] <Wynna> Then the bar extends
[18:19] <Wynna> And you can slide the bar cursor down the line
[18:19] <Curmudgeon> Thanks, that's got it.
[18:20] * Curmudgeon mutters about poor interface design
[18:20] <Wynna> OK, let me know when you're ready
[18:21] <Curmudgeon> sQuest (String) is the sQuestName?
[18:21] <Wynna> Yes
[18:21] <Wynna> Tag, really, I think
[18:21] <Wynna> But identifier
[18:21] <Curmudgeon> Done, then.
[18:21] <Wynna> OK. So.
[18:21] <Wynna> You have now updated your PC to state 1
[18:22] <Wynna> When they return to the quest giver, they will be taken to the state 1 dialog branch
[18:22] <Wynna> Because....
[18:22] <Wynna> we will put a conditional on all branches
[18:22] <Wynna> Look at the conditions column
[18:24] <Wynna> In the branch we just edited, state 0, in the very first line of it, the greeting, put this:
[18:24] <Wynna> In the conditions tab, hit add
[18:24] <Wynna> In the script box, type:
[18:24] <Wynna> acr_quest_progress
[18:24] <Wynna> And refresh
[18:25] <Wynna> sQuest = foc_muse_01
[18:25] <Wynna> nState defaults to 0
[18:25] <Wynna> That does it for that
[18:26] <Wynna> Now, nState 1 dialog's option reads:
[18:26] <Wynna> "How are you faring?"
[18:26] <Wynna> It knows to offer this line because we have the conditional set correctly on it
[18:27] <Wynna> Do you see that? It is looking for nState 1, which was assigned as the action on the end of the nState0 branch
[18:29] <Curmudgeon> I see the line, yes. And the test.
[18:29] <Wynna> OK
[18:29] <Wynna> So, until they advance a state, they will continue to get this line of dialog
[18:29] <Wynna> The advancement to nState 2 is not handled in the dialog
[18:29] <Wynna> It is handled in this case by the death of the critter
[18:30] <Wynna> The critter is spawned by a trigger that handles assigning the right variables to the critter
[18:30] <Wynna> For right now, let us skip that part and stick with the dialog
[18:30] * Curmudgeon nods
[18:30] <Wynna> Presume that the PC returns, having vanquished the critter
[18:30] <Wynna> He now has the nState 2 on him
[18:31] <Wynna> Can you see the dialog line for nState 2?
[18:31] <Curmudgeon> Do you have any news?
[18:31] <Wynna> Correct
[18:32] <Wynna> Fine. So, the PC gets the proper branch and informs the quest giver
[18:34] <Wynna> So, the quest giver responds happily. This is the last line of the branch and in this, the quest is marked as finished
[18:34] <Wynna> In the action tab:
[18:35] <Wynna> quest_a_finish(foc_muse_01, 20gp, PartyWide 0)
[18:35] <Wynna> This advances the PC one quest state over whatever they're at
[18:35] <Wynna> In this case, to nState 3
[[18:37] <Wynna> Thereafter, whenever this PC approaches the quest giver, the quest giver will only *waves
[18:37] <Curmudgeon> Okay.
[18:37] <Wynna> That's it for the dialog
[18:37] <Curmudgeon> No XP?
[18:37] <Wynna> The XP is set in the journal
[18:38] <Wynna> Have time for the journal?
[18:38] <Curmudgeon> Ah, I wondered about that.
[18:38] <Wynna> Should go faster, now that quest states are understood
[18:38] <Curmudgeon> Yes.
[18:38] <Wynna> Open your journal. Scroll way down until you find Fochlucan - Anfaeris's Muse
[18:39] <Curmudgeon> Got it.
[18:39] <Wynna> There you will see the journal entries that will be assigned at each of the stages
[18:39] <Wynna> The quest itself offers 50xp
[18:39] <Wynna> And is ticked as possessing an endpoint
[18:39] <Wynna> Entry 3 is ticked as being the endpoint
[18:40] <Curmudgeon> I see.
[18:40] <Wynna> Simple
[18:40] <Wynna> That's it
[18:40] <Wynna> Open up the fochlucan area
[18:41] <Curmudgeon> Prying it open
[18:41] <Wynna> Find the trigger foch_muse_01
[18:41] <Wynna> Properties/Variables
[18:42] <Curmudgeon> Around the potted plant it lies.
[18:42] <Curmudgeon> The ghost of a dead fern, no doubt.
[18:43] <Wynna> There you'll find variables for quest name, critters resref, spawn waypoint, lower state (1), upper state (2), appear animation (I've never used), spawn delay, message to send onenter, and custom delay
[18:43] <Wynna> The lower state = the lowest state at which the critter will spawn. IE, the PC needs to have taken the quest
[18:43] <Wynna> The higher state = the highest state at which the critter will spawn.
[18:45] <Wynna> The critter spawns, the PC beats on it and the death of the critter advances the PC to nState 2
[18:46] <Wynna> And that is the quest system in a nutshell
[18:46] <Wynna> You may have seen other scripts added to the branches, like ga_give_item or ga_destroy_item
[18:46] <Wynna> Those obviously handle Anfaeris' key
[18:47] <Wynna> You can put any of those scripts you want on, in addition to the barebones quest system
[18:50] <Wynna> Questions are best answered by going into toolset and turning this template dialog into an actual testable quest
Enjoy the game
User avatar
Demson
Retired
Posts: 396
Joined: Wed Apr 02, 2008 12:10 pm

Post by Demson »

Bump,

might want to post the template with a more clear title, Wynna. I had trouble finding this gem after I lost it in the depths of my harddrive.
PR efforteer, OAS2 DM, builder.
User avatar
Wynna
Dungeon Master
Posts: 5734
Joined: Sat Jan 03, 2004 10:09 am
Location: Seattle, WA (PST)

Post by Wynna »

http://download.alandfaraway.org/downlo ... ld_dlg.erf

Original link updated to reflect this new title.
Enjoy the game
Locked