Jump to content

[Question] NPC package-related


Recommended Posts

Lots of ideas, very slow on implementation. I have wanted to do a "working" church for quite some time, but my skills weren't up to the task. Skills have gotten a little better over time so I am giving it another go. Needless to say, I am learning a lot. Without a doubt, a real life pastor has many roles and responsibilities. Three that could possibly be implemented with the FO4 world are: preaching sermons; marrying people, and preaching a funeral. I am working on the first...preaching sermons. Originally I was planning to do five, and randomly select one each time. Creating dialogue is rather time intensive in an of itself. So I may need to manage my own expectations.

 

Nonetheless, progress is being made. I can summon the settlers to the church, and seat them in the pews. I can summon the pastor to the lectern and kickoff a sermon. I can play some music once the sermon is complete, and as the pastor leaves the church the settlers are dismissed and return to the daily activities. So far so good. Need to work out some mechanics like not being able to call the pastor until the majority of the settlers are seated,

 

Niston's teasers of his church setup made me want to do this even more.

Edited by pepperman35
Link to comment
Share on other sites

Re the church bells, here's a little trick I used:

 

There are two bell sounds playing at once.

I created custom sound output models for them: One is clear and loud and the other is attenuated and muffled by lowpass and/or bandpass filtering (don't remember but either one should work). The loud and clear version has a sound category assigned that gets silenced when the player is inside a fake interior. This version completely overpowers the muffled version when you're in the settlement exterior. But all the opened up buildings in Concord are fake interiors, so... when you go inside one of the buildings, the loud/clear bell sound gets silenced by the game and you only hear the attenuated/filtered version - as you would experience it when entering a real building.

 

The game even does a little fade-in/out on the silenced categories, so it feels like a crossfade in game.

 

For the immersion!

Link to comment
Share on other sites

Also, re marriage, I noticed that the game has relationships defined in plugins: spouse, mother, father, child, etc.

Unfortunately, there is not a way to change them from script. And from what I gathered at the time, even marriage in Skyrim is completely script based and doesn't work with these relationships.

 

And for the sermon (and town hall meeting) start mechanic, I made it like so:

 

- Timer is started

- NPCs are called in

- Either all NPCs have taken a seat, or the timer expires.

- NPCs not seated yet are moved to the church and snapped into interaction (pews).

- Meeting begins / Pastor is being called.

 

The process can be triggered from the mic on the lectern for the meeting, or by some other means - Like a scheduler event set to occur on Sundays at 9:00 game time, for the sermon.

I think there is also some mechanic from the settler bell script that makes faraway NPCs run instead of walk to the church.

Link to comment
Share on other sites

 

I think there is also some mechanic from the settler bell script that makes faraway NPCs run instead of walk to the church.

I thought that the game makes NPCs run, jog, walk in follow/travel packages based on target distance " fFollowStartSprintDistance".

I'm curious to know how you do that in script.

Link to comment
Share on other sites

Ah, I just had a look.

There is a package flag "preferred speed". I made one with Jog and one with Walk. And GetDistance() conditions on them.

But I'm not actually using them in the mod, it looks like. So either I didn't finish up, or it didn't work.

Link to comment
Share on other sites

I tried to use a package stack of preferred speed and distance conditions on packages for CombatStalkers many years ago but the results were inconsistent.

 

The package stack evaluation to refresh distance and switch packages happens at random times, so had to use a regular timer (yuck) script that triggers EvaluateAll()

Link to comment
Share on other sites

  • Recently Browsing   0 members

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