Aller au contenu

Photo

The Black Scourge of Candle Cove -- Tchos' development diary


  • Veuillez vous connecter pour répondre
1056 réponses à ce sujet

#1026
Guest_Iveforgotmypassword_*

Guest_Iveforgotmypassword_*
  • Guests
Hobgoblin > Fursty Ferret !

#1027
PJ156

PJ156
  • Members
  • 2 982 messages

Not when you live in Dorset, that's northern beer that is.

 

PJ



#1028
Tchos

Tchos
  • Members
  • 5 042 messages

Also keep items in mind!  If I have a quest that involves an inventory item in some way (could be anything from a FedEx quest to a quest that involves activating a device somewhere), I like to store any variables that I know will be temporary on the quest item.  It'll persist across modules, and I don't have to worry about variable clutter since I destroy it when the quest is done, so it leaves no orphan variables cluttering up the PC object.



#1029
PJ156

PJ156
  • Members
  • 2 982 messages

How do you do that, does the ga_local_int allow the tag to be an object. I have always put it on a creature but, as I type, I am guessing it does not matter?

 

PJ



#1030
Tchos

Tchos
  • Members
  • 5 042 messages

Right, you can put local variables on creatures, placeables, inventory items, or even more abstract things like the area, the module, or a persistent area of effect, and it would work the same way.  Get the object by its tag or the other usual ways and check the local variable's value.



#1031
Guest_Iveforgotmypassword_*

Guest_Iveforgotmypassword_*
  • Guests

Not when you live in Dorset, that's northern beer that is.
 
PJ


You've nearly put me off it now !

Back on topic.. Don't forget the global ints that go across any modules and can go on anything, so long as you keep track on them and use different tags you'll never have a problem.

#1032
Tchos

Tchos
  • Members
  • 5 042 messages

I mourn the loss of the Vault.  The content may not be gone, but it will be some time before it's all available to download again, and in the meantime it's hard to make specific requests for things that I don't necessarily know exist.  For instance, the script collection and area prefabs.  If I had continued my archival efforts beyond the time of last year when the signs were bad, I probably could have saved it all by now.

 

At any rate, after it became impossible to save more, I continued my work in the dialogue for my module.  Each of the seven companions have their own interjections to make, both triggered and within conversations with other NPCs.  I think it's best to focus on one companion at a time, so I can maintain a consistent voice for each of them.  The thief's interjections are done, as is her personal dialogue that you get when you speak to her.  The last part for her is to add her personal interjections to the NPC dialogues.  Then it's on to the next companion.

 

Kaldor's sample companion dialogue includes a nice idea.  When you tell a companion you want him to leave the party, it first checks a variable on the area to see if you've designated the area as an allowed place to remove a companion.  If not, the companion refuses to leave, because under this system when you tell a companion to leave the party, he'll just stand in that spot until spoken to again.  Of course, even if you remove a companion that way, you can always bring them back magically using the party editor or the party registry books at the tavern or inn, and if you have the ability to bring up the party editor through a menu tweak or through the console, you can manually remove them that way, but it helps to prevent leaving a companion in a dungeon or in a place that may later be inaccessible to you, even if there are failsafes in those events.  I could, of course, make them go wait at a hangout, but I decided not to in this module.

 

Still working on the thief's interjections.  It provides some opportunity for banter between party members, if you happen to have the right companions in your party at the time, which is nice.  These companions have specific personalities, so they have certain special dialogue options, and also don't have certain options that player-created characters have.

 

Since these are SoZ dialogues, you can always switch to whichever party member has the thing you want to say most, and choose one of the responses written especially for those characters to say.  This is designed to have an effect on the gameplay, and of course you'll never be able to experience all paths through the conversations in a single playthrough unless you fastidiously reload after every conversation choice.

 

Also, if you choose certain dialogue options while controlling a companion which were written specifically for them, it may cause another party member to respond to that statement or question during the dialogue, if they're in the group.  Party members have varying likes and dislikes of each other which come out in this way, though again it depends on which companions you take, and which of them you elect to be the party speaker during a dialogue.

 

One of things I love most about SoZ conversations, aside from the interaction possibilities they open up, is that the main PC is no longer forced to be a specific class with specific skills in order to power through the occasional skill check that comes up in conversations.  I believe conversational skill checks are poorly and seldom used in most games for that reason.

 

With my SoZ conversations, in addition to the special dialogue options you can choose which are written for the companions, the large number of conditional checks narrows down which characters can say certain options, giving each of them more distinct personalities (this is done purely for personality in some instances) and utility.  When it comes to solving problems conversationally, the player must choose an approach with a particular character's skills, though there may be consequences for trying one approach over another, and you may not get a second chance.  This adds to replayability, and is infinitely better than having a party of skilled characters who stand around uselessly as the main PC fumbles with skills the rest of the party has.

 

I also decided to make a tiny tweak to the NPC sitting script that I hadn't touched for a very long time.  While playtesting, I noticed again that even when an NPC is sitting in a particular chair, the chair is still clickable, which is distracting both because you may highlight the chair instead of the NPC you want to click on, and you may try to sit in an occupied chair.  So I added a line that makes the chair unusable when an NPC sits in it.  Fine.  I loaded up the game, and everyone was suddenly sitting backward.  Possibly I had made a change a long time ago and never compiled it, so it kept working fine until I made this change and compiled it.

 

I noticed that everyone was sitting backward in the human-sized tavern, but not in the dwarf-sized tavern.  I also observed that if I directed my PC to sit in a chair, he faced the correct way, so I compared the two scripts (the npc sitting script, and the On Used sitting script).

 

The scripts used slightly different approaches, and were both originally scripts that came from the Vault, with some minor edits.  The On Used scripts used one method to get the facing direction, and directly applied it to the sitting PC.  The NPC sitting script instead directed the NPC to "use" the chair, which should fire the previous script.  I changed the latter to use the former's method, and so now the NPC sitting script simply jumps the NPC to the chair, sets the NPC's facing to match the chair, and plays the "seated" animation.  No need for the NPC to actually use the chair.

 

One thing does concern me, and that's the number of days spent primarily on this one companion.



#1033
Eguintir Eligard

Eguintir Eligard
  • Members
  • 1 832 messages

 

I  also decided to make a tiny tweak to the NPC sitting script that I hadn't touched for a very long time.  While playtesting, I noticed again that even when an NPC is sitting in a particular chair, the chair is still clickable, which is distracting both because you may highlight the chair instead of the NPC you want to click on, and you may try to sit in an occupied chair.  So I added a line that makes the chair unusable when an NPC sits in it.  Fine.  I loaded up the game, and everyone was suddenly sitting backward.  Possibly I had made a change a long time ago and never compiled it, so it kept working fine until I made this change and compiled it

 

Don't make the chairs objects at all. I handled this years ago in Islander. The chairs become environment objects, the npcs loop the sitting animation, and are set to unbumpable. Their on conversation script is set to keep them facing the direction you want.

In toolset you'll want to place them just as their butt touches the back of the chair or theyll appear to be sitting on the edge of their seat which is a problem ive seen in many a module.



#1034
Tchos

Tchos
  • Members
  • 5 042 messages

Thanks for the suggestions, but it's already final, and works as it is (they are, of course, looping a range of sitting animations, and are unbumpable and do not rotate to face the speaker).  This way, they remain as objects that can be referred to by script or interacted with if I choose to have the NPCs stand up and leave, which does already happen in at least one case.



#1035
Dann-J

Dann-J
  • Members
  • 3 161 messages

I've got usable chairs, stools, couches and benches in the module I'm currently working on, which players can sit on as well as NPCs. For chairs or stools I scale them up or down slightly in the Z axis depending on the users race. For couches or benches, I place usable cushions on them that do the scaling. That way anyone can sit on them and not hover in the air, or fall through the seat. Although ironically, the cushions are flatter when halflings sit on them than they are for half-orcs.

 

Making the chair usable, and putting all the sitting scripts on it, makes it much easier to have NPCs sit down. You just command them to go and use the chair. An ipoint checks to see if the chair is already occupied, or the NPC is otherwise engaged, and if both are available it will sometimes send a random NPC to go and use it (continuing to check every heartbeat in case the player beats them to it, until they're safely seated). When I want them to stand up again, I just reactivate their waypoint walking and they wander off of their own volition. The chair's HB script keeps track of how far away a character is from it and removes any of the 'handy VFX'  if they get up and leave, also clearing the local object from the chair and making it available for others to use.

 

I also have seated characters automatically play certain animations. If you sit down in the library, a book appears in your hands and you start reading. Sitting in a tavern puts a tankard, cup or wine bottle in your hand, and you randomly play eating or drinking animations (regenerating 1 HP per round). For outside benches you simply sit still and enjoy the scenery.



#1036
Tchos

Tchos
  • Members
  • 5 042 messages

My chairs also resize themselves based on the size of the PC or NPC using them.  Until I made this latest change, I was also using the method that the NPCs use the chairs in the same way that the PCs do when you click on the chairs -- it fired the On Used script.  That worked fine until recently, and since I don't have the additional features you mention, it doesn't seem much loss not to do it that way now.

 

I do have special sets of animation that each NPC selects from during their heartbeats, which I choose on a per-NPC basis depending on where they're sitting and what they should be doing (such as whether they're at a bar or table, whether they have a plate of food in front of them or not, whether they're alone or if others are seated nearby...)

 

I like all of those other features.  The prop placement and automatic animations based on location, the HP regeneration, etc.  Very nice.  Maybe something to add later!



#1037
Dann-J

Dann-J
  • Members
  • 3 161 messages

At the moment the only practical use for sitting down I've got is for regenerating while eating or drinking. It'd be great if it was easy to restore low-level arcane spells you might have cast by sitting and reading for a while, but unfortunately there are only functions to deprecate spell usage. I suppose sitting on a park bench for long enough could be the equivalent of a Lesser Restoration spell though. :)



#1038
Tchos

Tchos
  • Members
  • 5 042 messages

There are a lot of things I do when I play that don't have practical use, and I've watched others spend 20 minutes just seeing what all of the emotes do, so I think the regeneration is enough.



#1039
Eguintir Eligard

Eguintir Eligard
  • Members
  • 1 832 messages

I saw a module with chairs I could sit on. I never saw the point. NPC sitting however, is quite alarming when absent entirely.



#1040
Tchos

Tchos
  • Members
  • 5 042 messages

It's for RP purposes.  Same with the emotes.



#1041
kamal_

kamal_
  • Members
  • 5 240 messages
Wizards Apprentice has potions of relearning spells. Maybe something in it's scripting would be useful.

#1042
Dann-J

Dann-J
  • Members
  • 3 161 messages

It's easy enough to relearn all spells via a ForceRest(). I've even got a complex bit of scripting that restores 'lost' spells in charisma-based casters due to unequipping and re-requipping a nymph cloak (in order to mount a horse). That script uses ForceRest() followed by a loop that decrements spells back to a stored state. However ForceRest() also heals you and restores all per-day feats and item properties, which would be a bit much for just sitting down and reading for a while. I'd only consider having it restore cantrips at the most, if that were possible.



#1043
Eguintir Eligard

Eguintir Eligard
  • Members
  • 1 832 messages

Wizard's apprentince's approach to relearning spells was very simple.

 

Record current hitpoints, then force Rest.

On rest end, damage the player back to the hitpoints they had before resting.

 

It would not restore spells in any intuitive "Graded" fashion. All or nothing.



#1044
Guest_Iveforgotmypassword_*

Guest_Iveforgotmypassword_*
  • Guests

I'm playing assassin's creed at the moment and you could use seating areas for listening ( overhear a treasure location), pickpocketing or hiding/ blending in with the crowd when you've done something wrong like they do in that.



#1045
Tchos

Tchos
  • Members
  • 5 042 messages

Eavesdropping on a conversation is indeed a good quest objective.  Don't know about blending in with a crowd, though, since I've never seen even a fraction of the number of NPCs they have walking around town in Assassin's Creed show up in NWN2.



#1046
Eguintir Eligard

Eguintir Eligard
  • Members
  • 1 832 messages
Thats by design. Kama and I have placed massive crowds in an area, for me 50 plus.

#1047
ColorsFade

ColorsFade
  • Members
  • 1 267 messages

You could always have one of those Kirk/Spock conversations with an NPC... 

 

"Please.... sit down!"

 

Something else that would be creative: Sitting in a chair opens a secret door (that you could not otherwise open) leading to a dungeon or some such. It's a bit "Temple of Doom".

 

You could also use it for a big meeting. Sitting down at a table to discuss important events. Sitting in the chair could initiate a cut-scene. That would be fun. 

 

I can see a lot of uses for this. I might have to investigate some sittable chairs myself. 



#1048
Dann-J

Dann-J
  • Members
  • 3 161 messages

The secret door could only remain open while someone is sitting in the chair. That would mean temporarily sacrificing a companion who would have to remain behind to ensure the door stays open.

 

Another use for sitting could be to trigger a custom GUI for a minigame.



#1049
Lugaid of the Red Stripes

Lugaid of the Red Stripes
  • Members
  • 955 messages

Sitting, especially in a crowded room or along a busy thoroughfare like Tsongo was thinking, would be great for triggering ambient NPC actions.  If the player is just running through the area, you don't want to side track them, but if they decide to sit down for a pint at a street stall, then you can have your NPCs act out something interesting while the player is settled and paying attention.

 

It could be something simple like overhearing chatter (barkstrings), or something more involved like street urchins pickpocketing passersby.  Even if it's just town guards stopping to inspect a wagon, or a mysterious figure ducking into a back alley, it might be enough to give the player some crucial insight about the town.

 

Maybe a random NPC approaches the PC with a request (instead of chatting up every NPC, the player just sits at the bar and the side quest comes to them, a once anonymous NPC gets a name so the PC can find them at the tavern later).

 

In short, sitting is the player's way of letting the game know that they're not doing anything in particular, and would like to see something interesting.  And a useable chair is the builder's way of letting the player know that something interesting is right there to be seen, if the player is willing to stop and sit for a moment.



#1050
Eguintir Eligard

Eguintir Eligard
  • Members
  • 1 832 messages

I think you all attatch too much importance to parking your duff. How is a player possibly supposed to know something like that would set off all of the above? Using it to open a secret door is one thing but you can't expect a player to instinctively sit on a chair in public and wait for a parade of activity to slowly march by. They have places to be!