Aller au contenu

Photo

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


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

#26
kamal_

kamal_
  • Members
  • 5 238 messages
For day/night I mean the sun/moon ui thing. But in general I meant any systems, like custom ui or whatever.

#27
Tchos

Tchos
  • Members
  • 5 030 messages
I started today by merging the systems I had tested separately into this main module, such as the quest scripts, some exploding barrels that will be used for the lighthouse lamp fuel, and can be used tactically, and the final boss, whose appearance was the subject of an earlier query of mine. Converting them all to blueprints for export took a while.

I also imported some wearable custom content. This was my first big experience with importing custom content, barrels notwithstanding, so I did it very slowly and carefully. One of them involved an armorappearance.2da, and another involved a nwn2_icons.2da, so I created the hak I'll be using for this module, and put them in there with nwn2packer. I think I'm slowly coming to understand the use of 2da files.

I couldn't figure out why some of the new items weren't showing up in the toolset at first. I thought there might be some 2da files in the override again, but the reason this time is that I forgot to actually attach the hak to the module. Ah, learning curves.

Some of the custom armour items I want to also use as placeable decorations. I searched and found Mokah's tutorial on how to do that. I'll do that later, after I've roughed out more of the plot. Once again, I allowed myself to get caught on fine details after I got that custom content imported. But at least it made for a good screenshot! This savvy barker and his chipper assistant tour guide will facilitate your diving adventure! (This stand will be next to the docks, with more placeable decorations.)

Image IPB

I set up the journal entries for the main quest. There are a lot of them! They're bare bones for now, without much in the way of flavour, and I must remember to give each entry a summary of the entries that came before it, to aid the player's memory. I assigned the main quest conversation to the mayor, and assigned journal conditionals and actions to let him run through the actions. Now I need to place temporary NPCs, triggers, and acquisition and other tag-based event scripts in Questland to allow me to test the main quest's functioning.

I discovered the ability to save and load sets of variables and scripts. That'll be very useful! I've saved a set of default scripts using the x2_def_* scripts for NPCs/creatures, since I think those are the most recent and flexible ones with hooks to the older versions and variable switches. I also saved a set of variables to use for my quest indicators.

I found the boss death scripts that come with the game, and added lines to update the journal, so I can test the main quest progression. I took Kamal's advice to set their placed instance hit points to 1 for easier testing. I find myself doing a lot of re-placing of instances when I change something in the blueprints, though. I can't find any way of refreshing an instance from the blueprints without just placing a new copy and deleting the old one. Maybe I should just do everything on the instance and convert it to a blueprint later, for moving to the actual locations where they'll be encountered.

Next was lots of troubleshooting. The balcony I placed for the gnome to stand on didn't support his weight, and he sank right through it. Almost none of the conversations fired, including the triggered ones that worked in the previous testing area. A hat that showed up fine in the toolset was absent in the game, while another appeared fine. My quest indicators didn't show up.

I got the normal conversations working, and the mayor's main quest conditions worked fine, as did the boss death scripts, in updating the journal and generating the special treasures. I found that some of the scripts weren't firing because the ones I imported from the previous testing area only imported the uncompiled scripts, so I recompiled them. The quest indicators started working again, and the triggered conversation script fired, but the ambient conversation itself was missing. The hats are still missing. The balcony now has collision, but the gnome was scooted off of it. I tried height-locking the gnome, but in-game he was still sunk into the thing. I tried building up some terrain under the balcony, but the ground mesh's triangles were too large to fit underneath it without showing.

I looked around for walkmesh advice and found the ramp and block placeables by Zarathustra, but when I imported them, 2da and all, the placeables appeared in the form of a carved wooden bear pillar from MotB and one of the Okku barrow stone things with red runes on it from MotB, and the two others didn't appear at all. Sounds like a 2da issue, but I don't know what could be causing it. Finally, I found the walkmesh helper objects from the vanilla toolset, and figured out how to get them working, and now the gnome stands on the balcony.

Some of the problems I had to troubleshoot here were caused by settings changing in the placed instances, or perhaps it was me making the changes to the blueprints, and not placing new instances. This doesn't bode well for when I need to move these objects into their proper places after testing. The setting "never show helmet" was active, though I was sure I had disabled it, and that was the cause of one of the missing hats. The non-firing conversation was due to the characters having been reset to be unable to speak to non player owned characters. I re-enabled that.

Image IPB

That left just one trouble to shoot, and this basic framework is complete. It was the hat on the main boss. Eventually, I found what the problem was. The creature scaling got reset to 1, 1, 1, which caused the hat to sink into her torso. I notice that this scale resetting happens often when I'm doing completely unrelated things in the creature's properties.

Nevertheless, now the rough stuff is all functioning. This session is done.

#28
Rolo Kipp

Rolo Kipp
  • Members
  • 2 788 messages
<still stuck...>

It is fascinating seeing what is different and what is the same between developing for NwN1 and 2. I am truly enjoying this diary.

One day, I will start creating for 2 and I think threads like this will be priceless (which is good, because I'm not only stingy, but broke ;-P ).

Thank you, Big T!

<...in the remote past>

#29
Tchos

Tchos
  • Members
  • 5 030 messages
Thanks for saying so, Rolo! :) It's something I'd like to see more of from other modders. And, it bears emphasis that I have numerous reasons for writing it. Notably, by adhering to regular status reports, I can better keep myself on schedule. And ultimately, I hope this sort of example might encourage any others, who may have projects on hiatus, to press forward in their own work.

#30
Tchos

Tchos
  • Members
  • 5 030 messages
I play in a pen-and-paper group once a week, and this was that day, so I primarily worked on NPC dialogue today. I established the rough framework of one of the side quests that I know will be in this module, and had time to add plenty of conditional dialogue branches for the party chat with special options for various high skill or attribute checks, as well as deity checks, and of course a variety of options without conditionals. This was my first experience with large dialogue trees, and I hope that it, and the others that I write in the same way, will be rewarding for roleplay.

I also fleshed out the conversations for the city watch members who patrol the town and stand at guard posts. They now offer directions to all the major points of interest around town, and I also added a conditional hook in their dialogue, for quest reasons (I'll keep that vague so as not to give too much away in these reports).

I will say that the two temples in this town are to Sune and Valkur (I never liked Umberlee), and my intent is to design them appropriately to their teachings.

I also wrote some rough conversations for a couple of the town vendors, and fleshed out the undersea tour promoter's dialogue.

Since the next order of business for the main quest is to spawn some things in once certain conditions have been met, I looked at my options for a spawn system. I found several such systems, and of those I really wanted to use the Legends spawn system, due to its nice interface, which would make it a faster job. However, the interface gives me unhandled exception errors whenever I try to edit a waypoint, so I can't use it.

I've heard good things about Neshke Narovken's Extendable Spawn System (NESS), so I'll try using that instead. I'll read the instructional PDF on that later.

In the meantime, I placed a group of NPCs that advance part of the main quest if you rescue them (rescuing them will be optional, since there's no logical reason why it should be required to do that to advance the overall plot, though of course you'll miss out on some rewards if you don't do it). I chose one of them to be the speaker for the group and wrote his conversation to handle that advancement.

#31
MokahTGS

MokahTGS
  • Members
  • 946 messages

Tchos wrote...

  • No need to click twice on a door to go through it. When I click on a door that transitions to another area, I don't like having to watch a little animation of the door opening, just to reveal nothing behind it but a black rectangle, which I have to click on again to get to my destination. Why show the door opening if there's nothing behind it? Click on the door once, and it'll take you there immediately, without playing an opening animation. It took me several hours today to figure out how to make that happen.


I'd actually love for you to share how you got this working.  I've always been annoyed with the doors as well.  Did you just use placeable doors or did you do something custom?

Glad to see you liked my prefab, even if you didn't end up using it. That city docks prefab was designed to be used with another city prefab on the Vault by Alaster Wolf that uses the City Hak. I think the textures and polys are a bit higher than the normal props.

I look forward to hearing about your progress. Remember to post any questions here. There is literally years of knowledge in this community, and we are all willing to help.

#32
Tchos

Tchos
  • Members
  • 5 030 messages
I used the standard doors.  My door code is brute force and inelegant, but it does what I wanted it to do.  It just immediately recloses the door before the opening animation has a chance to play, and jumps you to the destination.  I'm sure there's a way to get the destination directly from the default fields instead of a variable, but I didn't take the time to look for one.

Here's a demonstration of it in action:


There may be a slight vestige of the opening animation starting to play and changing its mind on some occasions, but in my tests that was rare.  Also, you may notice that my PC turns to face the direction of the door she just came from once she gets to the other side.  I would consider that a problem to be fixed, except that I only plan to use this kind of code for area transitions, not teleporting to another location in the same area, and it shouldn't come up then.  But I haven't yet tested this code to go between areas.

I put this in the door's On Open event.  The "transition" settings for the door can be left blank ("Link object type = No transition", and blank "linked to" field), or you can have it set to usual transition settings.  I tested it with both, and it doesn't seem to matter.

I had also tried approaches that involved code in the On Click, On Used, and On Fail To Open, but none of those worked.

// tch_door.nss
void main()
{
    object oPC = GetFirstPC();
    ClearAllActions(TRUE);
    AssignCommand(OBJECT_SELF, ActionCloseDoor(OBJECT_SELF));
  
       //tag of waypoint to travel to should be in a local string called "dest"
    string sDestWP = GetLocalString(OBJECT_SELF, "dest");
       // SendMessageToPC(oPC, "Destination: " + sDestWP);  //for debug
    object oWP = GetWaypointByTag(sDestWP);

    //name of sound to play when door opens should be in a local string called "sound"
    string sSoundName = GetLocalString(OBJECT_SELF, "sound");
       // SendMessageToPC(oPC, "Sound to play: " + sSoundName);  //for debug
   
     //play door sound
     PlaySound(sSoundName);

     JumpPartyToArea(oPC, oWP);
}

As for questions, the only one I currently have is, have others gotten Zarathustra's walkmesh helpers working, or do they get the same results I did?

Modifié par Tchos, 10 juin 2012 - 07:35 .


#33
kevL

kevL
  • Members
  • 4 052 messages

Tchos wrote...

As for questions, the only one I currently have is, have others gotten Zarathustra's walkmesh helpers working, or do they get the same results I did?

great stuff, Tchos,

yes i got Zara's walkmesh helpers working, but I had to toy around with it a fair bit -- honestly can't remember if i did anything to the blueprints (other than look them over carefully and resave them) but I was scratching my head a lot in Placeables.2da, and took the quotation marks off the first column ( using rows 3001 to 3004 ) while removing the spaces there also. presently I'm using a larger/improved Placeables.2da from somewhere don't know where and merged the rows okay,


I just noticed the .Erf has .Utp files while the .Hak has .Mdb files. I think i got mine working by placing .Mdb & .Utp files in override, changing the names of the .Utp's to match those of the .Mdb's, and making sure the blueprints' Appearance property matches the correct lines in Placeables.2da .......

hth,

#34
Tchos

Tchos
  • Members
  • 5 030 messages
@kevL: Thanks.  I'll take a look in the 2da file later, and try changing around the other files as you describe.  Only if I end up needing the ramp later, though, since the vanilla platform seems to work.

Today's report:
I opened up Storm of Zehir to see how to add the party registry book to my inns and taverns, and enjoyed reading through the conversation that fires the script. It opened my eyes to yet more ways that conditionals can be used not just to create interesting conversation trees and to reflect quest stages, but also to allow a single placeable to have different flavour text based on where it's located! I love that!

In fact, in examining one of the SoZ taverns, I think I see how they got around the problem I was having yesterday, about the mixups of making changes to blueprints without placing new instances, or changing placed instances and then losing them by placing a new copy from the blueprint. In the tavern, they don't place NPCs at all, but just place spawn waypoints, and have the On Client Enter script spawn the NPCs there. A very good idea. I think I'll adopt that practice, and only make my edits to the blueprints.

I rewrote the spawning script I found in that tavern to read NPC resrefs from local variables applied to the area, so I can use a generic On Client Enter script for any of my areas, and I made a generic spawning waypoint blueprint with the necessary tag prefix attached and a comment to remind myself how to use it if I forget. It seems to work fine. I just wish I could change the appearance of the waypoints themselves to look like mannequins or something so I could easily distinguish an NPC spawning waypoint from a walk waypoint or something. As far as I can tell, I can only change the colour of the flag on the waypoint.

I really like this toolset, aside from its quirks and occasional crashes. It's very configurable, with its dockable and pinnable panels, appearing and disappearing as needed. Very flexible with screen space. It looks like you can make any kind of story or quest you could think of in this toolset!

Twisty plot problem
While setting up the conditions and situations that advance the plotline in a section that can be approached in different ways, I learned how tricky it can be to arrange journal entries and conversation nodes to account for those different combinations of events. This came about because I didn't want to use the invulnerable, unpickable locked door trick to keep the quest progression simple. Instead, the doors are all pickable and bashable, though the keys do exist. No XP granted for bashing, but I do grant it for picking the locks. They are difficult locks, but a skilled rogue should be able to get them open anyway.

I also found by accident that if you check conditions and set quest stages through scripting for a journal entry where you accidentally put the tag of the quest in the comment field instead of the tag field, it still updates the quest and sets the stages correctly in the game, but doesn't show the quest in the player's journal or give any journal update notification. I suppose that could be used to have a pseudo-quest that keeps track of things for the builder's benefit, but is hidden to the player.

Even though I carefully structured the conditions and dialogue, and in my first two tests it all worked properly when I ran through it in two possible ways, I found a third possibility that my dialogue didn't account for. I added another journal entry between two of them to account for the other possibility, and also added a couple of additional nodes to the conversation so that the questgiver didn't repeat himself if you talk to him again before fulfilling requirements. I also had to add conditions to two scripts to account for it. That fixed a few, but I still found ways of triggering unplanned conversations. I can see why people go with the railroading route.

Maybe I should step back and start again, and go about this with variables separate from the journal. That might help.

I stripped down the conversation to its barest structure and rebuilt it from near scratch, and while I was doing that I noticed the "Quest" column which I had forgotten about. I was setting the journal entries with the Action "ga_journal" in the first version. Now I'm setting them with the much more convenient "Quest" field in the behavior node. Both work, but the latter requires less clicking, and shows the quest stages and descriptions so I don't need to check the journal itself for reference.

I incorporated a minimal installation of Barry the Hatchet's Module Testing Toolkit so I could reset the module for quick testing of variations, but I apparently need to configure some kind of permissions in his script to allow myself to use it, so I'll handle that later.

The conversation is running better, now, but I'm running into a problem where a line is ignoring my "Show once per game" setting for the one that starts the quest, and continuing to show it instead of falling through to the line below, which acknowledges that the player is already on the quest. It might be because I have additional conditions set for showing that line, and those conditions are acting as an OR for the "show once" instead of an AND. I'll try removing the conditions, since they're at the bottom of the conversation tree anyway, so there shouldn't be any other situation in which those lines are shown.

So, more work still to be done on this tricky bit.

Image IPB
(Screenshot shows unpolished dialogue)

#35
Tchos

Tchos
  • Members
  • 5 030 messages
I got the Module Testing Toolkit working, but the main reason I had installed it was so that I could reset the module to retry conversations with different conditions. Since this is a campaign, the MTT reloaded the module, but the journal was still advanced to the end of the quest, so unless there's a command somewhere that works the same for a campaign as StartNewModule does for a module (I couldn't find one), I guess I have to do it the usual way.

I'm beginning to think that "Show once per module" might also not be working because this is a campaign, and the conversation is not a campaign conversation. I'll convert it to a campaign conversation and see if that makes it start working.

After playing around with the conversation some more, I found that the gc_talkto condition check works in the exact opposite way as I would have expected. While its counterpart ga_talkto marks an NPC showing that it has been talked to, gc_talkto checks to see if the NPC has not been talked to. I should make a copy of that latter script and call it "gc_talkedto" or something, and make it work in the expected way.

This conversation is a big tangled mess, and some of it is due to trying to get it to work even under improbable conditions, such as the player unlocking the cell door but then not talking to the people inside before going off and doing something else. It works fine under two conditions that I think would be most typical, and even the ones that are less than satisfactory still work, in that they advance the plot. The reason I'm spending this much time on this conversation, though, is because it's one of the major events in the plot.

"Show once per module" still didn't work, even when I converted the conversation to a campaign conversation. It still shows that same line over and over. Does it just not work for campaigns, or is there some other reason? I switched it to "Show once per creature" instead, and that worked as "per module" should have. So now, since I couldn't find any documentation on how SoZ party members are treated by this particular condition, whether they're each considered a separate creature, or if they're all considered "the player", I had to move to the stage of implementing the SoZ party creation before moving forward with the conversation.

I tried opening the first SoZ module to see how they handled the party creation. I found in the campaign manager plugin that G_X2 was the starting module for that campaign, but the module wouldn't load in the toolset. I opened it in NWN2packer and exported it into a folder, and opened it as a folder, and it worked that time. Evidently I had misremembered how the campaign began. I thought I recalled that it had automatically started the party creation interface when it began, but on examining the module here, I see that they had just steered the player toward using the registry book through a warning conversation that played on opening the door. I'll just go with that method.

It took longer than expected to get the book working because I used the wrong script. I put nw_startconv into the On Used field instead of x0_startconv. The first one starts a conversation with OBJECT_SELF, while the second starts it with the user. So, I got the party gen working, and added a second member to my party, and found that "Show once per creature" behaves as I had hoped. The conversation now seems to work properly in all conceivable combinations (though I'm sure it could use playtesting to be sure), and a major part of the plot is now complete.

There were a couple of oddities with the party, though. First, my added party member was unable to attack an enemy. For her, the enemy defaulted to "talk", and when I clicked on it, it switched focus to my main character, who was able to attack it.

There was a bit of hilarity during this, though, because while I was ignoring the enemy and swapping the focus character back and forth, it ran close to that long line of NPCs that were in the first screenshot in this thread, and they all started attacking it! Strange, since I had set them all to the Commoner faction, and there were no Defenders in there. But that wasn't the funny part. When I got back to the cage to test out the rest of the conversation, I saw that one of the prisoners was bashing the locked door to try to get out to the big fight, and since I had specifically made the door destructible, he eventually succeeded. Needless to say, it's not my intention that the prisoners are able to break themselves out of their cage with their bare hands. This is not Minsc! I'll have to make sure all the prisoners are docile so that doesn't happen in the game. Of course, the other prisoner thanked me for getting the door open.

Another oddity was that when I added a party member, then removed her using the party gen screen again, and then I talked to an NPC, her portrait still showed up in the party chat window, though it wasn't selectable. I tested this with several more combinations, and a second time I ended up with two copies of my main character's portrait when I removed my second party member, while a third time, when I tested it with three party members, I just had the non-clickable residual portrait of the missing member like the first time. I'm going to call this a low-priority problem, since most players probably aren't going to reduce the number in their party during gameplay, except temporarily if they want to add any of the companions they find in town.

After these tests, I went back to the Campaign Editor and changed a few of the settings. After that, my added party members were able to attack enemies. I'm not sure which one fixed it, but my settings look like this now:

Image IPB

Now I'm looking over Kamal's PoE prefabs. I believe once I have the NPCs' AI and conversations set up and functioning in the plot, and make sure they're blueprinted, I can go ahead and place their spawn points into the actual intended areas. The next major task is to set up one of the important encounters, which involves triggers and scripting.

#36
kamal_

kamal_
  • Members
  • 5 238 messages

Tchos wrote...
The conversation is running better, now, but I'm running into a problem where a line is ignoring my "Show once per game" setting for the one that starts the quest, and continuing to show it instead of falling through to the line below, which acknowledges that the player is already on the quest. It might be because I have additional conditions set for showing that line, and those conditions are acting as an OR for the "show once" instead of an AND. I'll try removing the conditions, since they're at the bottom of the conversation tree anyway, so there shouldn't be any other situation in which those lines are shown.

I discovered if you have the "show once" option selected for a line, but you link to the conversation line from elsewhere, you can see it from those links. It seems to be a bug, I can't imagine that being the desired behavior. I started putting a local variable check in for things I would be linking.

Modifié par kamal_, 11 juin 2012 - 10:35 .


#37
Tchos

Tchos
  • Members
  • 5 030 messages
This one isn't linked to anything. It's the initial greeting line of the NPC, and there are no links within that node or its children at all. "Hey! Are you here to rescue us?" I have it at the second-from-bottom, just above the alternate greeting line that I want to display every time except for the first time. So I'm afraid it doesn't seem to be the same problem you describe, but I appreciate the suggestion.

And also Show Once Per Creature does the job, so unless there's some side effect to using that one, I'm calling the problem solved.  :)

Modifié par Tchos, 11 juin 2012 - 10:47 .


#38
kevL

kevL
  • Members
  • 4 052 messages

Tchos wrote...

There were a couple of oddities with the party, though. First, my added party member was unable to attack an enemy. For her, the enemy defaulted to "talk", and when I clicked on it, it switched focus to my main character, who was able to attack it.

...

After these tests, I went back to the Campaign Editor and changed a few of the settings. After that, my added party members were able to attack enemies. I'm not sure which one fixed it, ...

UsesPersonalReputations -- when true you need you need to give companions a manual order to attack ( probably works in conjunction with PlayersCanAttackNeutrals, if this is false companions would never be able to attack )

i don't like it either, but apparently it's hardcoded, which imo makes Personal Rep defunct. L(

#39
Tchos

Tchos
  • Members
  • 5 030 messages
That's unfortunate. I liked the idea of personal reputations, though I suppose it's not really important for this module. I had heard it was useful in preventing all commoners everywhere from going hostile if you attacked one. I guess the solution to that, if that happens, is just to create lots of little duplicates of the commoner faction but specific to different areas.

#40
Guest_Iveforgotmypassword_*

Guest_Iveforgotmypassword_*
  • Guests
I've never used the module testing toolkit but it sounds interesting, anyway here's a hopefully helpful hint...

When testing you can use the console to run any script by just typing rs then a space and putting in the script name( if your own ) or the script plus the vatiables if one of the conversation ones. You can even back date your journal eg. rs ga_journal("myquest",4,1,0,1) the final one means that the first number will override whatever journal entry you're on, and although I've never done it I dare say you could change all your local and global ints too ( I adjust them using a companions campaign conversation which overwrites anything.no matter where you are in a module ).

#41
Tchos

Tchos
  • Members
  • 5 030 messages
Thanks! Your tip sounds like it'll accomplish what I need, so if I can also reset local variables, that'll let me test future conversations more easily. That's a good idea about the companion conversation. That gives me a reason to make my first companion sooner rather than later.

The Module Testing Toolkit is very useful for the other things it does, even though the module reloading doesn't reset the campaign journal.

#42
Guest_Iveforgotmypassword_*

Guest_Iveforgotmypassword_*
  • Guests
You're welcome you might have to reset local variables in the area where the holder of it is. You could also make a useless rat that is a companion ( I had a tiny kobold following my party around for quite a long time ) and stick a campaign conversation on him that you just alter whenever you want that way combat wont be unbalanced he'll just get squashed straight away then bounce back later to answer any questions or set ints etc.

If you haven't got a tab for campaign conversations ( mine kept getting wiped out and I gave up ) you can make the conversation as normal then export it using the export bit in the file tab then manually move it to your campaign folder. To open it just use the open script/conversation section of the file tab and type in the name.

#43
Tchos

Tchos
  • Members
  • 5 030 messages
I do have a tab of campaign conversations, and they also show up on the Resources palette, under the Conversations tree. The things that don't show up anywhere are the scripts that I moved directly into the campaign folder, even after I opened them afterwards and recompiled them.

Also, since I'm using SoZ death, if I were to use a weak companion like that, I'd best make it immortal, or else carry items to raise the dead.

#44
Tchos

Tchos
  • Members
  • 5 030 messages
I spent some time combing through prefabs today, and I must say I found it to be an educational experience. I really wish the developers had chosen a smaller tile size so that the average "hallway" weren't wide enough, as one reviewer put it, for five burly men to stand shoulder-to-shoulder. But with excellent packs such as Nytir's Building Construction Kit, I should be able to restructure the rooms to take care of some of the larger limitations. Even the simple textured blocks will do much to fix these rooms. The confusing thing is that there are two versions, both by Nytir, and I can't tell if one is supposed to supersede the other or if they're meant to be used alongside each other. BCK II has a more recent update, and says it has over 1000 pieces, while BCK 2.1 appears to have a higher version number, but has a less recent update, and only 218 pieces. The best I can surmise is that the "II" in BCK II is not a version number, and that the original could be written as BCK I 2.1, so BCK II must be the newer version. It's still not clear if there are pieces in BCK I that have no equivalents in BCK II, however.

Even without using any BCK pieces, though, I cobbled together a similar kind of stairwell as the kind that I liked from DA:O, for me to use instead of the illogical stairs that come standard in the toolset. BCK has a better-looking stair piece, though, so when I import that, I'll use those, and a handrail, if I can find something that'll work for that. Next to the doorway is an alternate set of stairs that I assembled from shelving. The idea here is not to actually walk on the stairs, but to transition to upstairs by clicking on the doorway. The second pic is what the DA:O stairwells look like, so you can see the kind of thing I was going for. My example isn't as polished, of course.

Image IPB Image IPB

Aside from testing things out in the area editor, the only other thing I got done today was going through prefabs and cataloguing the areas I'll be using as bases, or which had elements that I liked for future works, and I also made some placeable prefabs.

Modifié par Tchos, 12 juin 2012 - 11:33 .


#45
kevL

kevL
  • Members
  • 4 052 messages

Tchos wrote...

But with excellent packs such as Nytir's Building Construction Kit, I should be able to restructure the rooms to take care of some of the larger limitations. Even the simple textured blocks will do much to fix these rooms. The confusing thing is that there are two versions, both by Nytir, and I can't tell if one is supposed to supercede the other or if they're meant to be used alongside each other. BCK II has a more recent update, and says it has over 1000 pieces, while BCK 2.1 appears to have a higher version number, but has a less recent update, and only 218 pieces. The best I can surmise is that the "II" in BCK II is not a version number, and that the original could be written as BCK I 2.1, so BCK II must be the newer version. It's still not clear if there are pieces in BCK I that have no equivalents in BCK II, however.

I just put in a whakLoad of placeables & tilesets, and settled on Pain's combined ( and patched ) Nytir's BCK Combined for AutoDownloader -- psst, don't need ADL ...

methinks these two files handles it for SP:
BCKCombinedUtps.7z - blueprints
NytirHaksSingleDownload.7z - models & textures

plus the needed .2da entries:
2DA_Changes.txt

But a person might try Kanbyen's Master Placeables.2da -- looks like he's put a lot of effort into it,

although it might not be fully compatible with the combined blueprints and you might be better off just going with Pain's 2da_Changes ..... myself, i'm using WinMerge to sort through 2da's ( priceless )

#46
kamal_

kamal_
  • Members
  • 5 238 messages
I never saw that master placeable 2da. That's quite handy.

#47
Tchos

Tchos
  • Members
  • 5 030 messages
I started using WinMerge when I was making my UI mod. I like it very much.

I'll download that master placeable 2da and the combined BCK, but I want to avoid requiring any all-in-one packs to be downloaded and installed to play my module. I don't actually know anything about how ADL works, other than that it functioned without error when I tried out a few PWs some time ago. Good to know that things marked as being for ADL also work for other purposes.

#48
kevL

kevL
  • Members
  • 4 052 messages

Tchos wrote...

Good to know that things marked as being for ADL also work for other purposes.

that's kinda misleading .. they can be *made* to work for other purposes, which is what PoDE did ....


ps. if you look closely, notice the .Haks are divided into manageable bites

Modifié par kevL, 12 juin 2012 - 11:42 .


#49
Tchos

Tchos
  • Members
  • 5 030 messages

kevL wrote...
ps. if you look closely, notice the .Haks are divided into manageable bites


Well, that's different, then.  Thank you!  ^_^

#50
Tchos

Tchos
  • Members
  • 5 030 messages
It's another glorious day for modding! I started by looking over some more prefabs, and that led me to examine the code for Patcha's sittable chairs. I need to have NPCs sitting in chairs here and there, so I needed to add that at some point anyway. I might as well also enable the player to sit in chairs while I'm at it.

Next, I went through my area spawning script and my ambient chatter script, and made both of them generic so that I can use them universally with variables. I don't want to spend too much time making scripts universal, though, since it would probably be faster just to make new scripts for situations as I need them.

I also did just that, making a few new versions of my questing scripts to more easily use in conversations, rather than having to manually set variables. Also added some new sound effects and implemented my first shop (a potion shop), using Vordan's Shop Wizard as a base.

Next, I converted the finished NPCs to campaign blueprints, and swapped out their placed instances with spawning waypoints.

I edited one of the conversations to add skill and stat checks, and created my first quest item, which was a key. I couldn't find any placeable keys to represent it in the game world, though, so it looks like it'll be an item that only exists in the inventory or as a sack on the ground. It's somewhat disappointing that so many common objects don't have placeable versions, but in another way it's rather liberating that you can create any item imaginable, and all you need for it is an icon and a description.

One question, though -- what is a tough, but barely doable, DC for a locked door, with an assumed level 10 character with good lockpicking skills? There should also be opportunity to acquire thieves' tools here and there.

Another thing I did to speed up my conversation writing is to create a cliptext template for EditPlus, my preferred text editor, so that I can apply all the common text formatting to my text without having to type it (and risk errors in the tags). For instance, for character actions, I'm using text that's both italicised and in light blue. I made a cliptext entry to apply both of those formats to whatever text I have highlighted. While I was at it, I also added those tokens that are in the dialogue editor, just because it's faster to double-click the item from a full-length list than to choose it from a dropdown menu and click a button.

I tried out the Legends Spawn plugin again, because I found I couldn't spawn a placeable with the same code I used to spawn NPCs in the On Enter script, and this time the plugin didn't crash. I couldn't find where it was storing its information, but I did find the command I needed, CreateObject. I was searching for "spawn", as the creature equivalent has in its name.

I put some barks on the first of the bosses to speak randomly during his fight, but I want him to shout them. I couldn't find any setting to control the line's "volume" in a conversation file, which is where I wanted to pull the lines from, but there is a TALKVOLUME parameter in the SpeakString command, which has constants for "shout" and "whisper", so unless anyone knows of a way to specify those volumes in a conversation, I'll just do it in a script.

I started writing the script for the first of the boss fights, converted/imported special sound effects for the purpose using MP3toBMU.