Jump to content

NPC vs Idle Markers


ThiagoAlex

Recommended Posts

Hi, I Need Help.
So I'm Making This FNV Mod Where I've Created Multiple Houses and a Resturant, All Perfectly NavMeshed.
The Problem Is(I Think) With My NPC's, I've Schedule Their Day With Packages.

(Ex. EatBreakfast6to7, SandBoxOutside7to12, EatLunchRestaurant12to13, SandBoxInHouse13to19, EatDiner19to20, Sleep20to6)

There are Two Problems:

First - When The SandBox Package Start The NPC's Don't Use The Idle Markers I've Placed, They Travel To The Markers Location But No Idle Animation, They Reach And Immediately Leave To Another, They Some Times Use Furniture Markers, But at Most They Are Just Walking Around Without Stopping Almost Like a Patrol Package But With No Patrol Time.

Second - The No Low-Level Processing Seems to Not Work. When an NPC Leaves/Enter An Interior Cell They Stand On The Door Outside/Inside Until I Leave/Enter The Cell too.
Ex. Package SandBoxOutsde Starts Right After EatBreakfast That Runs On NPC House, NPC Leaves Cell, I Wait Like Almost 5 IRL Minutes, I Leave The Cell and He is There Right In Front of Me.

Edited by ThiagoAlex
Link to comment
Share on other sites

There is a hierarchy to Packages much like there is to Dialog Topics. The first package to meet the current conditions "wins". Use "Evaluate Packages" (EVP) function to cause an immediate re-evaluation as needed.

 

Please see TIP Making NPCs move aka AI Packages, TIP Using AI Packages, and TIP AI Packages and Distance under the "Custom NPCs" section of the wiki "Getting started creating mods using GECK" article.

Also found the following in this thread:

Actors with No "Low Level Processing" (LLP) flag set: The Actor does not update its AI unless the player is in the same cell as it.

LLP behaves differently, depending on whether the object is persistent or not, and on whether the object is in an interior or an exterior cell:

Persistent in an interior: All functions should always work reliably.
Persistent in an exterior: If the cell is currently buffered - all functions should always work reliably. Otherwise, some functions will fail (example: GetParentCell).

Non-persistent in either an interior or an exterior: If the cell is currently buffered - all functions should always work reliably. Otherwise, all functions will always fail.

If you place an actor in the world with the Geck and mark that REF as persistent - then they are persistent regardless of the LLP setting. They can always be referenced by a script.

You can use the JIP LN NVSE function "SetPersistent" to set a non-persistent (dynamic, aka "spawned") reference to persistent at runtime.

You might want to also be aware of GetActorProcessingLevel.

-Dubious-

Link to comment
Share on other sites

Patrol packages might be buggy with idle markers, they worked in Fallout 3 but have issues in New Vegas in my experience. But this is how linked routines were done there, again they may or may not work in New Vegas.

 

Sandboxing chooses things completely at random, including just standing where they are and picking idles from the idle manager. You may want to setup xmarkers and have them sandbox in a radius of it, rather than in a particular cell.

 

Any markers explicitly referenced by a package must be persistent regardless of their type. It helps to give them a Ref name so you can keep track of them easier.

 

You'll also want to avoid lock/unlocking doors in packages, this is completely broken and unreliable in New Vegas.

 

No Low Level Processing stops AI from processing if the Actor is not loaded. I.E. player is in the same cell or Actor is within loaded uGrids. Keep in mind an actor may not be unloaded immediately when changing cells, and persistent ones will process more frequently, quest npcs marked in their base form will process more frequently again.

Link to comment
Share on other sites

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...