The Black Scourge of Candle Cove -- Tchos' development diary
#1026
Guest_Iveforgotmypassword_*
Posté 28 juin 2014 - 10:06
Guest_Iveforgotmypassword_*
#1027
Posté 28 juin 2014 - 10:14
Not when you live in Dorset, that's northern beer that is.
PJ
#1028
Posté 28 juin 2014 - 10:19
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
Posté 28 juin 2014 - 10:51
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
Posté 28 juin 2014 - 11:03
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_*
Posté 29 juin 2014 - 01:49
Guest_Iveforgotmypassword_*
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
Posté 06 juillet 2014 - 08:32
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
Posté 06 juillet 2014 - 01:59
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
Posté 06 juillet 2014 - 02:11
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
Posté 08 juillet 2014 - 01:02
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
Posté 08 juillet 2014 - 10:02
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
Posté 09 juillet 2014 - 03:38
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
Posté 09 juillet 2014 - 10:45
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
Posté 09 juillet 2014 - 06:51
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
Posté 09 juillet 2014 - 07:06
It's for RP purposes. Same with the emotes.
#1041
Posté 09 juillet 2014 - 07:14
#1042
Posté 09 juillet 2014 - 11:17
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
Posté 10 juillet 2014 - 12:23
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_*
Posté 10 juillet 2014 - 07:33
Guest_Iveforgotmypassword_*
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
Posté 10 juillet 2014 - 11:05
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
Posté 10 juillet 2014 - 02:27
#1047
Posté 10 juillet 2014 - 06:16
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
Posté 11 juillet 2014 - 12:08
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
Posté 11 juillet 2014 - 01:26
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
Posté 11 juillet 2014 - 02:50
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!





Retour en haut




