Aller au contenu

Photo

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


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

#576
Tchos

Tchos
  • Members
  • 5 086 messages
The walkwaypoints worked partially. Not properly. He's not actually walking to stand where the waypoints are, and I tried moving them around and making sure they were well within the walkmeshes.

A search suggests to me that it might be because my script uses ActionPlayAnimation() (both looping and fire/forget) in some of its cases. A post from 3 months ago by kevL says that these should use PlayCustomAnimation() instead. The walkwaypoint template used ActionPlayAnimation(), but that apparently doesn't work as well in NWN2, and the template was originally written for NWN1.

Took a while to set up the smith's store with the items I wanted him to sell.

Also had to figure out how to change the "north" direction, because this prefab was oriented differently than the exterior. After getting a lot of strange results, and after not being able to do so at first, I found you can rotate the direction marker like any placeable, and from there I could see that what I actually wanted in the numerical field was a negative number, so it was (0, -1). (I had seen that it couldn't go above 1, but it didn't occur to me that it could go below 0.)

#577
PJ156

PJ156
  • Members
  • 2 988 messages

Tchos wrote...

Added the smith, and resisted the urge to name him Morrissey, or Bigmouth, or something like that.



I don't see why, My mod opens with three bandits called Marco Merric and Terry Lee Image IPB.

PJ

#578
Tchos

Tchos
  • Members
  • 5 086 messages
Were they wielding Adamantine weapons?

#579
Tchos

Tchos
  • Members
  • 5 086 messages
Turns out that the waypoint script took me the entire day to get working properly. Using PlayCustomAnimation() didn't seem to fix it, but I left it using that anyway. The problem is that the blacksmith kept stopping far short of the waypoints and performing his actions with nothing in front of him to perform them at. For example, in a standard room tile's space, where the waypoint was near a wall, he stopped at about the 75% mark. Looked ugly. I tried all kinds of things, such as different waypoint placements (setting them far past the intended stopping point, for instance, which sometimes worked), different walkmesh allowances, different delays in the script, etc.

The thing that ended up actually working was to add a ForceMoveToObject() command in several of the specific cases of the walkwaypoint script. Why that was necessary, I have no idea, because I would have expected that the standard walkwaypoint script would try to make the NPC move to the waypoint by itself, and not stop until it got there. But it works now. All in the name of making a blacksmith with a little personality.

Here's a place where I ask a general opinion. I used the Shirtless Saga for the blacksmith, because it's hot in there, and that's staying. I also used the shirtless human model I worked out earlier for the vendor, who has to stand near the forge to sell the goods. The question is, does he look too silly in the outfit I have him wearing? The cape was mainly to cover up a clipping problem with the battle harness he has on, but I'm not sure it helps. Also not sure if the harness is necessary, or if he would look better with no shirt at all. He looked terrible with any of the shirts available in the default toolset, because they were just too much to be wearing in that heat.

Another alternative is switching it with one of the sleeveless open shirts in the Always Summer collection. Totally shirtless may not be professional-enough attire.



In other news, I played through the entirety of Limbo in two sittings. Great puzzle/platforming game.

#580
Shaughn78

Shaughn78
  • Members
  • 637 messages
That smith is going to have some singed chest hair without an apron.

If you are using the placeable items you can have the smith move a weapon around. This is something I did, the smith had a bastard sword that he brought through the smithing process. If want I can get you a copy of the script to take apart and add into yours if you want.

http://risenheronwn2...g-of-sword.html

#581
Shaughn78

Shaughn78
  • Members
  • 637 messages

PJ156 wrote...

Tchos wrote...

Added the smith, and resisted the urge to name him Morrissey, or Bigmouth, or something like that.



I don't see why, My mod opens with three bandits called Marco Merric and Terry Lee Image IPB.

PJ


Have fun with the names, I have a group of armed children with the same names as the characters from the Children of the Corn.

#582
Tchos

Tchos
  • Members
  • 5 086 messages
That might explain why he's smooth-chested. He already singed it all off!

I am using the item placeables, but I only installed the ones that I was using in a different shop, and that was only bows and rapiers, so I didn't have anything on hand, but I placed the stock broken sword placeable on the anvil for him to hammer on. I had considered the whole routine of actually spawning and destroying objects for a better illusion (I have one comment in the code that I've decided not to do), but I decided the pantomime would be sufficient for this purpose. You seem to have accomplished what I briefly had in mind, though! I'll play it later, and see.

Okay, I see that joke names have fans. I'll keep that in mind. :)

#583
Dann-J

Dann-J
  • Members
  • 3 161 messages
Joke names are great. I remember meeting Larry and his brothers Darryl and Darryl in Baldur's Gate. They even gave me an autograph.

As for making NPCs go to specific places (rather than within cooee of a waypoint); one method is to make placeables usable and then command the NPC to use them via their HB script (aborting if they're in conversation or in transit). They'll always run to the placeable to use it, but they'll walk if you force them to by putting the 'zombie walk' property on an equipped hide. Each usable placeable can then run a script that checks who's using it, and if it's someone with a specific local variable (like your designated smith), the script can have them do a series of animations, play noises, and eventually send them on to another usable placeable (or set a variable that has their HB send them on). No walk waypoints required.

You can also allow the PC to use them too if you want. I have some usable street lamps in an upcoming module that can be turned on and off again by the player. However there's a 'lamp master' who runs around lighting them at night and turning them off during the day. If you meddle with the lamps at the wrong time, he gets annoyed and runs to fix them. Although you can also help him light or extinguish them at the appropriate times if you want.

#584
Tchos

Tchos
  • Members
  • 5 086 messages
I also have an autograph from Larry, Darryl, and Darryl. But my favourite joke name from BG is the aptly-named "Borinole Mann".

The method you suggest sounds like I could find some uses for it, but I'd want to restrict it to cases where the placeables have some use for the players as well, to prevent players from thinking that they might have to do something with those usable placeables, like in your lamp example. Wouldn't it also work to set their walk rate to "slow" in the NPC's properties?

"Use the Neverwinter Nights 2 toolset to create your own adventures for friends to enjoy."

When I play NWN2, I see that loading tip often, and sometimes it makes me think. I like how that sounds. I like to think that I'm making a module for friends to enjoy. That each person who downloads and plays it is a potential new friend, and that the experience of this module is like a gift for them. I think I would be happy to know that they got some smiles out of it.

I got a little distracted by some spell experiments, and there was also the P&P day in there, but look! Here's me working on the module.

Due to some non-forum feedback about the vendor's outfit that made it clear that he was giving off the wrong impression, I ended up changing it to a simpler one, which is from Always Summer. It's a sleeveless, wide-necked open shirt. I repainted several parts of the texture maps, though, to eliminate some jagged edges and improve the folds of the cloth. I also changed the pants to short pants, though you can't see them here. That takes care of everything at the smithy.

Image IPB

#585
Dann-J

Dann-J
  • Members
  • 3 161 messages

Tchos wrote...
The method you suggest sounds like I could find some uses for it, but I'd want to restrict it to cases where the placeables have some use for the players as well, to prevent players from thinking that they might have to do something with those usable placeables, like in your lamp example. Wouldn't it also work to set their walk rate to "slow" in the NPC's properties?


That would cause them to run slowly - great if you're recreating the Six Million Dollar Man or the opening scenes of Baywatch, but otherwise somewhat comical. It's one of the annoying things about the method, since sending an NPC off to activate a usable placeable gives you no 'walk' option. They're always eager to get there quickly. Permanently zombie-walking NPCs are fine if they never leave their work area and have no chance of being in combat, but the alternative is to spawn and destroy the hide only when necessary.

I'm also using the method for sittable stools in a marquee outside the Gullykin brewery. Players can sit and eat/drink if there's a spare stool (regenerating 1 HP per round until they're fully healed), but an ipoint also randomly assigns one of the resident halflings to go and have a drink every now and then. The halflings run for the chance of a drink (which involves 'using' the stool placeable), but walk slowly back to their home waypoints afterward once I restore their walk waypoint settings.

Even the lamp master goes for a drink now and then, although if he gets caught there at sunrise or sunset his street lamp duties have him rushing off unexpectedly.

#586
Tchos

Tchos
  • Members
  • 5 086 messages
Well, I don't plan to craft a Six Million Gold Piece Genasi machinima any time soon, so I'll try the zombie skin method if I decide to do the NPCs using placeables. I think I actually do have some NPCs using placeables already, but they do it in an on enter script, so I never see them rushing around, if that's what they're doing.

Today got off to a better start than other times because I left the next item of business open for me to see, so I didn't have to think about what to work on next.

It took a very long time to get some information I needed, because it was in the crash-prone dock area. I needed the names of the sets of waypoints I have in there, and I hadn't copied the names to my big list of waypoints for later reference. After many attempts at opening it, I rebooted the system, and it opened, and I got the information I needed. Incredible bother.

I added the scripts I needed for the sets, and introduced some random pauses and an occasional random choice into the mix, to try to keep things from looking too uniform. There are four sets of waypoints, plus some purely random wandering, so it should be okay.

Next I fixed up the selections at a couple of the shops. In the future, I'm going to use scripts to spawn the store elements at the beginning of the module instead of placing them directly, so that I don't have to open up the areas to make changes, and avoid crashes.

Next order of business was the League of Merchants headquarters. I made this from a heavily modified and cut down copy of the merchant company headquarters from SoZ. I left the lounge largely unchanged except for some minor rearrangement and the addition of a side entrance, but the rest of it is pretty much a different place.

Image IPB

I still need to populate it, aside from the officer who starts outside, then goes inside for the rest of the game. This place could have the opportunity for some thievery, but to make it worth it, there should be the possibility of negative consequences for attempting it. Considering this place's importance for the main quest, I'm not sure I should encourage that.

Eh, all right. I added something, and imported a new placeable to do it. Can't say what it is, of course, because it's a hidden extra, and it relies on class skills. If I use this kind of trigger again, I'll modify the scripts it comes with to add a visual effect and/or sound when something is found, because for a smaller item, it could be easy to miss it spawning in.

And as it turns out, I found a use for that unused ledger model I found in the data files earlier.

Image IPB

Had to make a special script for the League Officer, because when I respawn him inside the building, there's no way to delay a command from the conversation to give him time to fully spawn before changing his quest marker.

There's one problem in this place, and that's a particular door that appears heavily shadowed until it's opened, and then it's fine after that. I don't know what's causing that, but I've tried both moving the light and replacing the door, and neither helped.

Image IPB

#587
Tchos

Tchos
  • Members
  • 5 086 messages
I wrote up a long selection of barks for the guildies to use in chatting with each other in the lounge, for atmosphere, with occasional voice chats, random pauses, and the structure for custom animations, though I just used the built-in ambient system for that. It's very much an old rich white men's club, where they gather to brag and gossip as they sip cocktails, smoke cigars, and complain about having too many servants.

Image IPB

(Note: cigars are not actually included.)

#588
PJ156

PJ156
  • Members
  • 2 988 messages
Is that a heartbeat script ?

I find these sort of things great for ambience and perhaps a little humour but if there is a conversation in the area they are a bugger for following back though it as they clutter up the chat box.

PJ

Modifié par PJ156, 15 novembre 2012 - 10:57 .


#589
Alupinu

Alupinu
  • Members
  • 528 messages

Tchos typed…
There's one problem in this place, and that's a particular door that appears heavily shadowed until it's opened, and then it's fine after that. I don't know what's causing that, but I've tried both moving the light and replacing the door, and neither helped.

Ive had the same problem, very annoying – yes! Not sure what causes it. The only things that kind of seem to work is:
A)     Pull the door it out of its frame just a little bit.
B)      Paint a very dim light point next to the door.
Very nice screen shots, this mod is shaping up to be quite the good looking mod. Really looking forward to playing it.

#590
Tchos

Tchos
  • Members
  • 5 086 messages
PJ: It is a heartbeat script, and I have it set to change the duration of the heartbeat to between 8 and 20 seconds rather than 6, though I may increase the number. There is a conversation in another room here, and I think it is within earshot to make the text appear in the chat log, so based on what you say, I'll add a little check in the heartbeat to abort if the player is currently in conversation. That way, they won't be interjecting within the conversation.

Alupinu: I'll try out those suggestions with the door. Thanks!

#591
Alupinu

Alupinu
  • Members
  • 528 messages

Tchos wrote...

PJ: It is a heartbeat script, and I have it set to change the duration of the heartbeat to between 8 and 20 seconds rather than 6, though I may increase the number. There is a conversation in another room here, and I think it is within earshot to make the text appear in the chat log, so based on what you say, I'll add a little check in the heartbeat to abort if the player is currently in conversation. That way, they won't be interjecting within the conversation.


How do you change the heart beat!? I had no idea that you could change the 6-sec heart beat.

Modifié par Alupinu, 16 novembre 2012 - 04:06 .


#592
Shaughn78

Shaughn78
  • Members
  • 637 messages
SetCustomHeartbeat(object,milliseconds);

SOZ and then WPM used these on the OLM hidden sports the HB would check if you found the area. A 6 second check wouldn't be often enough so they used like a 350 millisecond checks. Too many of these can destroy the game's performance . I found this out when I tried to make acid blob hang out on the ceiling. I had a few too many and the script likely needed to be streamlined.

These scripts when used in moderation (quicker heartbeats, slower heartbeats shouldn't mater) can add a lot of neat things. I recently used them to make a floating crystal randomly shoot lightening at four surrounding crystal pillars every 1/2 second. picture

Modifié par Shaughn78, 16 novembre 2012 - 06:45 .


#593
Lugaid of the Red Stripes

Lugaid of the Red Stripes
  • Members
  • 955 messages
I just use a series of delay commands within the normal heartbeat, it helps you be a bit more judicious when to actually use the quicker heartbeats and limits what gets repeated with every heartbeat. The most important thing about heartbeats, after all, is shutting them down when not needed. The standard heartbeats do a good job of that, but pseudo-heartbeats, and I assume this SoZ function as well, don't.

#594
Tchos

Tchos
  • Members
  • 5 086 messages
For mine, I included the code that only runs them when the player is nearby, as well as passing execution on to the default.

I used random intervals so that they're not all speaking at the same time.

While these heartbeats are up to 4x slower than default, I used quicker heartbeats for the scripts that run the staged events, to avoid long pauses between finishing one action and beginning the next, then restored the default heartbeat when they were finished.

#595
Tchos

Tchos
  • Members
  • 5 086 messages
Today I didn't do anything except texture this safe.

Image IPB

#596
Dann-J

Dann-J
  • Members
  • 3 161 messages

Tchos wrote...

For mine, I included the code that only runs them when the player is nearby, as well as passing execution on to the default.

I used random intervals so that they're not all speaking at the same time.

While these heartbeats are up to 4x slower than default, I used quicker heartbeats for the scripts that run the staged events, to avoid long pauses between finishing one action and beginning the next, then restored the default heartbeat when they were finished.


One method I use to randomise eye-candy heartbeat events is to generate a random number. I usually use d4(1) and only run the eye-candy event for a specific number, so there's only ever a 1-in-4 chance of it happening. That way they don't occur with too much regularity. A random delay also helps prevent multiple events from occuring simultaneously, in the unlikely event that two or more creatures roll the same 1d4 number at the same time.

#597
Tchos

Tchos
  • Members
  • 5 086 messages
There's a lot going on at home. My very living situation is uncertain, for lack of employment. For various reasons, I haven't done much on this project since last report.

Nevertheless, in almost any situation there is downtime, and I have gotten some things done.

I designed and built the boat rental office, and finalised the design of the harbourmaster. As a placeholder, I had the OC NPC Daeghun Farlong playing his role, but I would never have used such an ugly model as a final product. I decided that this town needed a little more representation of the other races in the setting. Despite my efforts at making it more cosmopolitan, it's still a human-dominated town, with largely human architecture, with a sizable elf population, and a fair number of dwarves, halflings, and gnomes. Just a handful of tieflings. I decided to make him a friendly water genasi.

I couldn't actually find any genasi blueprints in the toolset, so I applied the proper appearance and special effect to another race.

Image IPB

I had some preliminary playtesting, thanks to my brother. Don't worry, those of you on the list for formal playtesting -- you're still on the list. This required my direction to test out specific things. The experience was enlightening. I see that for my estimate of play length for the module, I'll have to add perhaps 3x or 4x to the amount of time I take running through an area, for familiarity reasons.

I watched how he navigated through the conversations, and how he interacted with the quest items, and how well he managed the fights, and it looks like it's working as intended. He had no full party wipes except once on a mini-boss, and the second try was successful.

He found a couple of bugs for me to fix, and one of them was the trapdoor. I'm using the trapdoor placeable from Amraphael's placeables pack, which includes a script to open and close it like a door, even though it's a placeable. However, the script doesn't seem to take into account whether the object is locked or not, which it needed to be in this case.

Well, since my previous door script was designed to eliminate the animation of the door opening, and just move the player on the first click, I preferred this trapdoor not to animate opening either. So I wrote a new script to replace the one that it came with, and had it check the placeable's locked state, read the tag of the required key from the normal "Key Name" field, and check the party for that item. It checks the whole party, unlike a normal door, so it's not necessary to open the door with the party member that holds the key. It also uses the standard "Key required feedback message" field for the text to display if the party doesn't have the key, with a default of "Key required" if you don't provide one. I didn't include a code section for lockpicking checks, though, because I didn't need it for this instance. Perhaps later. It also removes the key on use, and ignores the setting on the object that normally determines if it should do that. I couldn't find a function to read that setting, but I could add a similar check for a local integer on the object. It assumes there's only one copy of the key with that tag to remove.

Anyway, that fixes the locked trapdoor issue. One other one that's a little trickier is that the swimming animation messed up when we had the druid companion along for the ride. I'm guessing this is because it's assigning the wrong appearance to her, being of the n_elf appearance instead of the regular elf. I'll add a special line in there for her, which I think will fix it. Her face isn't actually a concern in this case, since everyone will be wearing the diving helmets, so it won't matter if I need to assign her an appearance that doesn't have her actual face in it.

#598
Guest_Iveforgotmypassword_*

Guest_Iveforgotmypassword_*
  • Guests
With trapdoors all I do is put a conversation on any placeable like a reduced crate/barrel set the on used to gp_talk_object and make it usable. Then have a small conversation ( climb down etc ). You could put in a condition of a key with a simple it's locked line and destroy the key on use setting a local int on the trapdoor so it always jumps the party. Do the same on a ladder placeable and it's done.

#599
Tchos

Tchos
  • Members
  • 5 086 messages
That is another perfectly valid way of doing it, and that may be why I couldn't find any example of this kind of script already in the wiki or on the Vault. But it's done, now. :)

#600
Guest_Iveforgotmypassword_*

Guest_Iveforgotmypassword_*
  • Guests
Don't forget to make it "plot" or you could have a game breaker if it gets hit by a fireball or something like that. Same with tables or anything with environment objects on top they make things look a bit daft when they disappear due to mage related damage.