Would you like to react to this message? Create an account in a few clicks or log in to continue.

More questions (of course)

5 posters

Go down

More questions (of course) Empty More questions (of course)

Post by Drgnwlkr Fri Oct 07, 2011 6:31 pm

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 The Amethyst Dragon! You have helped me greatly!
Drgnwlkr
Drgnwlkr
Seasoned Explorer
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

Back to top Go down

More questions (of course) Empty Re: More questions (of course)

Post by Drgnwlkr Mon Oct 10, 2011 1:40 pm

Also, do you use an area trigger to make the water acidic on Deathwater Isle?
Drgnwlkr
Drgnwlkr
Seasoned Explorer
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

Back to top Go down

More questions (of course) Empty Re: More questions (of course)

Post by The Amethyst Dragon Mon Oct 10, 2011 1:59 pm

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 More questions (of course) 787378! You have helped me greatly!
Hidden Doors: Those are one of my creations. Custom models, plus some custom scripting to get them to work properly.

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.
The Amethyst Dragon
The Amethyst Dragon
Ludicrous Level
Ludicrous Level

. : Creator of Aenea / Dungeon Master
Male Number of posts : 7841
Age : 49
Location : probably on the computer or wrangling his offspring
NWN Username : amethystdragon
DM Name : The Amethyst Dragon
Time Zone : GMT - 6:00 (Wisconsin)
Registration date : 2008-06-02

https://www.amethyst-dragon.com

Back to top Go down

More questions (of course) Empty Re: More questions (of course)

Post by The Amethyst Dragon Mon Oct 10, 2011 2:34 pm

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. Smile 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;
        }
      }
The Amethyst Dragon
The Amethyst Dragon
Ludicrous Level
Ludicrous Level

. : Creator of Aenea / Dungeon Master
Male Number of posts : 7841
Age : 49
Location : probably on the computer or wrangling his offspring
NWN Username : amethystdragon
DM Name : The Amethyst Dragon
Time Zone : GMT - 6:00 (Wisconsin)
Registration date : 2008-06-02

https://www.amethyst-dragon.com

Back to top Go down

More questions (of course) Empty Re: More questions (of course)

Post by Drgnwlkr Mon Oct 10, 2011 3:11 pm

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.
Drgnwlkr
Drgnwlkr
Seasoned Explorer
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

Back to top Go down

More questions (of course) Empty Re: More questions (of course)

Post by Drgnwlkr Tue Oct 11, 2011 1:21 am

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.
Drgnwlkr
Drgnwlkr
Seasoned Explorer
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

Back to top Go down

More questions (of course) Empty Re: More questions (of course)

Post by RustyDios Tue Oct 11, 2011 1:32 am

it requires another close bracket } at the end... I think ...
RustyDios
RustyDios
High Epic Level
High Epic Level

Male 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)
. : More questions (of course) Forum_donor
Registration date : 2008-07-28

Back to top Go down

More questions (of course) Empty Re: More questions (of course)

Post by Elhanan Tue Oct 11, 2011 4:32 am

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!!!
Elhanan
Elhanan
Epic Level
Epic Level

Male 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
. : More questions (of course) Forum_donor
Registration date : 2009-06-23

Back to top Go down

More questions (of course) Empty Re: More questions (of course)

Post by Angel of Death Tue Oct 11, 2011 5:18 am

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. Smile
Angel of Death
Angel of Death
Epic Level
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

Back to top Go down

More questions (of course) Empty Re: More questions (of course)

Post by Drgnwlkr Tue Oct 11, 2011 9:03 am

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 =)
Drgnwlkr
Drgnwlkr
Seasoned Explorer
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

Back to top Go down

More questions (of course) Empty Re: More questions (of course)

Post by Angel of Death Tue Oct 11, 2011 10:57 am

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? Smile
Angel of Death
Angel of Death
Epic Level
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

Back to top Go down

More questions (of course) Empty Re: More questions (of course)

Post by Drgnwlkr Tue Oct 11, 2011 11:01 am

Yep =) Exactly...going to be a guard to a guild of sorts...at least that's the notion I've formulated heheh
Drgnwlkr
Drgnwlkr
Seasoned Explorer
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

Back to top Go down

More questions (of course) Empty Re: More questions (of course)

Post by Angel of Death Tue Oct 11, 2011 11:07 am

Hah, I read the script right then. Smile

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
Angel of Death
Epic Level
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

Back to top Go down

More questions (of course) Empty Re: More questions (of course)

Post by Drgnwlkr Tue Oct 11, 2011 11:22 am

Well, that makes sense even to my limited script reading abilities...my WIS increased +1 thank you! =)
Drgnwlkr
Drgnwlkr
Seasoned Explorer
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

Back to top Go down

More questions (of course) Empty Re: More questions (of course)

Post by Drgnwlkr Tue Oct 11, 2011 12:24 pm

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!
Drgnwlkr
Drgnwlkr
Seasoned Explorer
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

Back to top Go down

More questions (of course) Empty Re: More questions (of course)

Post by Angel of Death Tue Oct 11, 2011 2:10 pm

No problem, I'm glad that my very limited scripting knowledge can be of use sometimes. Razz

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"));
...after the NPC has opened the door.

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
Angel of Death
Epic Level
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

Back to top Go down

More questions (of course) Empty Re: More questions (of course)

Post by Drgnwlkr Tue Oct 11, 2011 2:16 pm

I thank you yet once again! cheers

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
Drgnwlkr
Seasoned Explorer
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

Back to top Go down

More questions (of course) Empty Re: More questions (of course)

Post by Angel of Death Tue Oct 11, 2011 2:35 pm

I really haven't done much though, I just used the LS's script generator. Razz
Angel of Death
Angel of Death
Epic Level
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

Back to top Go down

More questions (of course) Empty Re: More questions (of course)

Post by Drgnwlkr Wed Oct 12, 2011 8:30 pm

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 The Amethyst Dragon or someone that knew more about it than myself would know =)
Drgnwlkr
Drgnwlkr
Seasoned Explorer
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

Back to top Go down

More questions (of course) Empty Re: More questions (of course)

Post by Elhanan Wed Oct 12, 2011 9:29 pm

As a Techless guess, this may be a reason why the OC's are divided into Chapters?
Elhanan
Elhanan
Epic Level
Epic Level

Male 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
. : More questions (of course) Forum_donor
Registration date : 2009-06-23

Back to top Go down

More questions (of course) Empty Re: More questions (of course)

Post by The Amethyst Dragon Thu Oct 13, 2011 12:28 am

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 More questions (of course) 787378 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.

Elhanan wrote:As a Techless guess, this may be a reason why the OC's are divided into Chapters?
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.
The Amethyst Dragon
The Amethyst Dragon
Ludicrous Level
Ludicrous Level

. : Creator of Aenea / Dungeon Master
Male Number of posts : 7841
Age : 49
Location : probably on the computer or wrangling his offspring
NWN Username : amethystdragon
DM Name : The Amethyst Dragon
Time Zone : GMT - 6:00 (Wisconsin)
Registration date : 2008-06-02

https://www.amethyst-dragon.com

Back to top Go down

More questions (of course) Empty Re: More questions (of course)

Post by Drgnwlkr Thu Nov 10, 2011 9:08 am

Yes but another...is there a link or specific search example anyone know for the tailoring system?
Drgnwlkr
Drgnwlkr
Seasoned Explorer
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

Back to top Go down

More questions (of course) Empty Re: More questions (of course)

Post by RustyDios Thu Nov 10, 2011 1:18 pm

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 The Amethyst Dragon... 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 The Amethyst Dragon, or made by him (exceptions on this list and content from the CEP)....
RustyDios
RustyDios
High Epic Level
High Epic Level

Male 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)
. : More questions (of course) Forum_donor
Registration date : 2008-07-28

Back to top Go down

More questions (of course) Empty Re: More questions (of course)

Post by Drgnwlkr Thu Nov 10, 2011 1:36 pm

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
Drgnwlkr
Seasoned Explorer
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

Back to top Go down

More questions (of course) Empty Re: More questions (of course)

Post by Sponsored content


Sponsored content


Back to top Go down

Back to top

- Similar topics

 
Permissions in this forum:
You cannot reply to topics in this forum