Aller au contenu

Photo

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


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

#926
Dann-J

Dann-J
  • Members
  • 3 161 messages

Tchos wrote...

I think the most important thing is that you say you scaled the drink sizes down for halflings to account for their smaller body mass. If not for that, I'd think they should get drunk a lot faster than anyone else, fast metabolism or not.


It was especially necessary in my case, since the competitor is a storm giant!

There's a scene in Peter Jackson's "The Hobbit" that seems appropriate, when Gandalf and the dwarves meet in Bilbo's house:

Dori: May I tempt you with a cup of camomile?
Gandalf: Ooh, no thank you, Dori. A little red wine, for me I think.
...
Dori: A little glass of red wine as requested, it's got a fruity bouquet.
Gandalf: [looking disappointed] Oh, cheers.

[takes the small glass of wine and drinks it in one go]


Modifié par DannJ, 03 septembre 2013 - 03:15 .


#927
Tchos

Tchos
  • Members
  • 5 063 messages
Only one day before International Talk Like A Pirate Day, and I've had so little time to work on the module, I doubt I'll be able to release it in time for that auspicious date. I'm happy with the way the great stone kuo-toa temple is coming out, though, and for once the walkmesh helpers and ramps are playing nicely with each other, which is a virtual necessity for this design. I think spelunkers to this cave will be pleased with the results.

#928
Tchos

Tchos
  • Members
  • 5 063 messages
I have suffered approximately 200GB of data loss. I don't know how it happened, but while attempting to access a shared folder through the network, between the initial access command and waiting for it to check my credentials, during which time the window prompted me numerous times with the "program is not responding -- shut down or wait for it to respond?" window, with me saying "wait" each time, when it finished the credential check it somehow registered a "delete everything in the shared folder" command. I have no idea how such a command could have been issued. My fingers were nowhere near the Delete key.

When I saw the dialogue box announcing that it was beginning the task of deleting my files, I immediately hit the cancel button, but when it continued tallying up the files to delete, I force shut down the computer by holding down the power key for 6-7 seconds.

Files deleted over a network shared folder are not put in any recycle bin, but are permanently deleted.

I attempted to recover my data using a portable installation of Recuva on a flash drive, but despite showing plenty of weeks- and months-old files (all marked as unrecoverable, of course), it did not show any of today's deleted files. My files simply vanished without a trace, and I have 200GB more free space. A lot of my original work was included in the loss -- probably hundreds of hours of creative work, as well as a lot of archives.

The mass deletion was halted before it consumed my module folders.

#929
Arkalezth

Arkalezth
  • Members
  • 3 191 messages
Ouch. If it comforts you (I don't think so), I've heard of similar experiences from other module builders.

I might still have the files from the beta, if that helps, but they're a couple of months old.

#930
Lugaid of the Red Stripes

Lugaid of the Red Stripes
  • Members
  • 955 messages
the horror!

#931
PJ156

PJ156
  • Members
  • 2 985 messages
I am so sorry to hear that Tchos, I have never suffered such a loss on such a scale.

I don't know how backed up you are, or even if that helps in this situation but I still have your play test version on my hard drive.

PJ

#932
Tchos

Tchos
  • Members
  • 5 063 messages
The loss is staggering, and I appreciate the sympathy. I'd guess I have maybe up to 10% of the deleted files backed up or copied here or there, but I don't even have a list of all the things that are gone, to help me recover what can be recovered.

The good news for those waiting for this module is that it's one of the few things that's small enough to have been fully and redundantly backed up via Dropbox. Also, my Witcher files and original modeling work is stored on a separate hard drive, so that's safe, too.

I've been wishing for a Blu-Ray disc writer to enable me to back up my data more quickly and efficiently.  I can't afford one right now, but it's definitely on my short list of things to get.

Modifié par Tchos, 05 octobre 2013 - 10:16 .


#933
kamal_

kamal_
  • Members
  • 5 254 messages
oof!

#934
Guest_Iveforgotmypassword_*

Guest_Iveforgotmypassword_*
  • Guests
I admire your calmness I think my PC would have gone out the window and I'd be hitting the rum !

I hope you can recover all your lost things and good luck.

#935
Tchos

Tchos
  • Members
  • 5 063 messages
I do feel strangely calm about this, even after a so-called "forensic" hard drive scanning program failed to recover the missing data after a 6-hour scan. I think it's basically hopeless at this point, and I might as well go ahead and start using the new free hard drive space. Maybe I'm in denial about the loss, or it just hasn't hit me yet, or I just can't remember what all was in there and I haven't yet gone looking for something that's not there anymore. For now, at least, I'll just press on and recreate whatever needs to be recreated, and try to relocate any non-original archives.

I know we've had a lot of crashes and losses around here, some of which have been recovered and others not, so best to just take it as another reminder to back up everything that you consider important, even stuff that's not finished. Better to have to replace outdated backups than lose the material.

#936
Calister68

Calister68
  • Members
  • 340 messages
Too bad, I'm waiting for this module for so long ! I hope you can go on and release it soon.

#937
andysks

andysks
  • Members
  • 1 651 messages
As Arkalezth said, I have the full Beta version still installed in my PC. If it helps or if files in there could be from the lost ones just pm me.

#938
Tchos

Tchos
  • Members
  • 5 063 messages
This module is safe, but thank you.

#939
ColorsFade

ColorsFade
  • Members
  • 1 270 messages
So sorry Tchos.

Your disaster has prompted me to backup to Dropbox... I've long held a second copy of all my files via Tortoise, but since it's on the same HD it's not much of a disaster recovery plan. Bet to have an off-site copy...

#940
Tchos

Tchos
  • Members
  • 5 063 messages
So, as you can tell, progress slowed significantly since school resumed. There have been days, and even entire weeks, that I did not have the NWN2 toolset open on my computer. Instead, I used most of my free time just playing games. I finished the Heart of Winter expansion of Icewind Dale, for instance, and I just finished playing through the entirety of the main quest of Elder Scrolls 1: Arena. There are a lot of good ideas in some of these games that would be great for including in a NWN2 module, I'd say.

The kuo-toa temple is a bit of a chore to create, with its walkmesh helpers and careful water placement, and it's one of those things that's daunting enough to deter me from starting a modding session. I'll tell you, it was a really tedious choice that I made to individually place hundreds of small rocks along a path, but at least that's done. I also had to retexture them to make them useful for my purposes, and tintable.

Taking care of some smaller items on my to-do list, however, reminded me of the good feelings of modding, so I'm going to plow through the rest of the temple as fast as I can.

One of the small things I did was add a contingency to a particular quest in the cave, so that if you already did certain things before finding the quest, you could still complete it, whereas earlier, if you found the quest too late, you couldn't complete it.

As Andysks referred to in his own diary, I wrote a series of generic quest systems for this module that allow tracking of common quest elements such as collections, manipulation of placeables, triggers, kills, etc. I was partially inspired by the quest system in the Legends plugins, which provides a lot of this kind of functionality, but requires a database as in a PW. My version uses a completely different approach, though, as was necessary since I don't use a database. I offer several options for what kind of object to track these variables on, such as the PC, the module, or a waypoint that will be generated if necessary. It's token-based, which was originally just because I use custom tokens for the journal entries, but it turned out to also be useful for tracking the items. This is because you can have an arbitrary number of different items involved in the system for each quest. (For instance, a simple quest for collecting 5 rocks, or a longer quest for collecting 5 rocks, 10 sticks, 2 leaves, and a mango. However many different objects you want.)

Next I just need to make one for unique item acquisition. I have a quest that would make use of such a script. I think that rather than using the tag-based system, it'll be more efficient to use the user defined slot for the generic system, since with a tag-based script, I'd have to either create a separate script for each item, or give all of the special items the same tag, which would limit further manipulation for those items.

While the scripts for these systems are pretty long and complicated, it's only for the purpose of making them work for a wide range of situations, and produce a wide range of effects. Actually using them makes implementing such quests very simple and quick.

Modifié par Tchos, 29 octobre 2013 - 10:21 .


#941
Tchos

Tchos
  • Members
  • 5 063 messages
Today I began scripting the new quest tracker I mentioned in the last post, to streamline the process of making a quest that involves acquiring any number of different types and quantities of items, from any source. A flaw in my plan as stated last time is that items do not have fields in their properties for user defined events or acquisitions. I suppose that's why they came up with the tag-based scripting system in the first place. Still, the fact remains that it would not be efficient, nor match with the method of my other systems in this series to make tag-based scripts for each item, so I modified the module script for acquiring an item to make one extra check in addition to the tag-based check. This was no big deal, since I had already been using a custom module script to add support for Kaedrin's events.

I spent my time today researching how to deal with this kind of event, setting up the framework for firing a special script from a variable on the item, and making sure it only fires when the PC or a party member acquires the item, and only once. Ideally, there should be a corresponding addition to the unacquire event, to account for players who like to break things by dropping or selling their quest items before going back to the questgiver, but then again, I'm not sure I care enough to cater to that kind of player. I'll compromise by including an option to have the script set the "plot" and "cursed" flags when you acquire them, which should keep the items on the player until the quest's over.

As an aside, it's pretty convenient to have my scripts and other documents in a shared Dropbox folder, because I can work on them when I'm away from my main computer, as I did for these scripts.

I tested the bare bones of the script, and it runs only for specially-marked items, and only once, as intended, counting up with a basic counter. Next step is to add the actual tracking code.

#942
Dann-J

Dann-J
  • Members
  • 3 161 messages
I don't mind having something 'plotted' and 'cursed' if it would break the game if you lost or sold it - as long as it gets uncursed or destroyed eventually. There's nothing more annoying that exporting a character at the end of a module, only to have them stuck with items they can't get rid of in the next module you play.

Yes - I'm talking to YOU, Storm of Zehir...

#943
Tchos

Tchos
  • Members
  • 5 063 messages
Yes, I typically deal with quest item turn-ins by simply destroying all copies of the quest item(s) in the world.  As a failsafe, I should probably add in some code to destroy them if the player takes the dialogue option to export and view the epilogue without completing the side quests.  This won't get rid of such quest items if you just export at will through the game menu, though.  I don't know of any way to get around that.

For modules that don't have any failsafes, I find Kaldor Silverwand's Context Menu Additions very useful, as it allows you to drop ALL unequipped items, and then you can pick up just the items you want to keep.

#944
Tchos

Tchos
  • Members
  • 5 063 messages
I did some more work on the temple. I think it was a bad idea to design it this way, with all the necessary walkmesh helpers, but that part is almost out of the way. I'm glad Bob Hall is doing his part to ease the walkmesh troubles of people in general, but unfortunately my particular aims in this place are just a matter of connecting ramps and planes, not unusual shapes.

I also did a little expansion work on my door script, to make sure all standard options are supported, as well as additional door-related options that aren't in the stock game. This is preliminary, and needs more work. It may not appear in this module, at least before I make an expansion.

What I think I will include is this city watch set of scripts. I mentioned in a much earlier post that I wanted to use an attacking system like that in Baldur's Gate, where you were not prohibited from attacking enemies until after they delivered their speeches and your party was stripped of buffs and kicked out of stealth and teleported into the middle of the room. That was easy enough, but this also applies to the ability to attack private citizens. Not that you should want to, but you are able to.

This required some kind of crime/guard system. I began with a set of NWN1 scripts called Rusty Constabulary (which was in turn a modification of scripts by H.P. Long), and set about examining them to see what they were doing, how, and why. (This might have been easier if I had actually run the demo module in the game, but I didn't feel like dealing with NWN1.) There were many great ideas in the scripts, and I was able to use large sections of them, though for my purposes, they needed a lot of restructuring. I removed parts, added parts, rewrote things to make them work better in NWN2, and added some familiar voices to certain events.

Currently the way it works is that if you attack a private citizen, the citizen will call for help. If a guard is within earshot, he'll come to arrest you. Then you'll have the option of either paying a fine, going to jail, or resisting arrest. The same thing will happen if you steal something from an owned container, and a guard is within range. If you do these things, and a guard is not within range, you'll get away with it. Paying your fine or going to jail both remove your "wanted" status, but you have a permanent record, and every time you commit a crime, they charge you harsher fines.

A problem I was having was that the citizens were not fleeing or speaking their strings when you attack them, though they were signalling the guards for help.

I decided to write a fleeing script, making the NPC flee the area via the nearest exit waypoint (either one marked as an exit, or just any nearby waypoint) with an ipoint-based control script to cause the NPC to return after some time has passed. Unlike the ForceExit script, I'm putting the NPC into a secret holding cell and making them hidden for the duration of their absence.



It took a few hours, and a lot of SendMessageToPC feedback to figure out where things were going wrong, but my tests now show the attacked NPC properly fleeing to the nearest exit, with several failsafes in case there are no nearby waypoints with the chosen tag prefix, or if you didn't choose a prefix. Upon reaching the exit, the NPC is whisked away for 4 rounds, and then reappears at the door, walks back to his/her original spot, and breathes a sigh of relief at having survived your unprovoked attack.

Meanwhile, of course, the guards are hauling you off to prison, etc. In this demo, the prison and the holding cell are in the same area, so everything is visible and instant, but the idea would be to create appropriate fades to black and delays, and going to a different area for processing, etc. Also, the guards would patrol.

Modifié par Tchos, 24 novembre 2013 - 10:50 .


#945
kamal_

kamal_
  • Members
  • 5 254 messages
Nifty scripting.

#946
PJ156

PJ156
  • Members
  • 2 985 messages
Very neat work Tchos,

PJ

#947
Calister68

Calister68
  • Members
  • 340 messages
Nicely done. What's the difference between paying the fine and going to jail ? Do you lose some stats in jail, like in oblivion ?

#948
Tchos

Tchos
  • Members
  • 5 063 messages
Thanks. Yes, though it's not shown here, going to jail causes a stat reduction (constitution and strength) which would have to be restored by spell, as well as a longer delay before you're released. Alternatively, it could cause a loss of XP instead.

#949
Tchos

Tchos
  • Members
  • 5 063 messages
I think one of the more enjoyable parts of working on this was that I finally got around to trying something I wasn't sure would work -- a more dynamic generation of the resources needed to make this work. I use ipoints instead of the NPCs themselves because the NPCs have their own heartbeats and other scripts that may interfere with the commands being executed, but an ipoint regulator's entire job is to take control of that NPC and force it to stay on task, and the ipoint cannot be interrupted. However, when I've used these regulators before, I've always made a blueprint with the necessary scripts and local variables attached, to be spawned as necessary so that it's not occupying CPU cycles until it's needed, and destroyed when finished.

Here, instead, although I am still spawning them as needed and destroying them when done, I did not create a blueprint. Instead, my script spawns a default ipoint, and attaches the necessary scripts and variables to it after spawning it. It also generates a unique tag for the ipoint using the NPC's tag and original location vector (converted to a string).

I think I'll be doing more of this kind of scripting/spawning/controlling.  Possibly instead of using an ipoint, I could just temporarily change the NPC's scripts to the ones needed to control their flight, so that no other script can interrupt them, and change them back afterward.

Modifié par Tchos, 24 novembre 2013 - 10:59 .


#950
andysks

andysks
  • Members
  • 1 651 messages
This is one of the most interesting things I've seen in NWN2 moding. It seems like Elder Scrolls... completely. And I love this system. Well done Tchos. You did it again. Your scripting work is really exceptional.