More questions (of course)
5 posters
Page 1 of 1
More questions (of course)
The 'hidden doors' used in some crypts for Aenea that look like walls...are they of your own making or do they exist in the pallet already?
I read CEP's concept of creating a cloak for flying and followed their technique but it had no effect. What is a good or the best way to create flying as you have it in Aenea? I've played other PWs where flight was allowed only as short 'hops'.
Also, I am wanting to have NPCs walk waypoints but it is possible to have 2 of the same NPCs, say guards, walk different paths in the same area?
And is it possible to make the module load/reboot at random game times of the year?
Btw, thank you for all your help so far ! You have helped me greatly!
I read CEP's concept of creating a cloak for flying and followed their technique but it had no effect. What is a good or the best way to create flying as you have it in Aenea? I've played other PWs where flight was allowed only as short 'hops'.
Also, I am wanting to have NPCs walk waypoints but it is possible to have 2 of the same NPCs, say guards, walk different paths in the same area?
And is it possible to make the module load/reboot at random game times of the year?
Btw, thank you for all your help so far ! You have helped me greatly!
Drgnwlkr- Seasoned Explorer
- Number of posts : 180
Age : 59
Main Character : Elladyr the Pathfinder
Other Character : Arauka'dae the Ghost
Other Character. : Adahi Ditlihi, Knight of Dalix
Other Character.. : Aradia the Warblade
Registration date : 2011-04-30
Re: More questions (of course)
Also, do you use an area trigger to make the water acidic on Deathwater Isle?
Drgnwlkr- Seasoned Explorer
- Number of posts : 180
Age : 59
Main Character : Elladyr the Pathfinder
Other Character : Arauka'dae the Ghost
Other Character. : Adahi Ditlihi, Knight of Dalix
Other Character.. : Aradia the Warblade
Registration date : 2011-04-30
Re: More questions (of course)
Hidden Doors: Those are one of my creations. Custom models, plus some custom scripting to get them to work properly.Drgnwlkr wrote:The 'hidden doors' used in some crypts for Aenea that look like walls...are they of your own making or do they exist in the pallet already?
I read CEP's concept of creating a cloak for flying and followed their technique but it had no effect. What is a good or the best way to create flying as you have it in Aenea? I've played other PWs where flight was allowed only as short 'hops'.
Also, I am wanting to have NPCs walk waypoints but it is possible to have 2 of the same NPCs, say guards, walk different paths in the same area?
And is it possible to make the module load/reboot at random game times of the year?
Btw, thank you for all your help so far ! You have helped me greatly!
Flight: Flight in Aenea is also technically short "hops". It's a NWN scripted effect called EffectDisappearAppear(). I just use it in conjunction with the wings of flying, cloak of the bat, spellbook: flight, and the flying abilities of winged PCs (winged, demonspawn, level 20+ paladins, dragon disciples/dragonsouls). If you're talking about the "flying just above the ground" animation style, that's the "flying" phenotype that's part of the CEP.
Waypoint Walking: It is possible, but you'll need to have a way to give the two NPCs different tags (either via different blueprints in the palette or via scripting somehow when they are spawned). Since the waypoint walking system works off the creatures' tags, these need to be different.
And now that you bring it up, I just thought of a way to spawn multiple guards from one blueprint that will have slightly different tags. A few minutes in the toolset and I should have a working script to post here.
Module Load/Reboot: There are a couple of methods to do this.
The simplist is having the module heartbeat script check the module clock for a predetermined game date+time (this can be scripted to be randomly determined when the module first loads). When the correct date/time is reached, have the module do a StartModule() function call, starting the same module that's currently running. However, this method will not actually drop the game server out of memory, so eventually it could slow down a multiplayer server.
The second method also would use the heatbeat and randomly selected time, but also uses NWNX and the reset plugin. The reset plugin for NWNX tells it to shut down the game server software from a script call. NWNX should then automatically restart the server and your module (if you have it configured properly). This method does remove NWN from the computer's memory before it restarts, so it's more of a "refresher" and means less buildup in the server machine's memory over time.
Acidic Water: This is a combination trigger. I have custom triggers laid out to overlay the water there (one trigger per continuous portion of acidic stream). When entered, the trigger's script inflicts some acid damage and sets a variable on the PC that marks them as standing in acid (and controls how much damage is inflicted). The module's heartbeat script inflicts acid damage each round as long as that variable is on the PC. When the PC exits that trigger, a script removes that specific variable so that damage stops happening every round.
Re: More questions (of course)
I'm going to start using this for the city guards in Macedone, which are currently 10 different blueprints in the custom creature palette (to account for different waypoint paths). I'm going to be replacing those 10 with just 2 (one male, one female).
What this script should do is, on the guard's very first heartbeat, it will check the guard's tag. If it's one of the two predetermined "template" tags, it will create a copy of that guard, give it a new tag (which can normally only be done by copying an object), then destroy the original. It's got a limit on the number of new tags (so you don't have to make an infinite number of waypoint paths)...this limit is set as a variable on the area itself in the toolset.
Untested, but it's a simple script that shouldn't cause any real problems. It just requires an insertion into the default creature heartbeat script (nw_c2_default1).
What this script should do is, on the guard's very first heartbeat, it will check the guard's tag. If it's one of the two predetermined "template" tags, it will create a copy of that guard, give it a new tag (which can normally only be done by copying an object), then destroy the original. It's got a limit on the number of new tags (so you don't have to make an infinite number of waypoint paths)...this limit is set as a variable on the area itself in the toolset.
Untested, but it's a simple script that shouldn't cause any real problems. It just requires an insertion into the default creature heartbeat script (nw_c2_default1).
- Code:
// Guard Tag Changing (for waypoint walking in cities)
// Code Snippet by The Amethyst Dragon (Oct. 10, 2011)
// Insert into the default creature heartbeat script (nw_c2_default1)
object oSelf = OBJECT_SELF;
string sTag = GetTag(oSelf);
object oArea = GetArea(oSelf);
if (sTag == "guard_macedone_m" || sTag == "guard_macedone_f")
{
int nGuardTagLimit = GetLocalInt(oArea, sTag + "_limit"); // set on the area in toolset
if (nGuardTagLimit > 0) // don't bother retagging if no limit is set
{ // (to better work with random placement in other areas of the module)
int nGuards = GetLocalInt(oArea, sTag) + 1;
SetLocalInt(oArea, sTag, nGuards);
// Resets number so that it will loop instead of doing an infinite number of changes
if (nGuards > nGuardTagLimit)
{
nGuards = 1;
SetLocalInt(oArea, sTag, nGuards);
}
string sGuardNumber = IntToString(nGuards);
object oNewMe = CopyObject(oSelf, GetLocation(oSelf), OBJECT_INVALID, sTag + sGuardNumber);
DelayCommand(2.0, DestroyObject(oSelf)); // get rid of original when making the copy
return;
}
}
Re: More questions (of course)
Very nice! Thank you for sharing! I have been placing NPCs then creating the walk waypoints off of them...this a less effect way?
I was told to remove all heartbeats for the NPC/Mobs that I create...is this a wise idea? The notion was to keep the server from lagging too badly.
I think I understand your concept on the acidic water and I'll try to work with it in a Shadow Plane area that will be populated with undead.
I was told to remove all heartbeats for the NPC/Mobs that I create...is this a wise idea? The notion was to keep the server from lagging too badly.
I think I understand your concept on the acidic water and I'll try to work with it in a Shadow Plane area that will be populated with undead.
Drgnwlkr- Seasoned Explorer
- Number of posts : 180
Age : 59
Main Character : Elladyr the Pathfinder
Other Character : Arauka'dae the Ghost
Other Character. : Adahi Ditlihi, Knight of Dalix
Other Character.. : Aradia the Warblade
Registration date : 2011-04-30
Re: More questions (of course)
Okay, I've been working on this for alil bit and cannot figure why it will not compile. Can you find anything wrong with it?
// Put this script OnPerceived (of a creature).
void main()
{
// We are only interested in "seen" events.
if ( !GetLastPerceptionSeen() )
return;
// Get the creature who triggered this event.
object oPC = GetLastPerceived();
// Only fire for (real) PCs.
if ( !GetIsPC(oPC) || GetIsDMPossessed(oPC) )
return;
// Abort if the PC does not have the item "msi_khblkey".
if ( GetItemPossessedBy(oPC, "msi_khblkey") == OBJECT_INVALID )
return;
// If the PC is female.
if ( GetGender(oPC) == GENDER_FEMALE )
{
// Have us say something.
SpeakString("Greetings M'lady!", TALKVOLUME_SILENTTALK);
// If the PC is male.
if ( GetGender(oPC) == GENDER_MALE )
{
// Have us say something.
SpeakString("Greetings M'lord!");
// Have us perform a sequence of actions.
ActionPlayAnimation(ANIMATION_FIREFORGET_BOW);
ActionOpenDoor(GetNearestObjectByTag("msd_khbldrspec"));
}
}
Compile error is... 'Unexpected End Compound Statement'
I am sure I done something wrong while using Lilac's Script Generator but not sure what.
// Put this script OnPerceived (of a creature).
void main()
{
// We are only interested in "seen" events.
if ( !GetLastPerceptionSeen() )
return;
// Get the creature who triggered this event.
object oPC = GetLastPerceived();
// Only fire for (real) PCs.
if ( !GetIsPC(oPC) || GetIsDMPossessed(oPC) )
return;
// Abort if the PC does not have the item "msi_khblkey".
if ( GetItemPossessedBy(oPC, "msi_khblkey") == OBJECT_INVALID )
return;
// If the PC is female.
if ( GetGender(oPC) == GENDER_FEMALE )
{
// Have us say something.
SpeakString("Greetings M'lady!", TALKVOLUME_SILENTTALK);
// If the PC is male.
if ( GetGender(oPC) == GENDER_MALE )
{
// Have us say something.
SpeakString("Greetings M'lord!");
// Have us perform a sequence of actions.
ActionPlayAnimation(ANIMATION_FIREFORGET_BOW);
ActionOpenDoor(GetNearestObjectByTag("msd_khbldrspec"));
}
}
Compile error is... 'Unexpected End Compound Statement'
I am sure I done something wrong while using Lilac's Script Generator but not sure what.
Drgnwlkr- Seasoned Explorer
- Number of posts : 180
Age : 59
Main Character : Elladyr the Pathfinder
Other Character : Arauka'dae the Ghost
Other Character. : Adahi Ditlihi, Knight of Dalix
Other Character.. : Aradia the Warblade
Registration date : 2011-04-30
Re: More questions (of course)
it requires another close bracket } at the end... I think ...
RustyDios- High Epic Level
- Number of posts : 2271
Age : 40
Location : England // Getting lost in Aenea
Main Character : Jay Braysin, The Wandering Shadow, Protector of Nektaria, Talon's Eternal Foe
Other Character : Shouri Braysin, The Shimmerstar's Moonlight Sorceress
Other Character. : Grace Fularras, Walking Library , Cleric of Mystara
Other Character.. : See my sig ... And here too ...
NWN Username : RustyDios
Time Zone : GMT (England, DST)
. :
Registration date : 2008-07-28
Re: More questions (of course)
Old School Hint: While I am unfamiliar with the language, it is my experience that reading code in reverse (bottom to top) may be somewhat helpful in proofing text before compiling. It tends to slow down the eyes a little, and aids in catching errors that regular reading views as assuming as complete.
Motto of the Day: Could be worse; could be COBOL!!!
Motto of the Day: Could be worse; could be COBOL!!!
Elhanan- Epic Level
- Number of posts : 1781
Location : At the keyboard typing with two fingers....
Main Character : Aargyle McJagger
Other Character : Barnabas Bottlebottom
Other Character. : Aarn, Aerik McJagger
Other Character.. : Azar; Briar Ironwood
NWN Username : Elhanan the Ancient One
Time Zone : Central USA
. :
Registration date : 2009-06-23
Re: More questions (of course)
I might be wrong in this, but I see a lot of IF statements in that script which haven't been finished...
When you call an IF, you need to follow up with an ELSE function too which ends it.
When you call an IF, you need to follow up with an ELSE function too which ends it.
Angel of Death- Epic Level
- Number of posts : 1132
Age : 409
Location : Europe
Main Character : CĂ©lestin Chevalier; Knight Champion of Dalix. Protector of the Innocent. Slayer of Evil.
Other Character : Angelique Nightstar; Arcane Archer.
Personal Quote: "The way of the bow is simplicity and beauty combined with power and discipline."
Other Character. : Bruce Li; Wanderer and Practitioner of the Dragon Paw Style. & Cherry; Starchild of Jewel n' Chancetaker of Lysis.
Other Character.. : Anna, Weaver of Illusions. - You can read about all of them following this link to their Biographies! =)
NWN Username : I await You in the End
Time Zone : Central European Timezone
Registration date : 2010-12-11
Re: More questions (of course)
Thank you for the help Rusty, Elhanan and Angel =) I'm just inexperienced enough to make all kinds of mistakes =) I'll go back to the scripter because I added the } at the end and then got an error on this line...
SpeakString("Greetings M'lady!", TALKVOLUME_SILENTTALK);
Error: Variable Defined Without Type
I'll be the very first to admit I have much to learn and thank each of you for all your help, it is greatly appreciated seriously =)
SpeakString("Greetings M'lady!", TALKVOLUME_SILENTTALK);
Error: Variable Defined Without Type
I'll be the very first to admit I have much to learn and thank each of you for all your help, it is greatly appreciated seriously =)
Drgnwlkr- Seasoned Explorer
- Number of posts : 180
Age : 59
Main Character : Elladyr the Pathfinder
Other Character : Arauka'dae the Ghost
Other Character. : Adahi Ditlihi, Knight of Dalix
Other Character.. : Aradia the Warblade
Registration date : 2011-04-30
Re: More questions (of course)
I am just curious here; you want an NPC to check if the PC has a key, and if so, say a greeting and perform a bow where after the NPC opens a nearby door?
Angel of Death- Epic Level
- Number of posts : 1132
Age : 409
Location : Europe
Main Character : CĂ©lestin Chevalier; Knight Champion of Dalix. Protector of the Innocent. Slayer of Evil.
Other Character : Angelique Nightstar; Arcane Archer.
Personal Quote: "The way of the bow is simplicity and beauty combined with power and discipline."
Other Character. : Bruce Li; Wanderer and Practitioner of the Dragon Paw Style. & Cherry; Starchild of Jewel n' Chancetaker of Lysis.
Other Character.. : Anna, Weaver of Illusions. - You can read about all of them following this link to their Biographies! =)
NWN Username : I await You in the End
Time Zone : Central European Timezone
Registration date : 2010-12-11
Re: More questions (of course)
Yep =) Exactly...going to be a guard to a guild of sorts...at least that's the notion I've formulated heheh
Drgnwlkr- Seasoned Explorer
- Number of posts : 180
Age : 59
Main Character : Elladyr the Pathfinder
Other Character : Arauka'dae the Ghost
Other Character. : Adahi Ditlihi, Knight of Dalix
Other Character.. : Aradia the Warblade
Registration date : 2011-04-30
Re: More questions (of course)
Hah, I read the script right then.
The problem is, I think, you never finished the two IF statements you called to check if the PC was male or female.
You will probably have the script to look more like this;
Note: I didn't know what you want the NPC to do if the PC doesn't have the key, so I just made the NPC simply face the PC without any other actions taken..
The problem is, I think, you never finished the two IF statements you called to check if the PC was male or female.
You will probably have the script to look more like this;
- Code:
// Put this script OnPerceived (of a creature).
void main()
{
// We are only interested in "seen" events.
if ( !GetLastPerceptionSeen() )
return;
// Get the creature who triggered this event.
object oPC = GetLastPerceived();
// Only fire for (real) PCs.
if ( !GetIsPC(oPC) || GetIsDMPossessed(oPC) )
return;
// Abort if the PC does not have the item "msi_khblkey".
if ( GetItemPossessedBy(oPC, "msi_khblkey") == OBJECT_INVALID )
return;
// If the PC is female.
if ( GetGender(oPC) == GENDER_FEMALE )
{
// Have us say something.
SpeakString("Greetings M'lady!");
// Have us perform a sequence of actions.
ActionPlayAnimation(ANIMATION_FIREFORGET_BOW);
ActionOpenDoor(GetNearestObjectByTag("msd_khbldrspec"));
}
// Else, if the PC is male.
else if ( GetGender(oPC) == GENDER_MALE )
{
// Have us say something.
SpeakString("Greetings M'lord!");
// Have us perform a sequence of actions.
ActionPlayAnimation(ANIMATION_FIREFORGET_BOW);
ActionOpenDoor(GetNearestObjectByTag("msd_khbldrspec"));
}
else
{
// Have us perform a sequence of actions.
ActionDoCommand(SetFacingPoint(GetPosition(oPC)));
}
}
Note: I didn't know what you want the NPC to do if the PC doesn't have the key, so I just made the NPC simply face the PC without any other actions taken..
Angel of Death- Epic Level
- Number of posts : 1132
Age : 409
Location : Europe
Main Character : CĂ©lestin Chevalier; Knight Champion of Dalix. Protector of the Innocent. Slayer of Evil.
Other Character : Angelique Nightstar; Arcane Archer.
Personal Quote: "The way of the bow is simplicity and beauty combined with power and discipline."
Other Character. : Bruce Li; Wanderer and Practitioner of the Dragon Paw Style. & Cherry; Starchild of Jewel n' Chancetaker of Lysis.
Other Character.. : Anna, Weaver of Illusions. - You can read about all of them following this link to their Biographies! =)
NWN Username : I await You in the End
Time Zone : Central European Timezone
Registration date : 2010-12-11
Re: More questions (of course)
Well, that makes sense even to my limited script reading abilities...my WIS increased +1 thank you! =)
Drgnwlkr- Seasoned Explorer
- Number of posts : 180
Age : 59
Main Character : Elladyr the Pathfinder
Other Character : Arauka'dae the Ghost
Other Character. : Adahi Ditlihi, Knight of Dalix
Other Character.. : Aradia the Warblade
Registration date : 2011-04-30
Re: More questions (of course)
Totally awesome (yep I'm old)! Thank you so much for that help 'Angel'! I need to win the lotto so I can hire you and others as tutors =)
About that script...I guess I need to either add to it or make another to have the guard return to her main position. Your script worked perfectly though, I just hadn't thought about the 'afterwards'.
Thank you again to everyone!
About that script...I guess I need to either add to it or make another to have the guard return to her main position. Your script worked perfectly though, I just hadn't thought about the 'afterwards'.
Thank you again to everyone!
Drgnwlkr- Seasoned Explorer
- Number of posts : 180
Age : 59
Main Character : Elladyr the Pathfinder
Other Character : Arauka'dae the Ghost
Other Character. : Adahi Ditlihi, Knight of Dalix
Other Character.. : Aradia the Warblade
Registration date : 2011-04-30
Re: More questions (of course)
No problem, I'm glad that my very limited scripting knowledge can be of use sometimes.
As for the guard position. . .
You can specify the guard to go to a waypoint after the NPC has opened the door by adding this line...
So the full script look like this:
Oh, and just to be safe. . .remember to change the tag 'insert new tag here' with your waypoint's tag.
As for the guard position. . .
You can specify the guard to go to a waypoint after the NPC has opened the door by adding this line...
- Code:
ActionMoveToObject(GetNearestObjectByTag("insert new tag here"));
So the full script look like this:
- Code:
/*
* Script generated by LS Script Generator, v.TK.0
*
* For download info, please visit:
* http://nwvault.ign.com/View.php?view=Other.Detail&id=1502
*/
// Put this script OnPerceived (of a creature).
void main()
{
// We are only interested in "seen" events.
if ( !GetLastPerceptionSeen() )
return;
// Get the creature who triggered this event.
object oPC = GetLastPerceived();
// Only fire for (real) PCs.
if ( !GetIsPC(oPC) || GetIsDMPossessed(oPC) )
return;
// Abort if the PC does not have the item "msi_khblkey".
if ( GetItemPossessedBy(oPC, "msi_khblkey") == OBJECT_INVALID )
return;
// If the PC is female.
if ( GetGender(oPC) == GENDER_FEMALE )
{
// Have us say something.
SpeakString("Greetings M'lady!");
// Have us perform a sequence of actions.
ActionPlayAnimation(ANIMATION_FIREFORGET_BOW);
ActionOpenDoor(GetNearestObjectByTag("msd_khbldrspec"));
ActionMoveToObject(GetNearestObjectByTag("insert waypoint tag here"));
}
// Else, if the PC is male.
else if ( GetGender(oPC) == GENDER_MALE )
{
// Have us say something.
SpeakString("Greetings M'lord!");
// Have us perform a sequence of actions.
ActionPlayAnimation(ANIMATION_FIREFORGET_BOW);
ActionOpenDoor(GetNearestObjectByTag("msd_khbldrspec"));
ActionMoveToObject(GetNearestObjectByTag("insert new tag here"));
}
else
{
// Have us perform a sequence of actions.
ActionDoCommand(SetFacingPoint(GetPosition(oPC)));
}
}
Oh, and just to be safe. . .remember to change the tag 'insert new tag here' with your waypoint's tag.
Angel of Death- Epic Level
- Number of posts : 1132
Age : 409
Location : Europe
Main Character : CĂ©lestin Chevalier; Knight Champion of Dalix. Protector of the Innocent. Slayer of Evil.
Other Character : Angelique Nightstar; Arcane Archer.
Personal Quote: "The way of the bow is simplicity and beauty combined with power and discipline."
Other Character. : Bruce Li; Wanderer and Practitioner of the Dragon Paw Style. & Cherry; Starchild of Jewel n' Chancetaker of Lysis.
Other Character.. : Anna, Weaver of Illusions. - You can read about all of them following this link to their Biographies! =)
NWN Username : I await You in the End
Time Zone : Central European Timezone
Registration date : 2010-12-11
Re: More questions (of course)
I thank you yet once again!
I'm not meaning for anyone to do all the work but sometimes this kinda thing can guide me into the correct mindset =) And your knowledge is far better than mine on scripting heheh
I'm not meaning for anyone to do all the work but sometimes this kinda thing can guide me into the correct mindset =) And your knowledge is far better than mine on scripting heheh
Drgnwlkr- Seasoned Explorer
- Number of posts : 180
Age : 59
Main Character : Elladyr the Pathfinder
Other Character : Arauka'dae the Ghost
Other Character. : Adahi Ditlihi, Knight of Dalix
Other Character.. : Aradia the Warblade
Registration date : 2011-04-30
Re: More questions (of course)
I really haven't done much though, I just used the LS's script generator.
Angel of Death- Epic Level
- Number of posts : 1132
Age : 409
Location : Europe
Main Character : CĂ©lestin Chevalier; Knight Champion of Dalix. Protector of the Innocent. Slayer of Evil.
Other Character : Angelique Nightstar; Arcane Archer.
Personal Quote: "The way of the bow is simplicity and beauty combined with power and discipline."
Other Character. : Bruce Li; Wanderer and Practitioner of the Dragon Paw Style. & Cherry; Starchild of Jewel n' Chancetaker of Lysis.
Other Character.. : Anna, Weaver of Illusions. - You can read about all of them following this link to their Biographies! =)
NWN Username : I await You in the End
Time Zone : Central European Timezone
Registration date : 2010-12-11
Re: More questions (of course)
I was asked by a friend this question...would it be possible to have a module set up to where individual areas would not be active or go inactive when no PCs are present in the specific area? The thought is to keep the resources being used at a minimum to keep the module/server running smoothly and maybe even continue to add more areas. I figured either or someone that knew more about it than myself would know =)
Drgnwlkr- Seasoned Explorer
- Number of posts : 180
Age : 59
Main Character : Elladyr the Pathfinder
Other Character : Arauka'dae the Ghost
Other Character. : Adahi Ditlihi, Knight of Dalix
Other Character.. : Aradia the Warblade
Registration date : 2011-04-30
Re: More questions (of course)
As a Techless guess, this may be a reason why the OC's are divided into Chapters?
Elhanan- Epic Level
- Number of posts : 1781
Location : At the keyboard typing with two fingers....
Main Character : Aargyle McJagger
Other Character : Barnabas Bottlebottom
Other Character. : Aarn, Aerik McJagger
Other Character.. : Azar; Briar Ironwood
NWN Username : Elhanan the Ancient One
Time Zone : Central USA
. :
Registration date : 2009-06-23
Re: More questions (of course)
Drgnwlkr wrote:I was asked by a friend this question...would it be possible to have a module set up to where individual areas would not be active or go inactive when no PCs are present in the specific area? The thought is to keep the resources being used at a minimum to keep the module/server running smoothly and maybe even continue to add more areas. I figured either or someone that knew more about it than myself would know =)
The biggest thing...don't keep NPCs/monsters in areas where there aren't PCs. Try to spawn creatures from encounter triggers or systems (such as CEP's Sparky Spawner) instead of manually placing creatures. Make a generic area "on exit" script (which is run by an individual area each time a PC leaves it). Have said script do a check for other PCs in the area after a delay (I think I use one or two minutes). If no PCs at that time, another script is run that removes NPCs that were spawned by encounters, items left on the ground, remains left over after battles, etc. This is one of those "cleaner scripts" you may have heard about.
Doing this will make it so that the server doesn't have to keep track of the placement of useless remains or items, or continually run heartbeat scripts and perception scripts for wandering NPCs when there isn't a chance of interaction with a PC. Limiting it to encounter-spawned creatures (there's a "Get" function in NWScript that checks for this) leaves any NPCs you manually placed (such as merchants) in place. I've modified the CEP's Sparky code to add a variable to all the creatures it spawns so that my own cleaner script catches them as well. The initial delay in checking for PCs is so that if a PC leaves the area and comes right back in, things are still there (so that going out a door and right back in won't suddenly clear out a dungeon level or something).
I've read that an area's heartbeat scripts don't run at all when PCs are not in it, which is helpful. I don't use area heartbeats at all myself, so I've not tested this.
My guess is the original campaign was divided up into separate "chapter modules" was for a few reasons. One being that it makes it easier to build if you don't have areas you don't currently need in a module. Another being that it prevents PCs from going "backwards" in the story by going back to areas they've already been (before the linear story is ready for them anyway). And yes, the load on a computer's memory/processing is probably right up there near or at the top of the list.Elhanan wrote:As a Techless guess, this may be a reason why the OC's are divided into Chapters?
Re: More questions (of course)
Yes but another...is there a link or specific search example anyone know for the tailoring system?
Drgnwlkr- Seasoned Explorer
- Number of posts : 180
Age : 59
Main Character : Elladyr the Pathfinder
Other Character : Arauka'dae the Ghost
Other Character. : Adahi Ditlihi, Knight of Dalix
Other Character.. : Aradia the Warblade
Registration date : 2011-04-30
Re: More questions (of course)
Aenea's tailoring system ?.. As in Shronjis self service (or however it's spelt, I'm always getting this one wrong!) ?? ...
I believe that the system was custom scripted for Aenea by ... but there are plenty like it out there... search the vault for something along the lines of the PRCG (Pretty Good Character Generator), which has a similar system in it for modifying armours IIRC... .... pretty much everything in Aenea was custom scripted by , or made by him (exceptions on this list and content from the CEP)....
I believe that the system was custom scripted for Aenea by ... but there are plenty like it out there... search the vault for something along the lines of the PRCG (Pretty Good Character Generator), which has a similar system in it for modifying armours IIRC... .... pretty much everything in Aenea was custom scripted by , or made by him (exceptions on this list and content from the CEP)....
RustyDios- High Epic Level
- Number of posts : 2271
Age : 40
Location : England // Getting lost in Aenea
Main Character : Jay Braysin, The Wandering Shadow, Protector of Nektaria, Talon's Eternal Foe
Other Character : Shouri Braysin, The Shimmerstar's Moonlight Sorceress
Other Character. : Grace Fularras, Walking Library , Cleric of Mystara
Other Character.. : See my sig ... And here too ...
NWN Username : RustyDios
Time Zone : GMT (England, DST)
. :
Registration date : 2008-07-28
Re: More questions (of course)
Thanks for that link! I just have found the tailor system I wanted. And I don't spell that shop's name right either, heh.
Drgnwlkr- Seasoned Explorer
- Number of posts : 180
Age : 59
Main Character : Elladyr the Pathfinder
Other Character : Arauka'dae the Ghost
Other Character. : Adahi Ditlihi, Knight of Dalix
Other Character.. : Aradia the Warblade
Registration date : 2011-04-30
Similar topics
» 2 More wee questions....
» epic spell seeds
» Two questions...
» Several Questions
» Aug. 26, 2010: With Great Power Comes Great...Power!
» epic spell seeds
» Two questions...
» Several Questions
» Aug. 26, 2010: With Great Power Comes Great...Power!
Page 1 of 1
Permissions in this forum:
You cannot reply to topics in this forum